Mybatis配置文件

配置文件一般起名为:mybatis-config.xml。常用属性的配置模板可以参考:Mybatis配置文件模板

属性

除了 propertiessettings,其余的都可以在 Spring 中配置。集成Spring后,基本不需要使用这个配置文件了。

属性名 作用 备注
properties 配置的属性可以在配置文件的其他位置进行引用 用它来解耦,可以使用 resource="db.properties" 来引入其他配置文件
settings 用于指定MyBatis的一些全局配置属性,改变MyBatis的行为
typeAliases 别名,为Java类型设置一个短的名字,映射时方便使用;分为系统定义别名和自定义别名 可以通过xml和注解配置
typeHandlers 用于jdbcType与javaType之间的转换 参考TypeHandlerRegistry
ObjectFactory MyBatis每次创建结果对象的新实例时,它都会使用对象工厂(ObjectFactory)去构建POJO
plugins 插件,MyBatis允许你在已映射的语句执行过程中的某一点进行拦截调用
environments 用于配置多个数据源,每个数据源分为数据库源和事务的配置
databaseIdProvider MyBatis可以根据不同的数据库厂商执行不同的语句,用于一个系统内多厂商数据源支持
mappers 配置引入映射器的方法。可以使用相对于类路径的资源引用、或完全限定资源定位符(包括file:///的URL),或类名和包名等等

settings

参数 作用 取值 默认值
cacheEnabled 缓存的全局开关 true;false true
lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态 true;false false
aggressiveLazyLoading 当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载。反之,每种属性将会按需加载。 true;false true
multipleResultSetsEnabled 是否允许单一语句返回多结果集,需要兼容驱动 true;false true
useColumnLabel 使用列标签代替列名,不同的驱动在这方面会有不同的表现 true;false true
useGeneratedKeys 允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作 true;false false
autoMappingBehavior 指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套) NONE; PARTIAL; FULL PARTIAL
defaultExecutorType 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会执行预处理语句(prepared statements); BATCH 执行器将执行语句并执行批量更新 SIMPLE; REUSE; BATCH SIMPLE
defaultStatementTimeout 设置超时时间,驱动等待数据库响应的秒数 整型
safeRowBoundsEnabled 允许在嵌套语句中使用分页(RowBounds) true;false false
mapUnderscoreToCamelCase 是否开启自动驼峰命名规则映射 true;false false
localCacheScope MyBatis 利用本地缓存机制防止循环引用和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。 SESSION;STATEMENT SESSION
jdbcTypeForNull 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 JdbcType 枚举 OTHER
lazyLoadTriggerMethods 指定哪个对象的方法触发一次延迟加载 方法列表用逗号隔开 equals, clone, hashCode, toString
callSettersOnNulls 指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或null 值初始化的时候是有用的。注意基本类型(int、boolean等)是不能设置成 null 的。 true;false false
logPrefix 指定 MyBatis 增加到日志名称的前缀 String 类型
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将按顺序自动查找 SLF4J;
LOG4J;
LOG4J2;
JDK_LOGGING;
COMMONS_LOGGING;
STDOUT_LOGGING;
NO_LOGGING
proxyFactory 指定 Mybatis 创建具有延迟加载能力的对象所用到的代理工具 CGLIB;JAVASSIST JAVASSIST

environments

id 是唯一标识,主要用于配置数据源。

transactionManager——事务

配置数据库事务,其中type属性有三种配置方式:

  1. jdbc,采用jdbc的方式管理事务
  2. managed,采用容器的方式管理事务,在JNDI数据源中使用
  3. 自定义,自定义数据库事务管理办法。比如 Spring。

dataSource——数据源

配置数据源连接信息,type属性是连接数据库的方式配置,有四种配置方式:

  1. UNPOOLED,非连接池方式连接
  2. POOLED,使用连接池连接
  3. JNDI,使用JNDI数据源
  4. 自定义数据源

mappers

推荐使用第一种方式,不建议把 java 文件和 xml 文件混在一起。

  1. 引用 xml 文件
<mappers>
      <!-- 直接映射到相应的 mapper 文件 -->
      <mapper resource="mapping/UserMapper.xml" />
</mappers>
  1. 引用 Mapper 接口,需要和 xml 文件放在同一目录下
<mappers>
      <!-- 通过类扫描 mapper 文件 -->
      <mapper class="org.example.mybatis.mapper.UserMapper" />
</mappers>
  1. 引用一个包下所有的 Mapper 接口,需要和 xml 文件放在同一目录下
<mappers>
      <!-- 扫描包下所有的 mapper 文件 -->
      <package name="org.example.mybatis.mapper"/>
</mappers>
  1. 使用 xml 文件的全路径引用,不推荐。

相关文章:

Mybatis配置文件模板

posted @ 2020-12-17 11:11  qianbuhan  阅读(147)  评论(0)    收藏  举报