mybatis 映射器

1 映射器 Mapper 是由java接口和 XML 文件共同组成。它的作用如下

1)定义参数类型

2)描述缓存

3)描述 SQL 语句

4)定义查询结果和POJO的映射关系

2 SqlSessionFactoryBuilder 主要作用是用来生成 SqlSessionFactory,生成以后就不用了,所以它的生命周期只存在于方法局部。

3 SqlSessionFactory 的作用是创建SqlSession,而 SqlSession 就是一个会话,相当于是JDBC的 Connection 对象。每次应用访问数据库,就需要通过 SqlSessionFactory 创建SqlSession ,所以 SqlSessionFactory 应该在整个生命周期中。每个数据库只对应一个 SqlSessionFactory 。

4 SqlSession 是一个会话,相当于 JDBC 的 Connection 对象,它的生命周期应该是请求数据库处理事务的过程中。它是一个线程不安全的对象,当操作数据库时需要注意其隔离级别、数据库锁等高级特性。

此外每次创建都需要及时关闭它。

5 Mapper 是一个接口,而没有任何实现类,它的作用是发送SQL语句,然后返回我们的结果;或者执行SQL语句修改数据库中数据,因此他应该在一个 SqlSession 事务方法之内,是一个方法级别的东西。

它的最大范围和 SqlSession 是相同的。

6 typeHandler 常用的配置为 java 类型、jdbc类型。typeHandler 的作用就是将参数从 javaType 转化为 jdbcType,或者从数据库取出结果把 jdbcType 转换成 javaType 。

7 引入映射器的方法

7.1)使用文件路径引入映射器,

<mappers>
        <mapper resource=""></mapper>
    </mappers>

7.2)使用包名引入映射器,

<mappers>
        <package name=""/>
    </mappers>

7.3)使用扫描方式引入

<!-- mybatis的Mapper的扫描器 MapperScannerConfigure  会自动扫描
         mapper包下的所有接口自动生成代理对象: 对象名字为Mapper接口类名(首字母小写)
     -->
    <bean id="mapperScanConfig" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.huitong.dao"/>
    </bean>
原文地址:https://www.cnblogs.com/zhaopengcheng/p/7125877.html