1sqlMapConfig.xml

SqlMapConfig.xml中配置的内容和顺序如下:

properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)

 

1.1properties属性定义
 可以把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。
比如:创建db.properties配置数据库连接参数。下面引用这个属性文件。
属性文件:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql

mybatis11   sqlMapConfig.xml文件说明_mysql

注意: MyBatis 将按照下面的顺序来加载属性:
在 properties 元素体内定义的属性首先被读取。 
<properties ><property name="" value=""/></properties>
然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
<properties resource="db.properties"></properties> 
最后读取parameterType(parameterType="cn.itcast.mybatis.po.User")传递的属性,它会覆盖已读取的同名属性。

建议使用properties,不要在properties中定义属性,只引用定义的properties文件中属性,并且properties文件中定义的key要有一些特殊的规则。

 

1.1settings全局参数配置
mybatis运行时可以调整一些全局参数(相当于软件的运行参数),参考:mybatis-settings.xlsx
根据使用需求进行参数配置(开启缓存,延迟加载等)。
注意:小心配置,配置参数会影响mybatis的执行。

ibatis的全局配置参数中包括很多的性能参数(最大线程数,最大待时间。。。),通过调整这些性能参数使ibatis达到高性能的运行,mybatis没有这些性能参数,由mybatis自动调节。

 

1.1typeAliases(常用)

可以将parameterType、resultType中指定的类型 通过别名引用。

1.1.1mybaits提供了很多别名
别名    映射的类型
_byte     byte 
_long     long 
_short     short 
_int     int 
_integer     int 
_double     double 
_float     float 
_boolean     boolean 
string     String 
byte     Byte 
long     Long 
short     Short 
int     Integer(java.iang.Integer) 
integer     Integer 
double     Double 
float     Float 
boolean     Boolean 
date     Date 
decimal     BigDecimal 
bigdecimal     BigDecimal 

1.1.2自定义别名

mybatis11   sqlMapConfig.xml文件说明_加载_02

mybatis11   sqlMapConfig.xml文件说明_java_03

使用别名
在parameterType、resultType中使用别名:

mybatis11   sqlMapConfig.xml文件说明_java_04

 

typeHandlers(类型处理器)
类型处理器将java类型和jdbc类型进行映射。

mybatis默认提供很多类型处理器,一般情况下够用了。

 

1.1.1mappers
<!--加载mapper映射
    如果将和spring整合后,可以使用整合包中提供的mapper扫描器,此处的mappers不用配置了。
     -->
    <mappers>
        <!-- resource是classpath,通过resource加载mapper的映射文件 -->
        <mapper resource="sqlmap/User.xml" />
        <!-- <mapper resource="mapper/UserMapper.xml" /> -->
        <!-- 通过class引用mapper接口 
        class:配置mapper接口全限定名
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中
        -->
        <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->
        <!-- 批量mapper配置 
        通过package进行自动扫描包下边的mapper接口,
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中
        这样就加载了映射文件。
        -->
        <package name="cn.itcast.mybatis.mapper"/>
        
        
    </mappers>

 SqlMapsinfig.xml文件

<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 属性定义
    加载一个properties文件,
    也可以在 properties标签 中配置属性值
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis
    jdbc.username=root
    jdbc.password=mysql
     -->
    <properties resource="db.properties">
        <!-- <property name="" value=""/> -->
    </properties>
    
    <!-- 定义 别名 -->
    <typeAliases>
        <!--
        单个别名的定义
        alias:别名,type:别名映射的类型  -->
        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->
        <!-- 批量别名定义
        指定包路径,自动扫描包下边的pojo,定义别名,别名默认为类名(首字母小写或大写)
         -->
        <package name="cn.itcast.mybatis.po"/>
        
    </typeAliases>
    
    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池-->
            <dataSource type="POOLED">
                <!-- 数据库连接参数 -->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <!--加载mapper映射
    如果将和spring整合后,可以使用整合包中提供的mapper扫描器,此处的mappers不用配置了。
     -->
    <mappers>
        <!-- resource是classpath,通过resource加载mapper的映射文件 -->
        <mapper resource="sqlmap/User.xml" />
        <!-- <mapper resource="mapper/UserMapper.xml" /> -->
        <!-- 通过class引用mapper接口 
        class:配置mapper接口全限定名
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中
        -->
        <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->
        <!-- 批量mapper配置 
        通过package进行自动扫描包下边的mapper接口,
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中
        这样就加载了映射文件。
        -->
        <package name="cn.itcast.mybatis.mapper"/>
        
        
    </mappers>
    
    
</configuration>