JavaWeb学习我爱编程

mybatis和spring整合

2018-05-28  本文已影响146人  幻影翔

整合思路

整合结构

框架

导jar包

配置文件

Mybatis的配置文件SqlMapConfig.xml

applicationContext.xml

1、数据源(dpcp连接池)
2、SqlSessionFactory
3、mapper或dao

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd ..........等约束
">

<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:config/db.properties"  />
<!-- 数据源配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
      destroy-method="close">
    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="maxActive" value="10" />
    <property name="maxIdle" value="5" />
</bean>


<!-- SqlsessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- mybatis配置文件 -->
    <property name="configLocation" value="classpath:config/mybatis/SqlMapConfig.xml"/>
</bean>

<!-- 配置dao -->
<bean id="userDao" class="dao.UserDaoImpl">
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

<!-- 配置mapper,逐个表编写
    MapperFactoryBean:用于生成mapper代理对象
 -->
 <!--<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">-->
    <!--<property name="mapperInterface" value="mapper.UserMapper"/>-->
    <!--<property name="sqlSessionFactory" ref="sqlSessionFactory"/>-->
<!--</bean>-->

<!--
MapperScannerConfigurer:mapper的扫描器,将包下边的mapper接口自动创建代理对象,自动创建到spring容器中,bean的id是mapper的类名(首字母小写)
 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- 配置扫描包的路径
    如果要扫描多个包,中间使用半角逗号分隔
     -->
    <property name="basePackage" value="mapper"/>
    <!-- 使用sqlSessionFactoryBeanName -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    
</bean>
</beans>

测试(以测试dao为例)

package test.dao;

import dao.UserDao;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
mport org.springframework.context.support.ClassPathXmlApplicationContext;
import po.User;

public class UserDaoImplTest {

private ApplicationContext applicationContext;

@Before
public void setUp(){
    //创建spring 容器
    applicationContext = new ClassPathXmlApplicationContext("config/spring/applicationContext.xml");
}
@Test
public void testFindUserById(){
    //从spring容器中获取UserDao这个bean
    UserDao userDao = (UserDao) applicationContext.getBean("userDao");
    User userById = userDao.findUserById(1);
   System.out.println(userById);applicationContext.getBean("userById");

 //测试mapper
   UserMapper userMapper = (UserMapper) 
    User userById = userMapper.findUserById(1);
  }
}

原始dao整合

UserDaoImpl dao配置
dao整合的目录结构图

整合mapper

上一篇 下一篇

猜你喜欢

热点阅读