MyBatis 全局配置文件解析
2017-10-29 10:46
267 查看
### 1. dtd约束
该配置影响的所有映射器中配置的缓存的全局开关
useGeneratedKeys:
自动生成主键
lazyLoadingEnabled:
用的时候才加载,提升性能
aggressiveLazyLoading
当开启时,任何方法的调用都会加载该对象的所有属性。否则,每个属性会按需加载,低于3.4.1默认为true,高于3.4.1默认为false
mapUnderscoreToCamelCase:
驼峰命名自动映射
logImpl:
指定 MyBatis 所用日志的具体实现,未指定时将自动查找
logPrefix
指定 MyBatis 增加到日志名称的前缀。
jdbcTypeForNull :
当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC
类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。
localCacheScope:
MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存
一个会话中执行的所有查询。若设置值为STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。
lazyLoadTriggerMethods:
指定哪个对象的方法触发一次延迟加
jdbcTypeForNull
mybatis对null的处理方式,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。
1.config <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 2.mapper <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2. properties
引入其他文件的,下面的文件内容${}去引用data.properties的变量<properties resource="datasource.properties"></properties>
3. setting
cacheEnabled:该配置影响的所有映射器中配置的缓存的全局开关
useGeneratedKeys:
自动生成主键
lazyLoadingEnabled:
用的时候才加载,提升性能
aggressiveLazyLoading
当开启时,任何方法的调用都会加载该对象的所有属性。否则,每个属性会按需加载,低于3.4.1默认为true,高于3.4.1默认为false
mapUnderscoreToCamelCase:
驼峰命名自动映射
logImpl:
指定 MyBatis 所用日志的具体实现,未指定时将自动查找
logPrefix
指定 MyBatis 增加到日志名称的前缀。
jdbcTypeForNull :
当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC
类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。
localCacheScope:
MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存
一个会话中执行的所有查询。若设置值为STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。
lazyLoadTriggerMethods:
指定哪个对象的方法触发一次延迟加
jdbcTypeForNull
mybatis对null的处理方式,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。
4. typeAliases
1.<typeAliases> <typeAlias alias="Author" type="domain.blog.Author"/> <typeAlias alias="Blog" type="domain.blog.Blog"/> <typeAlias alias="Comment" type="domain.blog.Comment"/> <typeAlias alias="Post" type="domain.blog.Post"/> <typeAlias alias="Section" type="domain.blog.Section"/> <typeAlias alias="Tag" type="domain.blog.Tag"/> </typeAliases> 2.<typeAliases> <package name="domain.blog"/> </typeAliases> 3.@Alias("author") public class Author { ... }
5. typeHandlers (后来的版本已经自动加载)
MyBatis 在不论在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器@MappedJdbcTypes(JdbcType.VARCHAR) public class ExampleTypeHandler extends BaseTypeHandler<String> { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, parameter); } @Override public String getNullableResult(ResultSet rs, String columnName) throws SQLException { return rs.getString(columnName); } @Override public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return rs.getString(columnIndex); } @Override publi bb3b c String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return cs.getString(columnIndex); } }
<!-- mybatis-config.xml --> <typeHandlers> <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/> </typeHandlers>
6. 配置环境(environments)
<environments default="development1">//使用哪个配置 <environment id="development"> <transactionManager type="JDBC">//oracle <property name="..." value="..."/> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> <environment id="development1"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <dataSource type="POOLED">//pooled(数据库连接池方式) unpooled jndc <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
6.databaseIdProvider
MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。 如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃<databaseIdProvider type="DB_VENDOR"> <property name="SQL Server" value="sqlserver"/> <property name="DB2" value="db2"/> <property name="Oracle" value="oracle" /> </databaseIdProvider>
7.映射器(mappers)
1.<mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/> </mappers> 2.<mappers> <mapper url="org/mybatis/builder/PostMapper.xml"/> </mappers> 3.<mappers> <package name="org.mybatis.builder"/> </mappers> 4.<mappers> <mapper class="接口路径"/> </mappers>
相关文章推荐
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- MyBatis系列之(三):SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
- 【Spring+SpringMVC+MyBatis深入学习及搭建】03.MyBatis全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis-Config.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析------------转载
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- 框架学习系列 mybatis 第十三篇 mybatis 全局配置文件 二
- mybatis源码-解析配置文件(三)之配置文件Configuration解析(超详细, 值得收藏)