MyBatis | 全局配置文件

按照 MyBatis 官方文档的介绍顺序,接下来记录关于全局配置文件的内容。从这一章开始我决定使用 Maven 工具来进行配置,但是整体的架构是不变的

首先先罗列一下需要介绍的几个配置参数,由于使用频率问题,我只会对其中几个比较常用的作介绍

  • properties:用来加载属性文件
  • settings:设置全局参数
  • typeAliases:用来设置类型的别名
  • typeHandlers:用来设置类型处理器
  • objectFactory: 用来设置对象工厂
  • plugins:用来设置插件
  • environments:用来设置配置环境
  • mappers:配置映射文件

1. properties 属性

我们之前使用 JDBC 的时候,都是调用外部的 jdbc.properties 配置文件,通过获取键对应的值来获取参数的,这里同样可以使用这种方法。不过,以后使用Spring整合时配置信息都写在Spring里。这里我们只是测试一下这种用法

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false
jdbc.username=root
jdbc.password=lwh011305

配置文件 mybatis-config.xml



    
        
        
            
            
            
            
        
    

Ⅰ.
属性在外部使用时,可以引入外部的 properties 配置文件的内容,其中:
resource :表示引入类路径下的资源
url:表示引入网络或者磁盘下路径下的资源
同时 属性内部还可以使用 属性,其中可以定义 namevalue

Ⅱ.
中定义的属性也可以被 来加载,上述代码中的 value 为对应 jdbc.properties 文件中的 key 值

Ⅲ.
这么多位置的 属性,那么应该先执行哪一个呢?官方文档给出了答案

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

PS:尽量不要把属性写在 properties 下,都写在外部的配置文件中,然后使用 来调用

2. settings 设置

主要用来设置一些一些运行参数,由 namevalue 两个参数组成,由于设置项比较多,此处不罗列了,可以去官方文档查看

3. typeAliases 类型别名

Ⅰ.

我们先看一个 sql 的配置文件 EmployeeMapper.xml


    

其中的 resultType 属性,指定输出结果的类型,必须要输入全类名才行,如果只是输入类似 Employee 的类名,是跑不通的,此时可以使用类型别名

我们在 属性中设置 Employee 类的别名是 emp,此时我们就可以在 EmployeeMapper.xmlresultType 属性中输入 emp 即可


          

PS:如果我们没有设置 alias 属性,那么默认别名可以是 Employee 或者 employee,可以看到类名首字母部分大小写

Ⅱ.

我们还可以使用批量别名


    

指定一个包名,mybatis 会自动的扫描包中所有 Java Bean,自动定义别名,类名上面没有注解的话,别名就是类名(首字母大写或小写都可以)。如果由注解,那么就是注解的设置的属性值

@Alias("emp2")
public class Employee {
     ...
}

PS:当然还有一些 Java 内置的相应类型的别名,以下是截至官方文档的图

2. environments 环境配置

一般情况下,我们会有两个环境,一个是自己搭建的测试环境,一个则是生产环境,那其中的具体配置,比如数据源,事务等等,肯定是不同的,这个时候就会用到环境配置




    
        
        
            
            
            
            
        
    
    
    
        
        
            
            
            
            
        
    


上面我们配置了两个环境,根据环境的 id 加以区分,这个 id 相当于一个身份认证,标识了这个环境的用处,这里我标识了两个,一个是 test ,还有一个 development,此 id 会被环境的默认 id 调用(default),
default:默认的环境 id,这里我们使用的是第二个环境配置
transactionManager:事务管理器的配置(比如:type="JDBC")
dataSource:数据源的配置(比如:type="POOLED")

PS:当然,事务和数据源的配置以后都是在 Spring 中加以配置的,所以这里不加以详细阐述

4. mappers 映射器

Ⅰ.

标签是通过 resource 属性来加载 sql 映射文件的。当然,也可以使用 url 属性,这一点上述说过,不在赘述



    

Ⅱ.

还可以使用 class 属性来引用接口


    

我们映射了 EmployeeMapper 这个接口,但是此时,需要把 sql 映射文件 EmployeeMapper.xml 放到和接口一个包下,即放到包 edu.just.mybatis.dao 下。

Ⅲ.

    

但是如果这个时候有不止一个 sql 映射文件,这时可以指定mapper接口的包名,mybatis自动扫描包下面所有的mapper接口进行加载,但是此时 sql 配置文件也需要放在相同名字的包下面。此时接口的名称和 sql 配置文件名字要一致

如图所示,我们把接口文件和 sql 文件放置在同一包下,同时除了后缀外,名字一定要相同

你可能感兴趣的:(MyBatis | 全局配置文件)