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>
  • 相关阅读:
    vs2008下directx11环境配置 k
    sps2003通知实现技巧
    我勒个去,键盘按键坏了怎么办解决按键替换问题
    多重循环的退出问题 ifbreak
    【转】 星号的秘密
    ??运算符,你是干嘛用的
    【转】C++中的const
    性能测试基础知识
    Andriod Studio 运行kotlin main方法异常 Manifest merger failed with multiple errors
    Android 文本后面添加标签
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7142597.html
Copyright © 2011-2022 走看看