本章介紹mybatis和spring的集成
第一個(gè)問題,我用的是mybatis-3.3.0.jar和mybatis-spring-1.3.0.jar,啟動就報(bào)錯:
java.lang.NoClassDefFoundError: org/apache/ibatis/cursor/Cursor
網(wǎng)上查找是版本兼容問題,mybatis的3.4.0及以上版本用mybatis-spring1.3.0及以上版本;mybatis的3.4.0以下版本用mybatis-spring1.3.0以下版本。
遂下載mybatis3.4.1版本再次嘗試,果斷成功。
第二個(gè)問題,數(shù)據(jù)已經(jīng)插入成功了,但報(bào)了個(gè)錯誤:
Manual commit is not allowed over a Spring managed SqlSession
大概意思是,spring管理的sqlsession,不用手動提交,遂去掉sqlSession.commit()相關(guān)代碼
大功告成!
下面簡單描述一下spring集成mybatis。
首先要下載好jar文件,版本問題正如我上面提到的。
主要看一下spring的配置文件applicationContext.xml的配置內(nèi)容:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
?........
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
? ? ? <property name="dataSource" ref="dataSource"/>
? ? ? <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
? ? ? ? ? <constructor-arg? index="0" ref="sqlSessionFactory">
</bean>
mybatis.cfg.xml是mybatis的配置文件,這里面可以配置對象的別名,引入映射文件,配置數(shù)據(jù)源(這個(gè)例子里就不用了,因?yàn)閿?shù)據(jù)源是spring管理的)
然后,你就可以在你的service中引用sqlSession,做增刪改查的操作了。