博客
关于我
MyBatis学习笔记——04配置解析
阅读量:298 次
发布时间:2019-03-03

本文共 1434 字,大约阅读时间需要 4 分钟。

MyBatis配置与管理

核心配置文件

MyBatis的核心配置文件包含了许多关键设置和属性,这些设置将深刻影响MyBatis的行为。以下是核心配置文件的主要内容:

  • configuration:配置中心,包含所有高层次的设置。
  • properties:用于外部配置文件的引用和动态替换,支持通过Java Properties文件或内部的properties元素传递。
  • settings:数据库连接池、事务管理器等设置。
  • typeAliases:为Java类型设置简短的别名。
  • typeHandlers:定义自定义类型处理器。
  • objectFactory:定义对象工厂。
  • plugins:注册MyBatis插件。
  • environments:定义环境配置。
  • environment:具体的环境变量设置。
  • transactionManager:事务管理器配置。
  • dataSource:数据源配置。
  • databaseIdProvider:数据库厂商标识。
  • mappers:映射器配置,用于注册SQL映射文件或绑定接口。

环境配置

MyBatis支持多种环境配置,允许根据需求选择不同的数据库环境。但需要注意的是,一个SqlSessionFactory实例只能对应一种环境。MyBatis默认的事务管理器是JDBC,连接池是POOLED。

属性配置

通过properties元素,可以通过外部配置文件(如db.properties)实现引用配置,属性文件中的值优先级高于内部定义的值。这种方式支持动态替换,常用于敏感信息(如密码)管理。

示例

environment中引用配置文件中的参数:

类型别名

类型别名用于为Java类设置简短的别名,减少全名引用。可以通过两种方式设置:

  • 手动指定别名:
    1. 扫描包,自动生成别名:
    2. 映射器

      MapperRegistry用于注册和绑定MyBatis映射文件。以下是常见的注册方式:

    3. 配置文件方式(推荐)
      1. 类文件方式
        1. 包扫描方式
        2. 注意:接口和对应的Mapper文件名称及包需一致。

          生产与作用域

          SqlSessionFactoryBuilder用于创建SqlSessionFactory,一旦创建完成后不再需要它。SqlSessionFactory应保持应用整个生命周期,避免重复创建或丢弃。SqlSession用于连接池获取连接,适合请求或方法作用域,使用后必须及时关闭以避免资源泄漏。

          SqlSessionFactoryBuilder

          • 一次创建后保留,适合应用启动时创建。
          • 适合作为单例或静态单例使用。

          SqlSessionFactory

          • 作为数据库连接池,保持应用运行。
          • 最佳作用域:应用层。

          SqlSession

          • 请求或方法作用域使用。
          • 使用后必须关闭,否则会导致连接泄漏。

          总结

          MyBatis的配置和管理需要谨慎对待,特别是生命周期和作用域管理。通过合理配置环境、外部属性、类型别名和映射器,可以充分发挥MyBatis的优势,确保应用的高效运行。

    转载地址:http://fsum.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现哈希表算法(附完整源码)
    查看>>
    Objective-C实现哥德巴赫猜想(附完整源码)
    查看>>
    Objective-C实现唯一路径问题的动态编程方法的算法(附完整源码)
    查看>>
    Objective-C实现唯一路径问题的回溯方法的算法(附完整源码)
    查看>>
    Objective-C实现四舍五入(附完整源码)
    查看>>
    Objective-C实现四阶龙格库塔法(附完整源码)
    查看>>
    Objective-C实现四阶龙格库塔法(附完整源码)
    查看>>
    Objective-C实现回调实例(附完整源码)
    查看>>
    Objective-C实现图-弗洛伊德FloydWarshall算法(附完整源码)
    查看>>
    Objective-C实现图书借阅系统(附完整源码)
    查看>>
    Objective-C实现图像二维熵的图像信号丢失检测(附完整源码)
    查看>>
    Objective-C实现图像去雾算法(附完整源码)
    查看>>
    Objective-C实现图像灰度变换(附完整源码)
    查看>>
    Objective-C实现图像相似度平均值哈希算法(附完整源码)
    查看>>
    Objective-C实现图像移动(附完整源码)
    查看>>
    Objective-C实现图层混合算法(附完整源码)
    查看>>
    Objective-C实现图片dilation operation扩张操作算法(附完整源码)
    查看>>
    Objective-C实现图片erosion operation侵蚀操作算法(附完整源码)
    查看>>
    Objective-C实现图片的放大缩小(附完整源码)
    查看>>
    Objective-C实现图片腐蚀(附完整源码)
    查看>>