Home  >  Article  >  Java  >  Detailed explanation of MyBatis XML configuration

Detailed explanation of MyBatis XML configuration

PHP中文网
PHP中文网Original
2017-06-22 14:28:181240browse

This article mainly introduces the relevant information on the detailed explanation of XML configuration in Mybatis. It is very good and has reference value. Friends in need can refer to it

Mybatis commonly used XML configuration with disabled cache

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
 <!-- Settings 必须放到最上面 -->
 <settings>
  <!-- 该配置影响的所有映射器中配置的缓存的全局开关。默认true -->
  <setting name="cacheEnabled" value="false" />  
  <!-- MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 
       默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。
       若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。
   -->
   <setting name="localCacheScope" value="SESSION" />
   <!-- 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。 -->
  <setting name="jdbcTypeForNull" value="OTHER" />
 </settings>
 <!-- MyBatis 连接MySql数据库 -->
 <environments default="development">
  <environment id="development">
   <!-- 使用jdbc事务管理 -->
   <transactionManager type="JDBC" />
   <!-- 配置数据库连接池 -->
   <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/yourdb" />
    <property name="username" value="root" />
    <property name="password" value="toor" />
   </dataSource>
  </environment>
 </environments>
 <!-- 所有数据库语句映射文件必须在这里注册 -->
 <mappers>
  <mapper resource="dao/mappers/ManagerMapper.xml" />
 </mappers>
</configuration>

The complete configuration of MyBatis is as follows:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
 <!-- Settings 必须放到最上面 -->
 <settings>
  <!-- 该配置影响的所有映射器中配置的缓存的全局开关。默认true -->
  <setting name="cacheEnabled" value="true" />
  <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。默认false -->
  <setting name="lazyLoadingEnabled" value="true" />
  <!-- 是否允许单一语句返回多结果集(需要兼容驱动)。 默认true -->
  <setting name="multipleResultSetsEnabled" value="true" />
  <!-- 使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。默认true -->
  <setting name="useColumnLabel" value="true" />
  <!-- 允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。
    默认false -->
  <setting name="useGeneratedKeys" value="false" />
  <!-- 指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。
    FULL 会自动映射任意复杂的结果集(无论是否嵌套)。
    默认 PARTIAL -->
  <setting name="autoMappingBehavior" value="PARTIAL" />
  <!-- 
  Specify the behavior when detects an unknown column (or unknown property type) of automatic mapping target.
   NONE: Do nothing
   WARNING: Output warning log (The log level of &#39;org.apache.ibatis.session.AutoMappingUnknownColumnBehavior&#39; must be set to WARN)
   FAILING: Fail mapping (Throw SqlSessionException)
  Default:NONE
   -->
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING" />
  <!-- 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。默认SIMPLE -->
  <setting name="defaultExecutorType" value="SIMPLE" />
  <!-- 设置超时时间,它决定驱动等待数据库响应的秒数。Not Set (null) -->
  <setting name="defaultStatementTimeout" value="25" />
  <!-- 为驱动的结果集获取数量(fetchSize)设置一个提示值。此参数只可以在查询设置中被覆盖。 -->
  <setting name="defaultFetchSize" value="100" />
  <!-- 允许在嵌套语句中使用分页(RowBounds)。 If allow, set the false. -->
  <setting name="safeRowBoundsEnabled" value="false" />
  <!-- 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 -->
  <setting name="mapUnderscoreToCamelCase" value="false" />
  <!-- MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 
       默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。
       若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。
   -->
   <setting name="localCacheScope" value="SESSION" />
   <!-- 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。 -->
  <setting name="jdbcTypeForNull" value="OTHER" />
  <!-- 指定哪个对象的方法触发一次延迟加载。 -->
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString" />
 </settings>
 <!-- MyBatis 连接MySql数据库 -->
 <environments default="development">
  <environment id="development">
   <!-- 使用jdbc事务管理 -->
   <transactionManager type="JDBC" />
   <!-- 配置数据库连接池 -->
   <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/yourdb" />
    <property name="username" value="root" />
    <property name="password" value="toor" />
   </dataSource>
  </environment>
 </environments>
 <!-- 所有数据库语句映射文件必须在这里注册 -->
 <mappers>
  <mapper resource="dao/mappers/ManagerMapper.xml" />
 </mappers>
</configuration>



The above is the detailed content of Detailed explanation of MyBatis XML configuration. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn