spring和mybatis整合

整合思路

  1. 将mybatis的SqlSessionFactory交给spring进行单例管理
  2. spring和mybatis整合,生成代理对象,使用SqlSessionFactory创建SqlSession(这里是由spring和mybatis整合自动完成)
  3. 持久层的mapper、dao都需要由spring进行管理

整合环境

创建一个新的java工程(基本接近实际开发的工程结构)
创建一个名为spring_mybatis的java project
jar包:

  • mybatis的jar包
  • spring的jar包
  • mybatis和spring的整合包(早期ibatis和spring整合,是由spring官方提供;现在mybatis和spring整合由mybatis提供)
    在这里插入图片描述

applicationContext.xml是spring的配置文件;SqlMapConfig.xml是mybatis的全局配置文件(名字不限定)
在这里插入图片描述

sqlSessionFactory配置

根据上面的整合思路,首先需要让spring来管理sqlSessionFactory,所以现在来做这一步的配置:

  1. 在applicationContext.xml中配置sqlSessionFactory
    sqlSessionFactory在mybatis和spring的整合包下。
<!-- 加载数据库配置文件 -->
<context:property-placeholder location="classpath: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>	

    <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的SqlSessionFactoryBean -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 数据库连接池 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 加载mybatis的全局配置文件 -->
		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
	</bean>

注意:在定义sqlSessionFactory时,要指定 数据源mybatis 配置文件

mybatis和spring整合后,进行原始dao的开发

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章