- 浏览: 184166 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (361)
- MySQL (27)
- dubbo (1)
- 网页模板 (3)
- 微信公众号 (6)
- Web工具 (7)
- Java (46)
- CSS (6)
- SQL (2)
- 数据库 (2)
- 其他 (12)
- Oracle (9)
- Tomcat (15)
- 技巧 (3)
- 基础 (4)
- 工作流 (1)
- js (25)
- maven (9)
- 异常问题 (1)
- 新知识 (5)
- PS (11)
- bootstrap (1)
- 开源框架 (5)
- 计算机网络 (1)
- MongoDB (1)
- HTML (3)
- sqlite (1)
- 微信 (3)
- Web组件 (4)
- jquery (1)
- hadoop (1)
- Redis (1)
- A_Windows常用快捷键 (3)
- eclipse (10)
- jetty (1)
- RESTEasy (1)
- Jersey (1)
- SVN (2)
- ubuntu (6)
- zookeeper (1)
- SpringMVC (7)
- 手册 (1)
- Apache ant (5)
- JBPM (1)
- activiti (3)
- Solr (1)
- EJB (1)
- 图片素材 (2)
- JSF (1)
- jboss (3)
- Android (32)
- WeX5 (1)
- 百度地图 (1)
- 电路设计 (1)
- excel (2)
- Web服务器应用服务器 (1)
- CXF (1)
- github (4)
- C# (1)
- Shiro (1)
- Lucene (1)
- Quartz (1)
- Linux (5)
- Smart Framework (1)
- JPA (6)
- 微信JS-SDK (1)
- RESTful (1)
- springboot (1)
- 文章 (2)
- springcloud (1)
- Eureka (1)
- drools (1)
- hibernate (3)
- IIC (1)
- 不错的博客 (1)
- 电脑操作系统问题 (1)
- JVM (1)
- excel操作工具 (0)
- 报表工具 (1)
- mail (1)
- apache (2)
- nginx (2)
- UML (1)
- 原型设计 (1)
- 消息队列框架 (1)
- DataTables (1)
- Mybatis (1)
- JFINAL (1)
- layer (1)
- MariaDB (1)
- NPM (1)
- LOG4J (2)
- 未知 (2)
- 正则表达式 (1)
最新评论
SqlSession(SqlSessionDaoSupport类)
SqlSessionDaoSupport
SqlSessionDaoSupport是一个抽象的支持类,用来为你提供SqlSession。调用getSqlSession()方法你会得到一个SqlSessionTemplate,这然后可以用于执行SQL方法,就像下面这样:
Java代码 收藏代码
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
public User getUser(String userId){
return (User)getSqlSession().selectOne
("org.mybatis.spring.sample.mapper.UserMapper.getUser",userId);
}
}
通常MapperFactoryBean是这个类的首选,因为它不需要额外的代码。但是,如果你需要在DAO中做其它非MyBatis的工作或需要具体的类,那么这个类就是很有用了。SqlSessionDaoSupport需要一个sqlSessionFactory或sqlSessionTemplate属性来设置。这些被明确地设置或由Spring来自动装配。如果两者都被设置了,那么sqlSessionFactory是被忽略的。
假设类UserMapperImpl是SqlSessionDaoSupport的子类,它可以在Spring中进行如下的配置:
Java代码 收藏代码
<bean id="userMapper" class="org.mybatis.spring.sample.mapper.UserMapperImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用。
当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前Spring的事务相关的。此外,它管理session的生命周期,包含必要的关闭,提交或回滚操作。
SqlSessionTemplate实现了SqlSession,这就是说要对MyBatis的SqlSession进行简易替换。
SqlSessionTemplate通常是被用来替代默认的MyBatis实现的DefaultSqlSession,因为它不能参与到Spring的事务中也不能被注入,因为它是线程不安全的。相同应用程序中两个类之间的转换可能会引起数据一致性的问题。
SqlSessionTemplate对象可以使用SqlSessionFactory作为构造方法的参数来创建。
Xml代码 收藏代码
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
这个bean现在可以直接注入到DAO bean中。你需要在bean中添加一个SqlSession属性,就像下面的代码:
Java代码 收藏代码
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);
}
}
如下注入SqlSessionTemplate:
Xml代码 收藏代码
<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl">
<property name="sqlSession" ref="sqlSession"/>
</bean>
SqlSessionDaoSupport
SqlSessionDaoSupport是一个抽象的支持类,用来为你提供SqlSession。调用getSqlSession()方法你会得到一个SqlSessionTemplate,这然后可以用于执行SQL方法,就像下面这样:
Java代码 收藏代码
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
public User getUser(String userId){
return (User)getSqlSession().selectOne
("org.mybatis.spring.sample.mapper.UserMapper.getUser",userId);
}
}
通常MapperFactoryBean是这个类的首选,因为它不需要额外的代码。但是,如果你需要在DAO中做其它非MyBatis的工作或需要具体的类,那么这个类就是很有用了。SqlSessionDaoSupport需要一个sqlSessionFactory或sqlSessionTemplate属性来设置。这些被明确地设置或由Spring来自动装配。如果两者都被设置了,那么sqlSessionFactory是被忽略的。
假设类UserMapperImpl是SqlSessionDaoSupport的子类,它可以在Spring中进行如下的配置:
Java代码 收藏代码
<bean id="userMapper" class="org.mybatis.spring.sample.mapper.UserMapperImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
SqlSessionTemplate
SqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用。
当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前Spring的事务相关的。此外,它管理session的生命周期,包含必要的关闭,提交或回滚操作。
SqlSessionTemplate实现了SqlSession,这就是说要对MyBatis的SqlSession进行简易替换。
SqlSessionTemplate通常是被用来替代默认的MyBatis实现的DefaultSqlSession,因为它不能参与到Spring的事务中也不能被注入,因为它是线程不安全的。相同应用程序中两个类之间的转换可能会引起数据一致性的问题。
SqlSessionTemplate对象可以使用SqlSessionFactory作为构造方法的参数来创建。
Xml代码 收藏代码
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
这个bean现在可以直接注入到DAO bean中。你需要在bean中添加一个SqlSession属性,就像下面的代码:
Java代码 收藏代码
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);
}
}
如下注入SqlSessionTemplate:
Xml代码 收藏代码
<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl">
<property name="sqlSession" ref="sqlSession"/>
</bean>
发表评论
-
跨域问题:解决跨域的三种方案
2018-01-22 13:37 638https://www.cnblogs.com/itmacy ... -
设置工程环境变量动态读取资源文件
2018-01-15 14:51 404http://blog.csdn.net/peaceforev ... -
Java读取资源文件的5种方法
2017-08-31 16:53 502https://www.cnblogs.com/EasonJi ... -
Hibernate 执行原始SQL语句
2017-08-29 17:32 353http://blog.csdn.net/xumengxing ... -
Java中执行存储过程和函数
2017-08-29 17:30 903http://www.cnblogs.com/Zengc-33 ... -
java实现给图片添加水印
2017-08-29 13:36 1619http://blog.csdn.net/zengshunya ... -
J2EE
2017-07-20 23:42 344现在就知道J2EE是做什么的了吧 首先java它对开发基于We ... -
HttpClient JSON参数请求
2017-05-26 16:36 434https://www.iteblog.com/archive ... -
HttpClient设置超时、中文乱码
2017-05-25 14:43 339HttpClient设置超时 http://blog.csdn ... -
阿里巴巴的FastJSON解析JSON例子,超级好用。
2017-05-05 09:40 1420http://blog.csdn.net/dwzjs/art ... -
java获取当前路径的几种方法
2017-04-26 10:36 3801、利用System.getProperty()函数获取当前路 ... -
Java中如何遍历Map对象的4种方法
2017-04-26 09:15 341http://blog.csdn.net/tjcyjd/art ... -
JDK、JRE、JVM三者间的关系
2017-04-24 09:04 527JDK、JRE、JVM三者间的关系 http://pla ... -
JVM性能调优
2017-04-24 08:59 373JVM性能调优 http://www.zuidaima.com ... -
基于springMVC+springSecurity3.x+Mybaits3.x的权限系统
2017-04-21 16:58 399http://www.open-open.com/lib/vi ... -
JVM的内部组成
2017-04-11 11:02 367http://blog.csdn.net/wuwenxiang ... -
Lombok
2017-04-11 10:49 366在写Java程序的时候经常会遇到如下情形: 新建了一个Cla ... -
Java 8新特性
2017-04-10 15:39 299Java 8新特性终极指南 JDK8 十大新特性详 ... -
Java 7 新的 try-with-resources 语句,自动资源释放
2017-04-10 15:05 357http://blog.csdn.net/lzm ... -
JDK1.7的新特性
2017-04-10 14:15 409JDK1.7的新特性 http://blog.csdn.net ...
相关推荐
网上有许多关于SpringMVC与Mybatis整合的实例,但是由于Mybaits-spring有好几种配置方式(SqlSessionDaoSupport方式,mapperFactoryBean方式,mapperScannerConfigurer方式),这样看起来会觉得很乱,不知道哪个是对的...
第二种方式则更进一步,MyBatis-Spring库提供了一些额外的辅助类,如SqlSessionDaoSupport和SqlSessionTemplate,它们简化了MyBatis在Spring环境中的使用,避免了手动关闭SqlSession。 在SSM项目中,我们需要配置...
MapperFactoryBean 继承了 SqlSessionDaoSupport,也就是动态切换 SqlSessionFactory 的第一种方法,我们需要重写和实现 SqlSessionDaoSupport 方法,或者是继承 MapperFactoryBean 来重写覆盖相关方法。 如果利用 ...
以上介绍了Spring与Mybatis的三种常用整合方法:使用MapperFactoryBean、SqlSessionTemplate以及SqlSessionDaoSupport。每种方法都有其特点和适用场景,开发者可以根据项目的具体需求选择合适的整合方式。对于简单的...
本文将深入探讨使用MyBatis进行数据处理的四种主要方式:SqlSessionTemplate、SqlSessionDaoSupport、MapperFactoryBean以及MapperScannerConfigurer。这四种方式各有特点,适用于不同的场景和需求。 ### ...
在DAO实现类中,可以直接继承`SqlSessionDaoSupport`,然后重写`getSqlSessionTemplate()`方法以返回`SqlSessionTemplate`。 - 配置步骤与第二种方式相似,需要创建`SqlSessionFactory`和`SqlSessionTemplate`。 ...
- 在 DAO 类中继承 SqlSessionDaoSupport 或使用 SqlSessionTemplate。 - 使用 @Autowired 注解注入所需的 Mapper 对象。 8. **测试**:整合完成后,可以通过 JUnit 或其他测试工具编写测试用例,验证数据库操作...
同时,配置SqlSessionTemplate或SqlSessionDaoSupport以供业务层使用。 4. **编写Mapper接口和XML文件**:定义Mapper接口,每个方法对应一个SQL查询。然后创建对应的XML文件,编写SQL语句和结果映射。 5. **Spring...
7. **DAO 层实现**:在整合后,可以创建基于 iBATIS 的 DAO 类,这些类继承自 SqlSessionDaoSupport 或使用 SqlSessionTemplate,通过这些工具类与数据库进行交互。 8. **Service 层设计**:在 Service 层,我们...
3. **MyBatis-Spring集成**:MyBatis-Spring是一个连接MyBatis和Spring的桥梁,它提供了SqlSessionTemplate和SqlSessionDaoSupport两种方式来实现MyBatis与Spring的集成。SqlSessionTemplate是线程安全的,可以直接...
4. **SqlSessionTemplate与SqlSessionDaoSupport**: SqlSessionTemplate是线程安全的,可以直接执行SQL操作,而SqlSessionDaoSupport是Spring的一个支持类,提供了一些基本的SqlSession操作,方便DAO层的开发。...
接下来,配置Spring的`applicationContext.xml`,声明bean并建立Mapper接口与SqlSessionTemplate或SqlSessionDaoSupport的关联。SqlSessionTemplate是一个线程安全的模板类,用于执行SQL操作,而...
4. 使用 SqlSessionTemplate 或 SqlSessionDaoSupport:在 Service 层,可以通过依赖注入获取 SqlSessionTemplate 或继承 SqlSessionDaoSupport 来进行数据库操作。 5. 配置事务管理:利用 Spring 的 ...
3. **SqlSessionTemplate与SqlSessionDaoSupport**: Spring提供了SqlSessionTemplate和SqlSessionDaoSupport两个类,它们是Mybatis与Spring交互的桥梁。SqlSessionTemplate是线程安全的,可以直接在业务逻辑中使用,...
而MyBatis-Spring通过提供SqlSessionTemplate和SqlSessionDaoSupport等工具类,使得MyBatis可以透明地与Spring的IoC容器和AOP事务管理相结合,减轻了开发负担。 1. SqlSessionTemplate:它是MyBatis-Spring的核心...
接下来,我们创建Service层,通常会注入SqlSessionTemplate或SqlSessionDaoSupport,这些类可以帮助我们执行myBatis的CRUD操作。例如: ```java @Service public class UserService { @Autowired private ...
总结,Java的MyBatis+Spring框架结合使用DAO模式,通过SqlSessionTemplate和SqlSessionDaoSupport,为数据库操作提供了高效且健壮的解决方案。它们简化了DAO的实现,支持Spring事务管理,并允许灵活的配置,从而提高...
这个依赖包集还包含了其他可能的开发工具包,如MyBatis-Spring,它提供了更便捷的Spring与MyBatis整合方式,例如MapperScannerConfigurer自动扫描并注册Mapper接口,以及SqlSessionTemplate和SqlSessionDaoSupport等...
- **SqlSessionTemplate**或**SqlSessionDaoSupport**:这两者都是执行SQL的工具,SqlSessionTemplate适合于无事务控制的场景,SqlSessionDaoSupport适用于需要事务管理的情况。 - **@Autowired**:Spring通过@...
5. **SqlSessionDaoSupport注入**:使用`SqlSessionDaoSupport`或`SqlSessionTemplate`可以帮助Spring管理SqlSession,避免手动处理提交、回滚和关闭操作。如果自定义实现类,需要自己负责Session的生命周期管理。 ...