本章介绍mybatis和spring的集成
第一个问题,我用的是mybatis-3.3.0.jar和mybatis-spring-1.3.0.jar,启动就报错:
java.lang.NoClassDefFoundError: org/apache/ibatis/cursor/Cursor
网上查找是版本兼容问题,mybatis的3.4.0及以上版本用mybatis-spring1.3.0及以上版本;mybatis的3.4.0以下版本用mybatis-spring1.3.0以下版本。
遂下载mybatis3.4.1版本再次尝试,果断成功。
第二个问题,数据已经插入成功了,但报了个错误:
Manual commit is not allowed over a Spring managed SqlSession
大概意思是,spring管理的sqlsession,不用手动提交,遂去掉sqlSession.commit()相关代码
大功告成!
下面简单描述一下spring集成mybatis。
首先要下载好jar文件,版本问题正如我上面提到的。
主要看一下spring的配置文件applicationContext.xml的配置内容:
<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的配置文件,这里面可以配置对象的别名,引入映射文件,配置数据源(这个例子里就不用了,因为数据源是spring管理的)
然后,你就可以在你的service中引用sqlSession,做增删改查的操作了。