MyBatis+Spring整合方案
2011-03-10 10:58
453 查看
由于目前Spring官方还没有出整合Mybatis的特性,所以这里的整合框架是“mybatis-spring-1.0.0.jar”。
在使用该框架来编写DAO层的时候有以下几种方式:
1, 注入SqlSessionFactory,通过它自己编写创建SqlSession然后进行数据操作。
Spring的配置方式为:
Java代码为:
这种方式的缺点:
它不会参与到Spring 的事务之中。
如果SqlSession使用DataSource,它也会被Spring 事务管理器使用,而且当前有事务在进行时,这段代码会抛出异常。
MyBatis 默认的SqlSession是线程不安全的。如果在bean 中注入了它,就会发生错误。
你必须保证SqlSession用完就关闭了。
2, 注入SqlSessionTemplate或者继承SqlSessionSupport来获得SqlSession来操作数据、
3, 注入映射器Mapper(最佳实践)
这种方式就再也不用上面那样手动调用SqlSessionDaoSupport或SqlSessionTemplate来获取SqlSession,并来操作SqlSession了。因为直接将sqlSessionFactory注入给MapperFactoryBean,该Bean会自己创建获取SqlSession,然后完成相应的Sql语句执行操作,事务提交或回滚。高智能化啊。而且在映射器(Mapper)较多时,可以采用配置MapperScannerConfiguer来扫描包,将所有Mapper注册到Spring。
本文出自 “linux要从娃娃抓起” 博客,请务必保留此出处http://wanqiufeng.blog.51cto.com/409430/511566
在使用该框架来编写DAO层的时候有以下几种方式:
1, 注入SqlSessionFactory,通过它自己编写创建SqlSession然后进行数据操作。
Spring的配置方式为:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> </bean> |
public class UserMapperSqlSessionImpl implements UserMapper { // SqlSessionFactory会通常由SqlSessionDaoSupport来设置 private SqlSessionFactory sqlSessionFactory; public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { this.sqlSessionFactory = sqlSessionFactory; } public User getUser(String userId) { // 注意标准的MyBatis API用法 –手动打开和关闭session SqlSession session = sqlSessionFactory.openSession(); try { return (User) session.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId); } finally { session.close(); } } } |
它不会参与到Spring 的事务之中。
如果SqlSession使用DataSource,它也会被Spring 事务管理器使用,而且当前有事务在进行时,这段代码会抛出异常。
MyBatis 默认的SqlSession是线程不安全的。如果在bean 中注入了它,就会发生错误。
你必须保证SqlSession用完就关闭了。
2, 注入SqlSessionTemplate或者继承SqlSessionSupport来获得SqlSession来操作数据、
3, 注入映射器Mapper(最佳实践)
这种方式就再也不用上面那样手动调用SqlSessionDaoSupport或SqlSessionTemplate来获取SqlSession,并来操作SqlSession了。因为直接将sqlSessionFactory注入给MapperFactoryBean,该Bean会自己创建获取SqlSession,然后完成相应的Sql语句执行操作,事务提交或回滚。高智能化啊。而且在映射器(Mapper)较多时,可以采用配置MapperScannerConfiguer来扫描包,将所有Mapper注册到Spring。
本文出自 “linux要从娃娃抓起” 博客,请务必保留此出处http://wanqiufeng.blog.51cto.com/409430/511566
相关文章推荐
- mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
- mybatis3 spring整合的好方案及其使用注解操作的方法如下
- Spring + mybatis整合方案总结 结合实例应用
- redis整合spring mybatis -- 缓存方案
- redis整合spring mybatis --缓存方案
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring + mybatis整合方案总结 结合实例应用
- 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
- Spring和Mybatis整合时无法读取properties的处理方案
- redis整合spring mybatis --缓存方案
- MyBatis+Spring整合方案
- 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
- redis整合spring mybatis --缓存方案
- Spring + mybatis整合方案总结 结合实例应用
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring和Mybatis整合时无法读取properties的处理方案
- redis整合spring mybatis --缓存方案