Mybatis 全局配置文件

2020-01-03 0 By admin

全局配置文件由下面的多个配置指令设置。

一、properties 属性

从外部文件中引入配置信息。
resource : 引入类路径下的文件。
url : 引入网络路径或者磁盘路径下的资源。

二、settings 设置

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

示例:mapUnderscoreToCamelCase 开启驼峰命名规则映射数据库字段的下划线。

三、typeAliases 类型别名

为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
指令 package 为某个包下的所有类批量创建别名。

四、typeHandlers 类型处理器

无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。

五、plugins 插件

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:

  1. Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)
  2. ParameterHandler(getParameterObject,setParameters)
  3. ResultSetHandler(handleResultSets,handleOutputParameters)
  4. StatementHandler(prepare,parameterize,batch,update,query)

六、environments 环境

MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中 使用相同的 SQL 映射。有许多类似的使用场景。

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

七、databaseIdProvider 数据库厂商标识

MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。 如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃。

八、mappers 映射器

既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。 但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。