JavaWeb进阶之路:MyBatis-配置解析

1. 核心配置文件

MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 Mybatis 的配置文件一般命名为 mybatis-config.xml 。

mybatis-config.xml 配置文件的结构如下,它有先后顺序的,如果顺序不对会报错:

  • configuration(配置)
    • properties(属性)
    • settings(设置)
    • typeAliases(类型别名)
    • typeHandlers(类型处理器)
    • objectFactory(对象工厂)
    • plugins(插件)
    • environments(环境配置)
      • environment(环境变量)
        • transactionManager(事务管理器)
        • dataSource(数据源)
    • databaseIdProvider(数据库厂商标识)
    • mappers(映射器)


    
    
    
    
    
    
    
    
    

复制代码

2. environments(环境配置)

MyBatis 可以配置成适应多种环境。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。

注意:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。每个数据库对应一个 SqlSessionFactory 实例

environments 元素定义了如何配置环境。


    
    
        
        
            
        
        
            
            
            
            
        
    
    
    	...
    

复制代码

environments 元素的 default 属性可更改使用不同的环境 ID。 environment 元素的 id 属性可为当前环境命名。

2.1 事务管理器(transactionManager)

在 MyBatis 中有两种类型的事务管理器:

  1. JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。(默认使用)

  2. MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)

    注意:如果使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。

2.2 数据源(dataSource)

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。需要注意的是, 数据源是必须配置的 。

dataSource 提供了3中数据源类型:

  1. UNPOOLED - 这个数据源的实现会每次请求时打开和关闭连接。(没有池的概念)
  2. POOLED - 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。(默认使用)
  3. JNDI - 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

dataSource 元素内的常用属性如下:

driver
url
username
password

3. 属性(properties)

我们可以通过properties属性来实现引用外部配置文件,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。

引用外部配置文件需要在资源目录下新建一个 db.properties :

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username=root
password=123456
复制代码

将外部配置文件 db.properties 导入到 mybatis-config.

你可能感兴趣的:(java,servlet,服务器)