天天看点

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

文章目录

  • 1. 核心配置文件
  • 2. 环境配置(environments)
  • 3. 属性(properties)
  • 4. 类型别名(typeAliases)
  • 5. 设置(settings)
  • 6. 其他配置
  • 7. 映射器(mappers)
本文章涉及环境版本:
  • mysql 5.7
  • Mybatis 3.5.x
  • Maven 3.6.x
  • JDK 1.8

项目代码仓库:

https://github.com/Gang-bb/Study-Record/tree/main/bzhan-mybatis-study

需要clone整个bzhan-mybatis-study项目

(整体是一个maven多module工程)

该文章对应:《bzhan-mybatis-study02 》module项目

1. 核心配置文件

  • 配置文件官方推荐命名:mybatis-config.xml. 当然也可以自己命名。
  • MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
  - environment(环境变量)
     - transactionManager(事务管理器) 
     - dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
           

2. 环境配置(environments)

MyBatis 可以配置成适应多种环境

不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。

Mybatis默认的事务管理器就是 JDBC , 连接池 : POOLED

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

3. 属性(properties)

我们可以通过properties属性来实现引用配置文件

这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。【db.properties】

  1. 创建一个db.properties文件
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis-study?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPubicKeyRetrieval=true
username=root
password=root
           
  1. mybatis-config.xml中引入db.properties中的属性
  • 全部在db.properties文件中定义属性
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
  • 在标签中配置
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
PS:如果db.properties文件和标签定义了同名属性并且同时 被引用,优先使用db.properties文件中的属性值!

4. 类型别名(typeAliases)

  • 类型别名是为 Java 类型设置一个短的名字。
  • 存在的意义仅在于用来减少类完全限定名的冗余。
  1. mybatis-config.xml中声明类别名
  • 方式一:直接定位到某个类
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

使用:

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
  • 方式二:扫描一整个包

也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:

扫描实体类的包,它的默认别名就为这个类的 类名,首字母小写(大写也行,建议小写)!

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

使用:

(这里user或User都行)

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

在实体类比较少的时候,使用第一种方式。

如果实体类十分多,建议使用第二种。

方式一可以DIY别名,方式二则不行,如果非要改,需要在实体上增加注解@Alias

例如:

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

使用:

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

5. 设置(settings)

几个重要设置:

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

6. 其他配置

  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins插件
    • mybatis-generator-core
    • mybatis-plus
    • 通用mapper

7. 映射器(mappers)

Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)
  1. 不要使用第二个
  2. 如果把mapper的xml文件写在resource目录下,就不能用第三种方式注册
Mybatis学习笔记--配置文件常见配置解析1. 核心配置文件2. 环境配置(environments)3. 属性(properties)4. 类型别名(typeAliases)5. 设置(settings)6. 其他配置7. 映射器(mappers)

无法注册!

  1. 如果使用class文件绑定注册
<mappers>
	<mapper class="com.gangbb.model.dao.UserMapper"/>
</mappers>
           

注意点:

  • 接口和他的Mapper配置文件必须同名!
  • 接口和他的Mapper配置文件必须在同一个包下!
  1. 使用扫描包进行注入绑定
<mappers>
    <package name="com.gangbb.model.dao"/>
</mappers>
           

注意点:

  • 接口和他的Mapper配置文件必须同名!
  • 接口和他的Mapper配置文件必须在同一个包下!

继续阅读