Mybatis整合spring(一)

1、整合原理

1)SqlSessionFactory对象应该放到spring容器中作为单例存在
2)传统dao的开发方式中,应该从spring容器中获得sqlsession对象。
3)Mapper代理方式中,应该从spring容器中直接获得mapper的代理对象。Sqlsession对象由spring负责关闭
4)数据库的连接以及数据库连接池事务管理都交给spring容器来完成。Mybatis核心配置文件不在需要进行管理了
5)以mybatis为主,以spring为辅。
2、整合步骤
1)导入全体Jar包
2)编写mybatis核心配置文件
   1>起别名
   2>导入表映射文件
3)编写spring核心配置文件
   1>配置数据库连接池
   2>注册SqlSessionFactory工厂对象(数据源,  mybatis核心配置文件)
   3>注册MapperFactoryBean类对象( 工厂对象、DAO接口)
4)定义DAO(pojo类、接口、表映射文件)
5)测试类创建ApplicationContext对象,获取Mapper动态代理对象
3、spring核心配置文件
<!--1.加载properties属性配置文件-->
<context:property-placeholder location="classpath:db.properties"/><!-- location:properties属性值文件路径;classpath:src根目录 -->

<!-- 2.数据库连接池 -->
<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>

<!-- 3.注册Mybatis的SqlSessionFactoryBean工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <propertyname="dataSource"ref="dataSource" />
    <propertyname="configLocation"  value="classpath:sqlMapConfig.xml"/>
</bean>

<!-- 4.Mapper动态代理开发 -->
<bean id="studentMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <propertyname="sqlSessionFactory"ref="sqlSessionFactoryBean"/>
    <propertyname="mapperInterface" value="com.t1.mybatis.mapper.StudentMapper"/>
</bean>

<!-- 4.Mapper动态代理开发,扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <propertyname="basePackage"value="com.t1.mybatis.mapper"/>
</bean>

猜你喜欢

转载自blog.csdn.net/mr_z_csdn/article/details/80642350
今日推荐