MyBatis(iBATIS) 整合Spring

最近项目中用到Spring整合MyBatis,这里总结一下.

 

相关参考mybatis-spring-1.0.0-reference-simplified-chinese.pdf(已上传)

 

说下重点,由于Spring3迟迟没有添加对MyBatis的支持,所以这个是由MyBatis开发的.相关可以参考之前Spring 对iBatis的相关.

 

1  SqlSessionFactoryBean  是中心,所有操作以它开始.

 

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

 可知实际上程序中使用的  userMapper是由SqlSessionFactoryBean代理的.所以这里可以放心使用,无需担心事务的相关,这里Spring 都做好了.你不能在Spring管理的SqlSession上调用SqlSession.commit(),SqlSession.rollback()或SqlSession.close()方法。如果这样做了,就会抛出UnsupportedOperationException异常。 

 

2 事务管理,之前已经分析了,所有事务无法直接通过编程方式处理"无论连接是否设置为自动提交,SqlSession数据方法的执行或在Spring事务之外任意调用映射器方法都将会自动被提交。如果你想编程式地控制事务,请参考Spring手册的10.6章节。这段代码展示了如何手动使用在10.6.2章节描述的PlatformTransactionManager来处理事务。" 

这里PlatformTransactionManager是Spring 里的接口,配制Spring AOP时可以用org.springframework.jdbc.datasource.DataSourceTransactionManager来管理相关事务.配合事务编程.

 

3 Spring是轻量级框架,对 MyBatis的影响不是很大,其它操作同MyBaits操作没太大区别.

 

 

 

 

 

 

关于MyBatis的使用MyBatis 3 User Guide Simplified Chinese.pdf  是最好的参考资料.

疑难问题集:

1 insert如何获取自动增长列.

 

useGeneratedKeys

(仅对insert有用)这会告诉MyBatis使用JDBC的getGeneratedKeys方法来取出由数据(比如:像MySQL和SQL Server这样的数据库管理系统的自动递增字段)内部生成的主键。默认值:false。

 

insert时通过设置keyProperty可以在指定字段获取自增ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值