zoukankan      html  css  js  c++  java
  • 关于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作为构造方法的参数来创建。

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> 
      <constructor-arg index="0" ref="sqlSessionFactory"/> 
    </bean> 

    这个bean现在可以直接注入到DAO bean中。你需要在bean中添加一个SqlSession属性,就像下面的代码:

    public class UserDaoImpl implements UserDao{ 
      private SqlSessionTemplate sqlSessionTemplate; 
      public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate){ 
        this.sqlSessionTemplate = sqlSessionTemplate; 
      } 
      public User getUser(String userId){ 
        return (User)sqlSessionTemplate.selectOne ("org.mybatis.spring.sample.mapper.UserMapper.getUser",userId); 
      } 
    } 

    如下注入SqlSessionTemplate:

    <bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl"> 
      <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/> 
    </bean>
  • 相关阅读:
    关于 RuntimeBinderException 异常
    IE 跨域session丢失问题
    一个简单的方法去掉angular application中URLs的hashtag
    ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
    (转载)Why you shouldn't use Entity Framework with Transactions
    angular自启动过程
    HTML中的IE条件注释,让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案
    angualrjs 总结 随记(三)
    angualrjs 总结 随记(二)
    angualrjs 总结 随记(一)
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7142597.html
Copyright © 2011-2022 走看看