Using an SqlSession
在Mybatis中SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。但当使用Mybatis-Spring时beans将会注入一个线程安全的SqlSession并通过Spring的事务管理自动commit,rollback,close。
由于没有必要直接使用SqlSession,大多数情况下由MapperFactoryBean把mappers注入到beans中。
SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的核心类,它负责管理Mybatis的SqlSessions,调用Mybatis的SQL方法和翻译异常。SqlSessionTemplate基于线程安全而且可以被多个DAO共享。
当调用SQL方法(包括getMapper()返回的接口实现类),SqlSessionTemplate将会保证这个SqlSession和Spring事务相联系。并且SqlSessionTemplate管理着session的生命周期,包括commit,rollback,close
SqlSessionTemplate实现了SqlSession接口,目的是替代代码中任何地方出现的SqlSession。
SqlSessionTemplate可以通过一个类型为SqlSessionFactory的构造参数来初始化:
<
bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
将该sqlSession注入到的类:
public class UserDaoImpl implements UserDao {
private SqlSession sqlSession;
public void setSqlSession(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public User getUser(String userId) {
return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
}
}
配置文件:
<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl">
<property name="sqlSession" ref="sqlSession" />
</bean>
另外,也可以通过实现SqlSessionDaoSupport来获取SqlSessionTemplate(推荐):
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
public User getUser(String userId) {
return (User) getSqlSession()
.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
}
}
对应的配置文件:
<bean id="userMapper" class="org.mybatis.spring.sample.mapper.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
分享到:
相关推荐
4. **简化DAO开发**:使用MyBatis-Spring,开发者可以专注于编写Mapper接口,而无需关心SqlSession的创建、关闭和事务提交等细节。 5. **批处理**:支持使用Spring的Batch模式进行批处理操作,提高数据插入、更新的...
MyBatis-Spring 整合包是专门为将MyBatis持久层框架与Spring应用框架集成而设计的一个组件。这个包的出现旨在简化MyBatis在Spring环境中的配置和使用,使得开发者可以充分利用两者的优点,实现更加灵活和方便的数据...
mybatis-spring 整合jar包,Spring和MyBatis环境整合mybatis-spring-1.1.1
开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-...
1. **自动扫描Mapper接口并注入SqlSession**:MyBatis-Spring能自动扫描项目中的Mapper接口,并为每个接口注入一个实现了该接口的代理对象,该代理对象内部封装了SqlSession,从而简化了对数据库操作的代码。...
《MyBatis-Spring 1.3.1:构建高效SSM整合的基石》 MyBatis-Spring 1.3.1.jar是MyBatis与Spring框架深度整合的一个重要组件,它允许开发者在Spring环境下无缝地使用MyBatis。这个版本是官方发布的最新稳定版,经过...
MyBatis-Spring 是一个将 MyBatis ORM 框架与 Spring 框架集成的库,使得在 Spring 应用中使用 MyBatis 变得更加方便。mybatis-spring-1.3.3.jar 文件是这个集成库的一个版本,提供了对 MyBatis 1.3.3 和 Spring 的...
MyBatis-Spring 整合是Java开发中一个常见的数据访问技术组合,它将MyBatis的灵活性与Spring的管理能力结合在一起,提供了一种高效、无缝的集成方式。这个整合包使得在Spring应用中使用MyBatis变得更加简单,无需...
mybatis-spring-boot-autoconfigure-2.1.3mybatis-spring-boot-autoconfigure-2.1.3
Mybatis-Spring是一个连接Mybatis和Spring框架的库,它使得在Spring应用中使用Mybatis变得更加方便和无缝。这个压缩包“mybatis_spring.rar”包含了一个Mybatis与Spring整合的示例源码,这对于理解这两者之间的集成...
【标题】"mybatis-spring整合开发jar包.zip"中包含的是Mybatis、Spring和Mybatis-Spring整合的jar文件,这些是Java开发中的关键组件,尤其在构建基于MVC架构的Web应用时。Mybatis是一个优秀的持久层框架,它支持定制...
MyBatis-Spring 整合是为了在Spring框架中无缝地使用MyBatis持久层框架,它简化了在Spring应用中配置MyBatis的过程,并提供了事务管理和依赖注入等功能。这个整合jar包包含了MyBatis和Spring的基本组件,使得开发...
标题 "mybatis-spring-1.2.0.jar" 提供了我们正在讨论的软件组件的核心信息,即MyBatis-Spring的特定版本——1.2.0。MyBatis-Spring是MyBatis和Spring框架集成的一个库,旨在简化在Spring应用中使用MyBatis的工作。...
MyBatis-Spring是MyBatis与Spring框架的整合组件,其主要目的是简化在Spring应用中集成MyBatis的过程,使两者能够无缝协作。mybatis-spring-1.3.0.jar是这个中间件的特定版本,包含了实现这种集成所需的所有类和资源...
该jar包是Mybatis和Spring整合必备jar包,适配Mybatis-3.4.0及以上版本。
mybatis-spring-2.0.0.jar
mybatis-spring-2.0.6.jar
《mybatis-spring整合详解与实战指南》 在Java开发领域,MyBatis和Spring是两个非常重要的框架,它们各自在持久层和依赖注入方面表现出色。MyBatis-Spring作为一个桥梁,将这两个优秀框架无缝集成,使得开发更加...
Mybatis-Spring是一个将流行的Mybatis持久层框架与Spring框架集成的库,它使得在Spring应用中使用Mybatis变得更加方便。这个1.2.2版本的中文文档为开发者提供了详细的指南,帮助理解如何有效地整合这两个强大的框架...
总之,这个压缩包提供了 MyBatis 3.4.1 和 MyBatis-Spring 1.3.0 的完整环境,结合 MySQL 5.7 数据库,是学习和实践 MyBatis-Spring 整合的一个理想起点。通过深入阅读文档、配置示例和运行示例,开发者能够快速掌握...