Mybatis 的应用2 —— XML 配置文件

MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。

文档的顶层结构如下:

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

mybatis 的 XML 配置文件中元素的放置有时需要按一定的先后顺序,所以最好按上面的结构进行配置

加载外部 properties 配置文件 —— properties

元素的配置如下:


一旦配置后,就可以加载对应 resource 属性中指定的 properties 键值对。如添加一个 jdbc.properties :

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis_test?characterEncoding=utf-8
mysql.username=root
mysql.password=123456

在 mybatis 的 XML 配置文件的 元素下添加 子元素,即可在配置文件引用 properties 文件中对应 key 的值,用来替换需要动态配置的属性值。

如前面的XML 配置文件可修改如下:





    
    
    
    
        
            
            
                
                
                
                
                
            
        
    
    
        
    

PS:properties 除了上述的加载方式,还可:1. 在创建 SqlSessionFactory 实例过程中的 SqlSessionFactoryBuilder 实例的 build 方法中作为参数传进去;2. 作为 元素的子元素 设置加载。三种方式的加载优先级从高到低为:通过方法参数传递 > resource 属性中指定的配置文件 > 元素的子元素

MyBatis 中的调整设置 —— settings

settings 是 MyBatis 中极为重要的调整设置或全局设置,它们会改变 MyBatis 的运行时行为。如下为完整的设置内容和对应的默认值


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

为 Java 类设置别名 —— typeAliases

类型别名是为 Java 类型设置一个短的名字。它只和 XML 映射文件有关,存在的意义仅在于用来减少类完全限定名的冗余。

修改上述 mybatis 的 XML 配置文件,为 Javabean User 增加 :




    
    
        
    
    
    
    

则上文的映射文件 UserMapper.xml 中 select * from tb_user where id = #{id}

PS1:亦可在 中指定报名包名,则在该包中添加了 @Alias("xxx") 注解的类会添加相应的别名


  

@Alias("User")
public class User {
    ...
}

在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名(如 user )。若有注解,则别名为其注解值。

PS2:mybatis 亦内置了常见的 Java 类型内建的类型别名,如前面的 XML 映射文件中