Mybatis

总结

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

环境配置 environments

事务管理器 transactionManager

我们常用的是JDBC:

数据源 datasource

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

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

属性 properties

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

properties必须放在最上面

引入外部配置文件

配置文件:db.properties

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

 配置文件的两种写法

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

类型别名 typeAliases

两种设置方法

方法1:

方法2:

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

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

基本类型:

非基本类型:

设置 settings

cacheEnabled 开启缓存

lazyLoadingEnabled 懒加载

mapUnderscoreToCamelCase 驼峰命名转换

数据库列名:last_name

pojo属性名:lastName

logImpl 日志实现

只需掌握两个:

LOG4J

STDOUT_LOGGING:控制台输出log

映射器 mappers

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

生命周期和作用域

SqlSessionFactoryBuilder, SqlSessionFactory, SqlSession

SqlSessionFactoryBuilder

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

SqlSessionFactory

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

SqlSession

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

三者关系直观图:

  

原文地址:https://www.cnblogs.com/frankcui/p/14056962.html