• Spring整合Mybatis的方式二


    与方式一同理只是有一部分偏差:
    只是在SqlSession的的获取有一些不同

    https://blog.csdn.net/m0_46571920/article/details/112570854
    这种配置的弊端在于,当调用这个方法时,不能存在使用不同 ExecutorType 的进行中的事务。要么确保对不同 ExecutorType 的 SqlSessionTemplate 的调用处在不同的事务中,要么完全不使用事务。

    SqlSessionDaoSupport:

    SqlSessionDaoSupport 是一个抽象的支持类,用来为你提供 SqlSession。调用 getSqlSession() 方法你会得到一个 SqlSessionTemplate,之后可以用于执行 SQL 方法,就像下面这样:

    public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
      public User getUser(String userId) {
        return getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);
      }
    }
    

    在这个类里面,通常更倾向于使用 MapperFactoryBean,因为它不需要额外的代码。但是,如果你需要在 DAO 中做其它非 MyBatis 的工作或需要一个非抽象的实现类,那么这个类就很有用了。
    SqlSessionDaoSupport 需要通过属性设置一个 sqlSessionFactory 或 SqlSessionTemplate。如果两个属性都被设置了,那么 SqlSessionFactory 将被忽略。
    假设类 UserMapperImpl 是 SqlSessionDaoSupport 的子类,可以编写如下的 Spring 配置来执行设置:

    <bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl">
      <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
    

    参考官网:

    http://mybatis.org/spring/zh/sqlsession.html#SqlSessionDaoSupport

  • 相关阅读:
    9.1、PHP 中的函数
    7.2.2、二维数组中包含自定义键数组的打印
    Windows 8 VHD 概述与使用
    8.2、磁盘、目录和文件计算
    7.2.6、随机取出数组中的某个下标
    7.2.3、数组排序
    7.2.7、数组指针的操作
    CentOS6 下 JDK7 + jBoss AS 7 环境搭建
    How to iterate HashMap using JSTL forEach loop
    windows 8 非内置系统管理员获得完整权限的方法
  • 原文地址:https://www.cnblogs.com/qxsong/p/14321068.html
Copyright © 2020-2023  润新知