MyBatis 一(3)之Mybatis全局配置文件

【3】. mybatis全局配置文件(如SqlMapConfig.xml)

SqlMapConfig.xml

<?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> //(可省) 
    	   <!-- 开启全局文件中延迟加载(+ mapper映射文件中:一对一延迟加载:resultMap中(用 association(column、property、select)) ;一对多延迟加载:resultMap中(用 collection(column、property、select);)-->
	    <setting name="lazyLoadingEnabled" value="true"/>
	    <setting name="aggressiveLazyLoading" value="false"/>
	    <!-- 开启全局缓存 (+ mapper映射文件中:开启mapper映射文件的二级缓存 <cache></cache>)-->
	    <setting name="cacheEnabled" value="true"/>
    </settings>
    <typeAliase> //别名定义
        <package name="com.iotek.po"/>
    </typeAliase>
    <properties resource="db.prperties"></properties> //加载jdbc连接属性文件
    <environments default="mysql"> //环境变量配置
        <environment id="mysql">
            <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>
    
    <mappers>//mapper映射文件配置
        <package name="com.iotek.mapper"/>            
    </mappers>
</configuration>

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/human_resource?characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345
configuration配置
  • properties属性
  • Settings设置
  • typeAliases类型命名
  • typeHandlers类型处理器
  • objectFactory对象工厂
  • plugins插件
  • environments环境
  • environment环境变量
  • transactionManager事务管理器
  • dataSource数据源
  • 映射器

原SqlMapConfig.xml

<configuration>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql///test"/>
                <property name="username" value="root"/>
                <property name="password" value="12345"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="sqlmap/User.xml"/>
    </mappers>
</configuration>

【改后SqlMapConfig.xml】

<configuration>
    <typeAliase>
        //<typeAlias alias="user" type="com.iotek.po.User"/> ①
        <package name="com.iotek.po"/>
    </typeAliase>
    <properties resource="db.prperties">
       //<property name="jdbc.username" value="root"/> ①
    </properties>
    <environments default="mysql">
        <environment id="mysql">
            <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="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
                //<property name="password" value="12345"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        //<mapper resource="sqlmap/User.xml"/> ①
        //<mapper class="com.iotek.mapper.UserMapper"/> ②
        <package name="com.iotek.mapper"/>            
    </mappers>
</configuration>
(1)properties 属性

利用 properties元素的 resource属性将外部属性文件加载进来;

加载属性的顺序:

  1. 读取 properties元素中定义的属性首先加载(即 上面①);
  2. 读取 properties元素的 resource属性加载的属性文件中的属性(即 db.properties),会覆盖掉 1;【常用】
  3. 读取 parameterType中传递的属性,会覆盖掉已被读取的同名属性值;
    (最高优先级属性是那些作为方法参数的,即 parameterType传递过来的属性)
    一般:常用加载 .properties外部属性文件的方法;在 .properties文件中,key加上特殊规则(如 jdbc.xx)。

SqlMapConfig.xml

<properties resource="db.prperties"></properties>
<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>

如在 config下创建一个 db.properties属性文件(与 log4j.properties同目录),此时可在全局配置文件中添加< properties>利用 resource属性将 db.properties文件加载进来,通过属性文件中的键得到值,此时< DataSource>中< property name=“driver” value="${jdbc.driver}">即通过 $ {键 }获取值; 也可以直接在< properties>下添加 < property>,再通过 $ {键 }获取值;

(2)Settings 全局参数设置

会修改 Mybatis在运行时的行为方式;
ibatis的全局配置参数,包括很多的性能参数(最大线程数、最大等待时间等),通过调用这些性能参数使用 ibatis达到高性能的运行;
mybatis运行时调整全局参数(相当于软件运行时的参数);

(3)typeAliases别名定义

是 parameterType、resultType中指定类型,通过别名引用。
普通的 java类型,有很多内建的类型别名,他们都是大小写不敏感的(如:Integer——int,String——string)

自定义别名:
在全局配置文件中< typeAliase>中的:
① < typeAlias alias=>的alias:别名, type:对应的类型;
②< package>指定包中所有的类都有别名,使用类名作为别名
,大小写不敏感(即 不区分大小写;
(此时mapper映射文件中 parameterType、resultType写Uesr、user都可以

SqlMapConfig.xml

<typeAliase>
    //<typeAlias alias="user" type="com.iotek.po.User"/>①
    <package name="com.iotek.po"/>
</typeAliase>
(4) mappers

mapper配置:
①<mapper resource=>中使用 resource属性直接引用 mapper配置文件;
②< mapper class=>中使用 class属性引用 mapper接口的全名;
要求:需要 mapper.xml与 mapper.java同名且同目录。
< package name=包名> 批量对 mapper配置,自动扫描包下的所有 mapper接口;【常用】
要求:需要 mapper.xml与 mapper.java同名且同目录。

<mappers>
    //<mapper resource="sqlmap/User.xml"/> ①
    //<mapper class="com.iotek.mapper.UserMapper"/> ②
    <package name="com.iotek.mapper"/>            
</mappers>

(首页网址: https://blog.csdn.net/qq_41029923/article/details/83472411

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值