本章介紹mybatis和spring的集成
第一個問題,我用的是mybatis-3.3.0.jar和mybatis-spring-1.3.0.jar,啟動就報錯:
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版本再次嘗試械姻,果斷成功悍引。
第二個問題恩脂,數(shù)據(jù)已經(jīng)插入成功了,但報了個錯誤:
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ù)源(這個例子里就不用了盲厌,因為數(shù)據(jù)源是spring管理的)
然后,你就可以在你的service中引用sqlSession祸泪,做增刪改查的操作了吗浩。