Mybatis学习总结(三).Mybatis全局配置文件
来源:互联网 发布:计算机及网络基础知识 编辑:程序博客网 时间:2024/06/07 11:56
Mybatis-Config配置
在config.xml配置文件中的内容和顺序如下:
- properties 属性
- settings 设置
- typeAliases 类型别名
- typeHandlers 类型处理器
- objectFactory 对象工厂
- plugins 插件
- environments 环境
- environment 环境变量
- transactionManager 事务管理器
- dataSource 数据源
- mappers 映射器
properties属性
<!-- 加载配置文件 --><properties resource="jdbc.properties"/>
<property name="driver" value="${jdbc.driver}" />
setting设置
设置参数
描述
有效值
默认值
cacheEnabled
该配置影响的所有映射器中配置的缓存的全局开关。
true | false
true
lazyLoadingEnabled
延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。
true | false
false
aggressiveLazyLoading
当启用时,带有延迟加载属性的对象的加载与否完全取决于对任意延迟属性的调用;反之,每种属性将会按需加载。
true | false
true
multipleResultSetsEnabled
是否允许单一语句返回多结果集(需要兼容驱动)。
true | false
true
useColumnLabel
使用列标签代替列名。不同的驱动在这方面会有不同的表现,具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。
true | false
true
useGeneratedKeys
允许 JDBC 支持自动生成主键,需要驱动兼容。如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。
true | false
False
autoMappingBehavior
指定 MyBatis 是否以及如何自动映射指定的列到字段或属性。NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。FULL 会自动映射任意复杂的结果集(包括嵌套和其他情况)。
NONE, PARTIAL, FULL
PARTIAL
defaultExecutorType
配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements);BATCH 执行器将重用语句并执行批量更新。
SIMPLE REUSE BATCH
SIMPLE
defaultStatementTimeout
设置超时时间,它决定驱动等待数据库响应的秒数。
Any positive integer
Not Set (null)
safeRowBoundsEnabled
允许在嵌套语句中使用行分界(RowBounds)。
true | false
False
mapUnderscoreToCamelCase
是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
true | false
False
localCacheScope
MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。
SESSION | STATEMENT
SESSION
jdbcTypeForNull
当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。
JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER
OTHER
lazyLoadTriggerMethods
指定哪个对象的方法触发一次延迟加载。
A method name list separated by commas
equals,clone,hashCode,toString
defaultScriptingLanguage
指定动态 SQL 生成的默认语言。
A type alias or fully qualified class name.
org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls
指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意原始类型(int、boolean等)是不能设置成 null 的。
true | false
false
logPrefix
指定 MyBatis 增加到日志名称的前缀。
Any String
Not set
logImpl
指定 MyBatis 所用日志的具体实现,未指定时将自动查找。
SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
Not set
proxyFactory
为 Mybatis 用来创建具有延迟加载能力的对象设置代理工具。
CGLIB | JAVASSIST
CGLIB
mapUnderscoreToCamelCase用法:
<settings><!-- 开启驼峰映射 --><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
typeAliases 类型别名
<typeAliases> <!-- 别名: type: 指定java对象类型 alias: 别名名称 --> <typeAlias type="cn.zto.mybatis.pojo.User" alias="User"/></typeAliases>
<select id="queryUserById" resultType="User" parameterType="Long">SELECT * FROM tb_user WHERE id = #{id}</select>
<typeAliases> <!-- 别名: type: 指定java对象类型 alias: 别名名称 --> <!-- <typeAlias type="cn.zto.mybatis.pojo.User" alias="User"/> <!-- 配置扫描包,更适合企业开发指定扫描包,mybatis会将该包下所有的类生成一个别名别名的首字母不区分大小写,但是,推荐使用大写. --> <package name="cn.zto.mybatis.pojo" /></typeAliases>
<select id="queryUserById" resultType="User" parameterType="Long">SELECT * FROM tb_user WHERE id = #{id}</select>
Mybatis提供的默认别名:
已经为普通的 Java 类型内建了许多相应的类型别名。它们都是大小写不敏感的,需要注意的是由于重载原始类型的名称所做的特殊处理。
别名
映射的类型
_byte
byte
_long
long
_short
short
_int
int
_integer
int
_double
double
_float
float
_boolean
boolean
string
String
byte
Byte
long
Long
short
Short
int
Integer
integer
Integer
double
Double
float
Float
boolean
Boolean
date
Date
decimal
BigDecimal
bigdecimal
BigDecimal
object
Object
map
Map
hashmap
HashMap
list
List
arraylist
ArrayList
collection
Collection
iterator
Iterator
typeHandlers 类型处理器
plugins 插件(拦截器)
- Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) 做执行的时候
- ParameterHandler (getParameterObject, setParameters) 设置参数的时候
- ResultSetHandler (handleResultSets, handleOutputParameters) 结果集的时候
- StatementHandler (prepare, parameterize, batch, update, query) 将sql映射成statement对象的时候
environments 环境
- 每个数据库对应一个 SqlSessionFactory 实例
<!-- 配置环境,数据库连接 --><environments default="development"><environment id="development"><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><environment id="test"><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>
映射器(mappers)
<!-- Using classpath relative resources 路径相对于资源目录跟路径:--><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/></mappers>
<!-- Using url fully qualified paths 使用完整的文件路径:--><mappers> <mapper url="file:///var/mappers/AuthorMapper.xml"/> <mapper url="file:///var/mappers/BlogMapper.xml"/> <mapper url="file:///var/mappers/PostMapper.xml"/></mappers>
<!-- Using mapper interface classes使用mapper接口类路径,注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。--><mappers> <mapper class="org.mybatis.builder.AuthorMapper"/> <mapper class="org.mybatis.builder.BlogMapper"/> <mapper class="org.mybatis.builder.PostMapper"/></mappers>
<!-- Register all interfaces in a package as mappers 使用Mapper接口扫描包 --><mappers> <package name="org.mybatis.builder"/></mappers>
- Mybatis学习总结(三).Mybatis全局配置文件
- 【MyBatis学习02】全局配置文件
- (三)mybatis学习之全局配置文件(sqlMapConfig.xml)
- Mybatis学习记录(三)--Mybatis配置文件详解
- Mybatis学习记录(三)--Mybatis配置文件详解
- Mybatis总结(2)---Mybatis全局配置文件SqlMapConfig.xml
- mybatis学习之全局配置文件(五)
- mybatis中的全局配置文件
- mybatis--全局配置文件详解
- MyBatis-2 全局配置文件
- Mybatis的全局配置文件
- mybatis-全局配置文件
- mybatis全局配置文件参考
- MyBatis 全局配置文件详解
- mybatis全局配置文件详解
- MyBatis 全局配置文件解析
- Mybatis学习总结三
- 框架学习系列 mybatis 第十篇 mybatis 全局配置文件
- 【原创】岁月如歌 一款网易歌单生成pdf的软件
- 【java设计模式】之 抽象工厂(Abstract Factory)模式
- c#通过socket判断服务器连接是否正常
- SIM900A模块短信通信
- Docker学习三两事(一)
- Mybatis学习总结(三).Mybatis全局配置文件
- wifi mesh组网
- hihoCoder 1062 : 最近公共祖先·一(map+lca)
- 「Java 8 函数式编程」读书笔记——lambda表达式
- qemu-img 的使用
- 同一天生日问题
- codeves天梯 Hannoi双塔问题
- Android 界面性能调优手册
- PrayerOJ1823: 每条边的最小生成树