第七章 Mybatis的核心配置

MyBatis的核心对象

SqlSessionFactory(主要作用:创建SqlSession)

SqlSessionFactory简介:
  • SqlSessionFactory是MyBatis框架中的重要对象,是单个数据库映射关系经过编译后的内存映像


创建SqlSessionFactory:
创建SqlSessionFactory

SqlSession(主要作用:执行持久化操作)

SqlSession简介
  • SqlSession是MyBatis框架中的重要对象,它是应用程序与持久化层之间执行交互操作的一个单线程对象



SqlSession中的方法:
  • 1、查询方法:
    parameter:传参数
    RowsBounds:做分页查询
    ResultHandler:做复杂结果集的处理对象(用于多表查询)


    查询方法
  • 2、插入、更新、删除方法:


    插入、更新、删除方法
  • 3、其他方法


    其他方法
使用工具类创建SqlSession

配置文件

主要元素介绍

  • 在MyBatis框架的核心配置文件中:配置文件的根元素:元素,其他元素都要在元素内配置


    主要元素

properties元素

  • 是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态替换内部定义的属性。如:数据库的连接等属性,就可以通过典型的Java属性文件中的配置来替换
编写db.properties
db.properties

settings元素

  • 元素主要用于改变MyBatis运行时的行为,如:开启二级缓存、开启延迟加载(通常不需要开发人员去配置,了解即可)

typeAliases元素

  • 元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与xml配置相关,其使用的意义在于减少全限定类名的冗余
  • 若程序中使用了注解,则别名为其注解的值
1.使用元素配置别名的方法:
使用元素配置别名的方法
2.当POJO类过多时,可以通过自动扫描包的形式自定义别名:
通过自动扫描包的形式自定义别名
类型别名

typeHandler元素

  • typeHandler作用:将预处理语句中传入的参数从javaType(Java类型)转为jdbcType(JDBC类型),或者从数据库取出结果时jdbcType转为javaType
  • 元素可在配置文件中注册自定义的类型处理器,使用方法有2种,如下:
1.注册一个类的类型处理器
注册一个类的类型处理器
2.注册一个包中所有的类型处理器
.注册一个包中所有的类型处理器

objectFactory元素(作用:实例化目标类)

  • objectFactory既可以通过默认构造方法实例化(通常使用),也可以在参数映射存在的时候通过参数构造方法来实例化。
  • 大部分场景下都不用配置和修改默认的objectFactory,若想覆盖objectFactory的默认行为,可通过自定义objectFactory来实现,如下:
1.自定义一个对象工厂
自定义一个对象工厂
2.在配置文件中使用元素配置自定义的objectFactory
自定义配置

plugins元素(作用:配置用户所开发的插件)

  • MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,这种拦截调用是通过插件来实现的。

environments元素(作用:对环境进行配置)

  • MyBatis的环境配置实际就是数据源的配置,可通过元素配置多种数据源,即配置多种数据库
    transactionManager:事务的管理
    dataSource:数据源


    使用进行环境配置示例
事务管理器的配置
  • 在MyBatis中,可配置2种类型的事务管理器:
    • (1)JDBC:此配置直接使用JDBC的提交和回滚设置,它依赖于数据源得到的连接来管理事务的作用域
    • (2)MANAGED:此配置从来不提交/回滚一个连接,而是让容器来管理事务的整个生命周期。默认情况下,它会关闭连接,但一些容器并不希望这样,为此用closeConnection属性设置为false来阻止它默认的关闭行为。
数据源的配置
  • (1)UNPOOLED
    配置此数据源类型后,在每次被请求时会打开/关闭连接。对没有性能要求的简单应用程序是个好的选择。在使用前,需要配置5种属性:


    属性
  • (2)POOLED
    此数据源利用“池”的概念,将JDBC连接对象组织起来,避免了在创建新的连接实例时所需要初始化和认证的时间。此方式使得并发web应用可以快速的响应请求,是当前流行的处理方式。在使用时,可配置更多的属性
    属性
  • (3)JNDI
    可在EJB/应用服务器等容器中使用。容器可以集中/在外部配置数据源,然后放置一个JNDI上下文的引用。在使用时,需要配置2个属性


    属性

mappers元素(作用:指定MyBatis映射文件的位置)

  • 一般通过4种方法引入映射器文件
1.使用类路径引入
使用类路径引入
2.使用本地径引入
使用本地径引入
3.使用接口类径引入
使用接口类径引入
4.使用包类径引入
使用包类径引入

映射文件

主要元素介绍

  • 元素是映射文件的根元素,其他元素为子元素


    主要元素

select元素(映射查询语句)

  • select可以帮助我们从数据库中读取出数据,并组装数据给开发人员


    select元素
  • 元素常用属性

insert元素(映射插入语句)

  • 在执行完元素中定义的SQL语句后,会返回一个表示插入记录数的整数


    insert元素示例

    insert中特有属性
  • 执行插入操作后,需要返回插入成功的数据生成主键值,通过上面所述的3个属性实现
    • (1)对于支持主键自增的数据库(如MySQL),可通过如下配置实现


      支持主键自增
  • (2)对于不支持主键自增的数据库(如Oracle),可通过如下配置实现


    不支持主键自增

update元素和delete元素

常用属性

使用示例

sql元素(作用:定义可重用的SQL代码片段,在其他语句中也可引用这一代码片段)

sql引用

resultMap元素(作用:定义映射规则、级联的更新以及定义类型转化器)(最重要)

resultMap元素结构

你可能感兴趣的:(第七章 Mybatis的核心配置)