在Eclipse中,将鼠标放在根节点上后,可以看到配置文件中的主要配置项,如下图所示:
这些项分别是:properties、settings、typeAliases、typeHandlers、plugins、environments、mappers。
注意:这些配置项必须按照先后顺序进行配置
一、配置项介绍
properties:用于配置属性信息。
settings:用于配置MyBatis的运行时方式。
typeAliases:配置类型别名,可以在xml中用别名取代全限定名。
typeHandlers:配置类型处理器。
plugins:配置拦截器,用于拦截sql语句的执行。
environments:配置数据源信息、连接池、事务属性等。
mappers:配置SQL映射文件。
二、配置项详解
(1)properties
配置properties采用键值对的格式进行配置。
文件内配置properties
1
2
3
4
5
|
<property name= "name1" value= "value1" />
<property name= "name2" value= "value2" />
<property name= "name3" value= "value3" />
......
<property name= "nameN" value= "valueN" />
|
文件外配置properties
1
|
<properties resource= "config.properties" />
|
“config.properties”中的内容如下所示:
1
2
3
4
5
|
name1:value1 name2:value2 name3:value2 ...... nameN:valueN |
(2)settings
该项配置格式如下所示:
1
2
3
4
5
6
7
|
<settings> <setting name= "name1" value= "value1" />
<setting name= "name2" value= "value2" />
<setting name= "name3" value= "value3" />
......
<setting name= "nameN" value= "valueN" />
</settings>
|
setting可设置的项相关介绍参见下表:
cacheEnabled | 这个配置使全局的映射器启用或禁用 缓存。 | true | false | true |
lazyLoadingEnabled | 全局启用或禁用延迟加载。当禁用时, 所有关联对象都会即时加载。 This value can be superseded for an specific relation by using the fetchType attribute on it. | true | false | false |
aggressiveLazyLoading | 当启用时, 有延迟加载属性的对象在被 调用时将会完全加载任意属性。否则, 每种属性将会按需要加载。 | true | false | true |
multipleResultSetsEnabled | 允许或不允许多种结果集从一个单独 的语句中返回(需要适合的驱动) | true | false | true |
useColumnLabel | 使用列标签代替列名。 不同的驱动在这 方便表现不同。 参考驱动文档或充分测 试两种方法来决定所使用的驱动。 | true | false | true |
useGeneratedKeys | 允许 JDBC 支持生成的键。 需要适合的 驱动。 如果设置为 true 则这个设置强制 生成的键被使用, 尽管一些驱动拒绝兼 容但仍然有效(比如 Derby) | true | false | False |
autoMappingBehavior | 指定 MyBatis 如何自动映射列到字段/ 属性。PARTIAL 只会自动映射简单, 没有嵌套的结果。FULL 会自动映射任 意复杂的结果(嵌套的或其他情况) 。 | NONE, PARTIAL, FULL | PARTIAL |
defaultExecutorType | 配置默认的执行器。SIMPLE 执行器没 有什么特别之处。REUSE 执行器重用 预处理语句。BATCH 执行器重用语句 和批量更新 | SIMPLE REUSE BATCH | SIMPLE |
defaultStatementTimeout | 设置超时时间, 它决定驱动等待一个数 据库响应的时间。 | Any positive integer | Not Set (null) |
safeRowBoundsEnabled | Allows using RowBounds on nested statements. | true | false | False |
mapUnderscoreToCamelCase | Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn. | true | false | False |
localCacheScope | MyBatis uses local cache to prevent circular references and speed up repeated nested queries. By default (SESSION) all queries executed during a session are cached. If localCacheScope=STATEMENT local session will be used just for statement execution, no data will be shared between two different calls to the same SqlSession. | SESSION | STATEMENT | SESSION |
jdbcTypeForNull | Specifies the JDBC type for null values when no specific JDBC type was provided for the parameter. Some drivers require specifying the column JDBC type but others work with generic values like NULL, VARCHAR or OTHER. | JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER | OTHER |
lazyLoadTriggerMethods | Specifies which Object's methods trigger a lazy load | A method name list separated by commas | equals,clone,hashCode,toString |
defaultScriptingLanguage | Specifies the language used by default for dynamic SQL generation. | A type alias or fully qualified class name. | org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver |
callSettersOnNulls | 当结果集中含有Null值时是否执行映射对象的setter或者Map对象的put方法。此设置对于原始类型如int,boolean等无效。 | true | false | false |
logPrefix | Specifies the prefix string that MyBatis will add to the logger names. | Any String | Not set |
logImpl | Specifies which logging implementation MyBatis should use. If this setting is not present logging implementation will be autodiscovered. | SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING | Not set |
proxyFactory | Specifies the proxy tool that MyBatis will use for creating lazy loading capable objects. | CGLIB | JAVASSIST | CGLIB |
一个设置信息元素的示例,完全的配置如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<settings>
<setting name= "cacheEnabled" value= "true" />
<setting name= "lazyLoadingEnabled" value= "true" />
<setting name= "multipleResultSetsEnabled" value= "true" />
<setting name= "useColumnLabel" value= "true" />
<setting name= "useGeneratedKeys" value= "false" />
<setting name= "autoMappingBehavior" value= "PARTIAL" />
<setting name= "defaultExecutorType" value= "SIMPLE" />
<setting name= "defaultStatementTimeout" value= "25" />
<setting name= "safeRowBoundsEnabled" value= "false" />
<setting name= "mapUnderscoreToCamelCase" value= "false" />
<setting name= "localCacheScope" value= "SESSION" />
<setting name= "jdbcTypeForNull" value= "OTHER" />
<setting name= "lazyLoadTriggerMethods" value= "equals,clone,hashCode,toString" />
</settings>
|
(3)typeAliases
1
2
3
4
5
6
7
8
|
<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> |
类型别名必须遵循MyBatis命名规范。
具体参见:http://mybatis.github.io/mybatis-3/zh/configuration.html#typeAliases
(4)typeHandlers
无论是 MyBatis 在预处理语句中设置一个参数, 还是从结果集中取出一个值时, 类型处 理器被用来将获取的值以合适的方式转换成 Java 类型。下面这个表格描述了默认的类型处 理器。
BooleanTypeHandler | java.lang.Boolean, boolean | 任何兼容的布尔值 |
ByteTypeHandler | java.lang.Byte, byte | 任何兼容的数字或字节类型 |
ShortTypeHandler | java.lang.Short, short | 任何兼容的数字或短整型 |
IntegerTypeHandler | java.lang.Integer, int | 任何兼容的数字和整型 |
LongTypeHandler | java.lang.Long, long | 任何兼容的数字或长整型 |
FloatTypeHandler | java.lang.Float, float | 任何兼容的数字或单精度浮点型 |
DoubleTypeHandler | java.lang.Double, double | 任何兼容的数字或双精度浮点型 |
BigDecimalTypeHandler | java.math.BigDecimal | 任何兼容的数字或十进制小数类型 |
StringTypeHandler | java.lang.String | CHAR 和 VARCHAR 类型 |
ClobTypeHandler | java.lang.String | CLOB 和 LONGVARCHAR 类型 |
NStringTypeHandler | java.lang.String | NVARCHAR 和 NCHAR 类型 |
NClobTypeHandler | java.lang.String | NCLOB 类型 |
ByteArrayTypeHandler | byte[] | 任何兼容的字节流类型 |
BlobTypeHandler | byte[] | BLOB 和 LONGVARBINARY 类型 |
DateTypeHandler | java.util.Date | TIMESTAMP 类型 |
DateOnlyTypeHandler | java.util.Date | DATE 类型 |
TimeOnlyTypeHandler | java.util.Date | TIME 类型 |
SqlTimestampTypeHandler | java.sql.Timestamp | TIMESTAMP 类型 |
SqlDateTypeHandler | java.sql.Date | DATE 类型 |
SqlTimeTypeHandler | java.sql.Time | TIME 类型 |
ObjectTypeHandler | Any | 其他或未指定类型 |
EnumTypeHandler | Enumeration Type | VARCHAR-任何兼容的字符串类型, 作为代码存储(而不是索引) |
EnumOrdinalTypeHandler | Enumeration Type | Any compatible NUMERIC or DOUBLE, as the position is stored (not the code itself). |
你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。
(5)plugins
参见:http://mybatis.github.io/mybatis-3/zh/configuration.html#plugins
(6)environments
参见:http://mybatis.github.io/mybatis-3/zh/configuration.html#environments
(7)mappers
1
2
3
4
5
6
7
|
<mappers> <mapper resource= "model1.xml" />
<mapper resource= "model2.xml" />
<mapper resource= "model3.xml" />
......
<mapper resource= "modelN.xml" />
</mappers> |
原文地址:
http://my.oschina.net/wlb/blog/287777
相关推荐
【MyBatis 主配置文件详解】 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。与传统的 JDBC 相比,MyBatis 简化了手动设置参数和获取结果集的过程,通过 XML 或注解进行映射,将接口和 ...
【Mybatis-generator 生成Mybatis配置文件】 Mybatis Generator 是一款强大的工具,它能够自动根据数据库表结构生成MyBatis的映射文件、实体类以及Mapper接口,极大地提高了开发效率。在项目开发过程中,手动编写...
下面详细说明Mybatis-generator的配置文件generatorConfig.xml中的各个标签以及其作用。 generatorConfiguration:这是Mybatis-generator的根标签,定义了整个生成器的配置。所有的配置信息都是在该标签内定义。 ...
运行批处理文件后,Mybatis-Generator会根据配置文件生成相应的Java类、XML映射文件和Mapper接口,这些文件会按照我们在配置文件中指定的路径保存。 总的来说,Mybatis-Generator通过独立的配置文件和批处理脚本,...
在 MyBatis 的配置文件 mybatis_config.xml 中,我们可以使用 typeAlias 来指定 Blog 对象的别名为 "Blog",然后在 select 语句中使用 resultType="Blog" 来指定查询结果的返回类型为 Blog 对象。 在查询映射时,...
总结来说,MyBatis配置文件是项目与数据库交互的蓝图,它定义了如何连接数据库、如何管理事务以及如何找到SQL映射文件。理解并正确配置这些元素对于确保MyBatis框架的正常运行至关重要。通过灵活地调整环境、数据源...
在 MyBatis 的核心配置文件中,`properties` 标签扮演着重要的角色,它允许我们将敏感信息,如数据库连接参数,抽取到外部配置文件,以提高应用的可维护性和安全性。 1. **properties 标签的用途** `properties` ...
本文将深入探讨如何优化MyBatis配置文件,主要包括两个方面:数据库连接配置的优化和实体类别名的定义。 首先,我们来看一下如何优化数据库连接的配置。在原始的配置中,数据库的连接信息(如驱动、URL、用户名和...
1. **加载配置**: Mybatis 初始化时会读取 mybatis-config.xml 文件,解析全局配置和环境信息。 2. **创建 SqlSessionFactory**: 使用 Configuration 创建 SqlSessionFactory,它是线程安全的,一般一个应用只需要...
配置文件详解** - **applicationContext.xml**:这是Spring的核心配置文件,主要用于配置Spring容器的各种Bean以及AOP、事务管理等。 - **springmvc.xml**:用于配置SpringMVC的相关组件,如控制器、视图解析器等...
总结来说,MyBatis映射文件实例展示了如何通过XML配置文件来实现SQL语句与Java对象的绑定。它涵盖了基本的简单类型参数传递、POJO对象的使用,以及如何处理复杂的查询条件。通过这些配置,开发者可以方便地将业务...
首先,我们需要创建 MyBatis 的配置文件(mybatis-config.xml),在这个文件中配置数据源、事务管理器、以及映射文件的位置等信息。配置文件是整个 MyBatis 框架的核心,所有相关的配置都在这里进行。 接着,创建...
首先,我们需要在Mybatis的xml配置文件中定义Collection集合标签: ```xml <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> ...
Spring 表达式是在配置文件中使用的,用于读取 Bean 对象或者集合中的值。用#{ id.属性}。 自动装配是 Spring 的一项功能,可以按照名字或类型进行装配。使用 @Autowired 注解,可以按照名字或类型进行装配。如果...
2. **配置文件**:MyBatis的主配置文件(mybatis-config.xml)包含了数据源、事务管理器、环境配置等信息,是整个框架的起点。 3. **Mapper接口与XML映射文件**:Mapper接口定义了数据库操作的方法,XML映射文件则...
MyBatis环境资源配置实现代码详解是MyBatis框架中最重要的配置部分,其中包括了pom.xml文件配置、MyBatis核心配置文件、Mapper配置文件等多个方面。下面将对这些配置文件进行详细的解析,并对每个配置文件的作用和...
- **SqlSessionFactory配置**:使用`<bean>`标签创建SqlSessionFactory,配置Mybatis配置文件路径和数据源。 - **事务管理器配置**:配置PlatformTransactionManager,一般使用DataSourceTransactionManager。 - **...