MyBatis Config(二)<settings>

作者: 夏天吃冰棍 | 来源:发表于2019-05-22 20:27 被阅读0次

MyBatis Config(一)如何配置数据库驱动
上一篇文章讲到如何配置MyBatis JDBC,本篇主要讲<settings>标签。<settings>标签主要用于改变MyBatis运行时的行为,如开启二级缓存,开启延迟加载等。虽然不配置<settings>标签也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及他们的作用还是十分必要的

<settings>的常见配置
<! -- 设置 -->
<settings>    
 <setting name="cacheEnabled" value="true" />  
 <setting name="lazyLoadingEnabled" value="true" />    
 <setting name="multipleResultSetsEnabled" value="true" />   
 <setting name="useColumnLabel" value="true" />  
 <setting name="useGeneratedKeys" value="false" />  
 <setting name="autoMappingBehavior" value="PARTIAL" />  
 ...
</settings>

<typeAliases> 标签

<typeAliases>
    <typeAlias alias="user" type="com.xxx.xxx.User"/>
</typeAliases>
<typeAliases>
    <typeAlias  type="com.xxx.xxx.User"/>
</typeAliases>

设置别名,通过typeAlias标签可以在配置文件中任意位置使用user代替"com.xxx.xxx.User"。别名的设置与XML配置相关,其使用意义是减少全限定类名的冗余。
也可以省略alias属性,MyBatis就会默认将类名首字母小写后的名字作为别名。
当POJO类过多时,可以使用通过自动扫包的形式自定义别名,如下:

<typeAliases>
    <package  name="com.xxx.xxx"/>
</typeAliases>

typeAliases的子元素package指定被定义别名的包,MyBatis会将所有com.xxx.xxx包中的POJO类以小写的非限定类名作为它的别名。比如
om.xxx.xxx.User 的别名为user,om.xxx.xxx.Customer的别名customer等。

需要注意的是以上情况只针对没有使用注解的情况。如果程序中使用了注解,则别名为其注解的值,如下。

@Alias(value="user")
public class User{
  //....
}

除了<typeAliases> 自定义别名意外以外,MyBatis框架还默认为许多常见的java类型提供了相应的类的别名:


java类型相应的类的别名

<typeHandler> 标签

MyBatis在预处理语句(PreparedStatement)中设置一个参数或者从结果集(ResultSet)中取出一个值时,都会用其框架内部注册了的typeHandler(类型处理器)进行相关处理。typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType。
为了方便转换,MyBatis框架提供了一些默认的类型处理器,其常用的类型处理器:


常用的类型处理器
**注册一个类型处理器**
<typeHandlers>
    <typeHandler handler="com.xxx.xxx.CustomtypeHandler"/>
</typeHandlers>
**注册一个包中所有处理器**
<typeHandlers>
    <package name="com.xxx.type"/>
</typeHandlers>

MyBatis Config(三)映射文件mappers标签

相关文章

网友评论

    本文标题:MyBatis Config(二)<settings>

    本文链接:https://www.haomeiwen.com/subject/zgrpzqtx.html