美文网首页轻量化框架技术
第七章 Mybatis的核心配置

第七章 Mybatis的核心配置

作者: Y_Jaaao | 来源:发表于2020-04-05 20:48 被阅读0次

    MyBatis的核心对象

    SqlSessionFactory(主要作用:创建SqlSession)

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


    创建SqlSessionFactory:
    创建SqlSessionFactory

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

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



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


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


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


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

    配置文件

    主要元素介绍

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


      主要元素

    properties元素

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

    settings元素

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

    typeAliases元素

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

    typeHandler元素

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

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

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

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

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

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

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


      使用<environments>进行环境配置示例
    事务管理器的配置
    • 在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.使用包类径引入
    使用包类径引入

    映射文件

    主要元素介绍

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


      主要元素

    select元素(映射查询语句)

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


      select元素
    • <select>元素的常用属性


      <select>元素常用属性

    insert元素(映射插入语句)

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


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


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


      不支持主键自增

    update元素和delete元素

    常用属性
    使用示例

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

    sql引用

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

    resultMap元素结构

    相关文章

      网友评论

        本文标题:第七章 Mybatis的核心配置

        本文链接:https://www.haomeiwen.com/subject/bxphphtx.html