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的開發

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