您的位置:首页 > 其它

MyBatis 全局配置文件解析

2017-10-29 10:46 267 查看
### 1. dtd约束

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐