mybatis 核心配置详解
setting配置
<settings>
<!-- 是否使用二级缓存,默认是关闭 -->
<setting name="cacheEnabled" value="true"/>
<!-- 延迟加载,fetchType会覆盖其属性,association和collection具有这个功能。
po对象中,存在一对多,po对象已经满足需求,而不需要一对多的数据,可以使用懒加载。
当你需要使用一对多的对象的时候,就会再次发出sql请求,返回结果
默认关闭
-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--将积极加载改为消极加载及按需加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 单一的sql语句是否可以返回多个结果集 -->
<setting name="multipleResultSetsEnabled" value="true"/>
<!--列标签替换列名 -->
<setting name="useColumnLabel" value="true"/>
<!-- 支持jdbc自动生成主键 -->
<setting name="useGeneratedKeys" value="false"/>
<!-- 自动映射结果集合,默认是自动映射没有映射的结果集 -->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<!-- 自动映射发现未知列的操作,默认是没有操作 -->
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<!-- 默认的执行器 三种simple一般处理器,reuse处理器重用sql语句,batch批量执行并且会更新 -->
<setting name="defaultExecutorType" value="SIMPLE"/>
<!-- 默认超时时间,,默认就是数据库的超时时间 -->
<setting name="defaultStatementTimeout" value="30"/>
<!-- 返回的结果集合大小 -->
<setting name="defaultFetchSize" value="200"/>
<!-- 允许语句嵌套 分页 -->
<setting name="safeRowBoundsEnabled" value="false"/>
<!-- 驼峰命名映射开启 -->
<setting name="mapUnderscoreToCamelCase" value="false"/>
<!-- 设置sqlsession缓存的数据共享,默认session,设置一级缓存数据共享的范围 -->
<setting name="localCacheScope" value="SESSION"/>
<!-- javaType为空,指定的数据类型 -->
<setting name="jdbcTypeForNull" value="OTHER"/>
<!-- 指定对象延迟加载,通过“,”分割方法名字 -->
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
核心对象配置
-
properties
引入外部propertie配置文件,后通过el表达式使用即可
-
typeAliases
匿名配置
在mapper中写全限制类名,费手,可通过配置将全限制类名弄个匿名代替
-
typeHandle
自定义只要实现
org.apache.ibatis.type.TypeHandler
接口,或继承org.apache.ibatis.type.BaseTypeHandler
类使用如下: <typeHandler javaType="" handler=""/>
-
plugins
方法拦截,返回特殊的结果集合
-
environments
数据源等环境配置
-
databaseIdProvidor
配置不同的数据厂商使用不同的sql语句
-
mappers
mapper映射文件配置