10.30Mybatis配置文件及其元素
Mybatis配置文件结构
注意:
- 
Mybatis配置文件的元素节点是有一定顺序的,节点位置必须按以上位置排序,否则会编译错误。
XML配置文件中的重要标签
properties标签
settings标签
typeAliases标签
typeHandler标签
environments标签
transactionManager标签
dataSource标签
mapper标签
标签示例:
properties标签
作用:
- 
配置文件标签 - 
使用标签元素指定外部文件 
- 
值在标签中 
 
- 
指定外部文件:
<properties resource="MybatisStudy/resource/databases.properties" />
<!--使用resource属性引用外部的配置文件-->
值在标签中:
<properties>
    <property name="username" value="junkingboy" />
    <property name="password" value="junkingboy" />
</properties>
在environments节点中引用username和password变量:
<environments default="test">
    <environment id="test">
        <transactionManager type="JDBC" />
        <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>
</environments>
setting标签
作用:
配置Mybatis运行时行为,影响Mybatis的底层运行。
| 配置项 | 作用 | 配置选项 | 默认值 | 
|---|---|---|---|
| cacheEnabled | 影响所有映射器中配置缓存的全局开关 | true|false | true | 
| lazyLoadingEnabled | 延迟加载的全局开关。开启时,所有关联对象都会延迟加载。在特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态 | true|false | true | 
| aggressiveLazyLoading | 当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载;反之,每种属性将会按需加载 | true|false | 3.4.1版本之后默认为 false | 
| autoMappingBehavior | 指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射。 PARTIAL 表示只会自动映射,没有定义嵌套结果集和映射结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套) | NONE、PARTIAL、FULL | PARTIAL | 
| defaultExecutorType | 配置默认的执行器。SIMPLE 是普通的执行器;REUSE 会重用预处理语句(prepared statements);BATCH 执行器将重用语句并执行批量更新 | SIMPLE、REUSE、BATCH | SIMPLE | 
| mapUnderscoreToCamelCase | 是否开启自动驼峰命名规则映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射 | true|false | false | 
typeAliases标签
作用:
定义别名
这个作用类似于SQL当中的别名的概念。给指定包下的类指定别名
<typeAliases>
    <typeAlias alias="website" type="com.junkingboy.bean" />
</typeAliases>
对同一个包下的多个类定义别名:
<typeAliases>
    <package name="com.junkingboy.bean" />
</typeAliases>
<!--
这样mybatis会扫描com.junkingboy.bean包里面的类,将其第一个字母变为小写作为其别名
-->
typeHandler标签
作用:
处理器类型标签。主要作用是:将获取的值合理地转化为 Java 类型。
- 
jdbcType 用于定义数据库类型
- 
javaType 用于定义 Java 类型
typeHandler的作用就是承担jdbcType和javaType之间的相互转换。
自定义类型:
要求:
实现 org.apache.ibatis.type.TypeHandler接口或继承org.apache.ibatis.type.BaseTypeHandle类
举例:
| 类型处理器 | Java类型 | JDBC类型 | 
|---|---|---|
| BooleanTypeHandler | java.lang.Boolean,boolean | 数据库兼容的 BOOLEAN | 
| ByteTypeHandler | java.lang.Byte,byte | 数据库兼容的 NUMERIC或BYTE | 
| ShortTypeHandler | java.lang.Short,short | 数据库兼容的 NUMERIC或SMALLINT | 
| IntegerTypeHandler | java.lang.Integer,int | 数据库兼容的 NUMERIC或INTEGER | 
| LongTypeHandler | java.lang.Long,long | 数据库兼容的 NUMERIC或BIGINT | 
| FloatTypeHandler | java.lang.Float,float | 数据库兼容的 NUMERIC或FLOAT | 
| DoubleTypeHandler | java.lang.Double,double | 数据库兼容的 NUMERIC或DOUBLE | 
| BigDecimalTypeHandler | java.math.BigDecimal | 数据库兼容的 NUMERIC或DECIMAL | 
environmentes标签
作用:
配置mybatis的多套运行环境,将SQL映射到多个不同的数据库上--->必须指明一套默认的运行环境
配置一套运行环境需要的标签:
- 
environment- 
transactionManager--->Mybatis支持的两个事务管理器- 
JDBC类型事务管理器--->应用程序服务器负责事务管理操作,例如提交、回滚等
- 
Managed类型事务管理器--->应用程序服务器负责管理连接生命周期
 
- 
- 
dataSource- 
配置数据库的连接属性 
- 
type属性用于指定数据源类型- 
Unpooled:没有数据库连接池,Mybatis需要打开和关闭每个数据库操作的链接
- 
Pooled:由Mybatis维护一个数据库连接池,每个数据库的操作,MyBatis都会使用连接池中的连接,并在操作完成后将它们返回到池中。--->减少了每次创建新连接的初始化连接和身份验证的时间
- 
Jndi:MyBatis从JNDI数据源中获取连接。
 
- 
 
- 
 
- 
dataSource标签示例:
<dataSource type="POOLED">
    <!-- MySQL数据库驱动 -->
    <property name="driver" value="com.mysql.jdbc.Driver" />
    <!-- 连接数据库的URL -->
    <property name="url"
        value="jdbc:mysql://localhost:3306/test?characterEncoding=utf8" />
    <property name="username" value="junkingboy" />
    <property name="password" value="junkingboy" />
</dataSource>
mappers标签
作用:
指定 MyBatis SQL映射文件的路径
子标签:
mapper
子标签中用于指定SQL映射文件路径的属性:
resource
举例:
<mappers>
<mapper resource="com/junkingboy/mapper/Website.xml" />
</mappers>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号