总结

mybatis-config.xml 可以改为其他名字

Mybatis - mybatis-config.xml核心配置文档解析_基本类型

环境配置 environments

事务管理器 transactionManager

我们常用的是JDBC:

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_02

 

Mybatis - mybatis-config.xml核心配置文档解析_配置文件_03

 

 

 

 

数据源 datasource

DataSource就是为了方便连接数据库。可以取得值有:

  • UNPOOLED: 不配置连接池。
  • POOLED: 【推荐!!默认值!!】每次新建数据库连接很耗时,因此配置连接池,池子里的连接用完可以回收下次再用,无需重复创建更高效。常用的有dbcp, c3p0 - MySQL - 数据库连接池 C3P0,DBCP
  • JNDI:不常用了

Mybatis - mybatis-config.xml核心配置文档解析_连接池_04

 

 

 

 

属性 properties

核心配置文件中,所有的标签元素,有顺序要求

properties必须放在最上面

Mybatis - mybatis-config.xml核心配置文档解析_连接池_05

 

引入外部配置文件

配置文件:db.properties

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_06

 

 

 通过properties标签引入配置文件:

Mybatis - mybatis-config.xml核心配置文档解析_作用域_07

 

 

 

 配置文件的两种写法

  • 一种是通过外置的properties文件 (优先级更高!!!)
  • 一种是直接在“<properties>”标签里添加属性

Mybatis - mybatis-config.xml核心配置文档解析_配置文件_08

 

 

 

 

类型别名 typeAliases

Mybatis - mybatis-config.xml核心配置文档解析_连接池_09

 

 

 

两种设置方法

方法1:

Mybatis - mybatis-config.xml核心配置文档解析_连接池_10

 

 

 

方法2:

Mybatis - mybatis-config.xml核心配置文档解析_连接池_11

 

 

 

常见类型的别名(基本类型 vs 非基本类型)

  • 基本类型 int --> 别名 _int
  • 包装类型 Integer --> 别名 int

基本类型:

Mybatis - mybatis-config.xml核心配置文档解析_sql_12

 

 

 

非基本类型:

Mybatis - mybatis-config.xml核心配置文档解析_sql_13

 

 

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_14

 

 

 

设置 settings

Mybatis - mybatis-config.xml核心配置文档解析_sql_15

 

 

 

cacheEnabled 开启缓存

Mybatis - mybatis-config.xml核心配置文档解析_sql_16

 

 

 

lazyLoadingEnabled 懒加载

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_17

 

 

 

mapUnderscoreToCamelCase 驼峰命名转换

数据库列名:last_name

pojo属性名:lastName

Mybatis - mybatis-config.xml核心配置文档解析_连接池_18

 

 

 

logImpl 日志实现

Mybatis - mybatis-config.xml核心配置文档解析_连接池_19

只需掌握两个:

LOG4J

STDOUT_LOGGING:控制台输出log

Mybatis - mybatis-config.xml核心配置文档解析_sql_20

 

 

映射器 mappers

 

推荐使用resource方式注册映射器

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_21

 

 

 

Mybatis - mybatis-config.xml核心配置文档解析_sql_22

 

 

 

 

生命周期和作用域

SqlSessionFactoryBuilder, SqlSessionFactory, SqlSession

SqlSessionFactoryBuilder

  • 作用:一旦使用SqlSessionFactoryBuilder创建过了SqlSessionFactory,就不再需要。
  • 适合作用域:局部变量

SqlSessionFactory

  • 作用:用来生成SqlSession。一旦创建就应该在应用运行期间一直存在,没有任何理由丢弃它,或者重新创建一个实例。可以理解为:数据库连接池。
  • 适合作用域:应用作用域
  • 推荐使用单例模式,或者静态单例模式

SqlSession

  • 作用:连接到连接池的一个请求。线程不安全。用完之后需要赶紧关闭,否则资源被占用。
  • 适合作用域:一个请求或者方法作用域

 

三者关系直观图:

Mybatis - mybatis-config.xml核心配置文档解析_连接池_23

 

 

Mybatis - mybatis-config.xml核心配置文档解析_基本类型_24

 

 

Mybatis - mybatis-config.xml核心配置文档解析_sql_25