专注Java领域技术
我们一直在努力

08. Mybatis 核心配置文件

原文始发于:08. Mybatis 核心配置文件

Mybatis 核心配置文件用于设置Mybatis 的特性, 如支持驼峰命名, 定义插件等.

1. 配置文件概览

  • Mybatis 的核心配置文件中, 配置项并不太多. 而且当整合spring 之后, 很多配置项都将交由spring处理, 不再通过Mybatis进行配置.
  • Mybatis 核心配置文件中, 标签项可以没有, 但是顺序一定不能乱. 配置顺序如下:
properties: 引用外部properties 配置文件 settings: 设置Mybatis的特性, 如果开启驼峰映射, typeAliases: 设置自定义别名 typeHandlers: 自定义类型处理器 objectFactory: 自定义对象工厂 plugins: 配置插件 environments: 设置运行环境, 配置数据源, 事务 databaseIdProvider: 设置数据库厂商标识 mappers: 配置Mybatis 映射文件  

2. 核心配置项

2.1 properties

properties 标签和spring 类似, 于引入外部属性文件. 对配置文件中的属性值,可使用${}进行引用.

<!-- 引入数据库配置资源文件 --> <properties resource="jdbc.properties" /> 

2.2 settings

用于设置Mybatis 的核心特性, 这个很重要.

mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 true | false False
jdbcTypeForNull 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。 JdbcType 常量,常用值:NULL, VARCHAR 或 OTHER。 OTHER
logPrefix 指定 MyBatis 增加到日志名称的前缀。 任何字符串 未设置

2.3 typeAliases

  • 默认情况下, sql映射文件中, parameterType 和 resultType 需要使用类权限定名称, 可通过配置别名, 使用类简单名称, 或自定义简单名称.
  • 别名不区分大小写
  • 子标签typeAliase 可为某个具体的类自定义别名
  • 子标签package 可为某个包及其子包下所有类进行批量设置别名, 默认别名为类简单名称首字母小写
  • 当别名冲突时, 可通过为冲突类添加@Alias 注解, 来解决冲突
<!-- 配置别名: 别名不区分大小写 --> <typeAliases>     <!-- 为具体类设置别名 -->     <typeAlias type="org.zongf.learn.mybatis3.l01.po.EmployeePO" alias="employeePO"/>      <!-- 为某个包下所有类设置别名 -->     <package name="org.zongf.learn.mybatis3.l01.po" /> </typeAliases> 

2.4 plugins-插件配置

mybatis 之所以强大, 除了本身拥有的强大功能之外, 还允许用户自定义插件, 拦截sql 执行的声明周期.

  • intercepotr: 指定插件类的权限定名, 插件需要实现org.apache.ibatis.plugin.Interceptor 接口
  • property: 配置插件中接收的属性值
<plugins>   <plugin interceptor="org.mybatis.example.ExamplePlugin">     <property name="someProperty" value="100"/>   </plugin> </plugins> 

2.5 environments-环境配置

  • enviroments 主要用于配置数据源和事务, 支持配置多个数据源, 对于不同环境使用不同数据源
  • 当整合spring 之后, 数据源和事务交于spring管理, 所以此标签了解一下即可.
<!-- 配置环境, 可配置多个环境境, 设置默认启用development --> <environments default="development">      <!-- 配置开发环境 -->     <environment id="development">          <!-- 事务管理类型使用JDBC -->         <transactionManager type="JDBC"/>          <!-- 数据源使用连接池 -->         <dataSource type="POOLED">             <property name="driver" value="${jdbc.driver}"/>             <property name="url" value="${jdbc.url}"/>             <property name="username" value="${jdbc.username}"/>             <property name="password" value="${jdbc.password}"/>         </dataSource>     </environment> </environments> 

2.5 mappers-配置

  • mappers 标签用于配置需要注册的sql映射文件, Mybatis 的每个sql映射文件都需要在核心配置文件中注册, 否则sql配置文件不会加载.
  • 子标签:
    • mapper标签: 配置单个的sql映射文件
    • package: 指定mapper 的包位置, 需要映射文件和Mapper 类位于同于包中, 且文件名相同.
  • 笔者认为Mybatis 对于批量配置映射文件支持并不太友好, 通常会采用单个配置.
  • 当整合spring 之后, 关于映射文件的注册, 会交由spring 配置.
<!-- 单个映射文件引入 --> <mappers>     <mapper resource="mappers/PersonMapper.xml"/>     <mapper resource="mappers/UserMapper.xml"/>     <mapper resource="mappers/EmployeeMapper.xml"/> </mappers>  <!-- 批量配置文件 --> <mappers>     <package name="org.zongf.learn.mybatis3.l01.mapper"/> </mappers> 

赞(0) 打赏
未经允许不得转载:Java小咖秀 » 08. Mybatis 核心配置文件
免责声明

抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注Java技术 100年

联系我们联系我们

你默默的关注就是最好的打赏~

支付宝扫一扫打赏

微信扫一扫打赏