Mybatis主配置文件标签及其用法(上)

一、关于顺序

Mybatis主配置文件结构上就两大块即文件头和配置,程序员只需要在configuration配置对应标签即可

<?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核心配置文件-->
<configuration>
    
</configuration>

Mybatis-config.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核心配置文件-->
<configuration>
<!--    属性配置-->
    <properties url="" resource=""></properties>
<!--    设置-->
    <settings>
        <setting name="" value=""/>
    </settings>
<!--    类型别名-->
    <typeAliases>
        <typeAlias type="" alias=""/>
        <package name=""/>
    </typeAliases>
<!--    类型处理器-->
    <typeHandlers>
        <typeHandler handler="" javaType="" jdbcType=""/>
        <package name=""/>
    </typeHandlers>
<!--    对象工场-->
    <objectFactory type="">
        <property name="" value=""/>
    </objectFactory>
<!--    对象封装器工场-->
    <reflectorFactory type=""/>
<!--    插件-->
    <plugins>
        <plugin interceptor=""></plugin>
    </plugins>
<!--    环境配置-->
    <environments default="">
<!--        环境变量-->
        <environment id="">
<!--            事务管理器-->
            <transactionManager type=""></transactionManager>
<!--            数据源类型-->
            <dataSource type=""></dataSource>
        </environment>
    </environments>
<!--    数据库厂商标识-->
    <databaseIdProvider type="">
        <property name="" value=""/>
    </databaseIdProvider>
<!--    映射器-->
    <mappers>
        <mapper resource=""/>
        <mapper class=""/>
        <mapper url=""/>
        <package name=""/>
    </mappers>
</configuration>

注意:只能按照上面的顺序排序编写配置,当把两个配置颠倒位置时会报错,如下图

二、关于功能(虽然一共有11个配置标签但是不是所有的都常用)

1.properties配置文件

方法一:在外部配置

数据库的驱动信息每次都在主配置文件编写显得environment部分比较臃肿,我们可以把配置文件在外部配置,这种方法也便于维护人员的调试

创建properties外部配置文件一共分为三步,第一步先在外部建一个以properties结尾的文件写入我们所需要的驱动配置信息

第二步在configuration下使用外部配置文件标签,给出配置文件全路径

第三步在dataSource配置中使用外部配置文件的别名代替

方法二:在内部配置

其实除了上述两种方法外还可以通过方法参数传递属性。

如果属性存在于多个位置,MyBatis 将按以下顺序加载它们:

  • 首先读取属性元素正文中指定的属性,
  • 从类路径资源或属性元素的 url 属性加载的属性将秒读取,并覆盖已指定的任何重复属性,
  • 作为方法参数传递的属性将最后读取,并覆盖可能已从属性正文和资源/url 属性加载的任何重复属性。

因此,优先级最高的属性是作为方法参数传入的属性,后跟资源/url 属性,最后是在属性元素的正文中指定的属性。

2.settings(一般根据项目需求自行设置)

 <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="autoMappingUnknownColumnBehavior" value="WARNING"/>
<!--        默认执行器类型-->
        <setting name="defaultExecutorType" value="SIMPLE"/>
<!--        默认语句超时时间-->
        <setting name="defaultStatementTimeout" value="25"/>
<!--        默认提取大小-->
        <setting name="defaultFetchSize" value="100"/>
<!--        启用安全行边界-->
        <setting name="safeRowBoundsEnabled" value="false"/>
<!--        将下划线映射到驼峰大小写-->
        <setting name="mapUnderscoreToCamelCase" value="false"/>
<!--        本地缓存作用域-->
        <setting name="localCacheScope" value="SESSION"/>
<!--        为Null的jdbc类型-->
        <setting name="jdbcTypeForNull" value="OTHER"/>
<!--        延迟加载触发器方法-->
        <setting name="lazyLoadTriggerMethods"
                 value="equals,clone,hashCode,toString"/>
    </settings>

3.typeAliases

方法一:类型别名只是 Java 类型的较短名称。它仅与 XML 配置相关,并且只是为了减少完全限定类名的冗余类型而存在。例如:

<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会在包中自动寻找bean,找到bean后有注释会优先使用注释,如果bean没有注释则会默认使用类的类名(首字母小写)

<typeAliases> <package name="domain.blog"/> </typeAliases>

常见 Java 类型有许多内置类型别名。它们都不区分大小写,请注意由于名称过载而对基元的特殊处理。

别名

映射类型

_byte

字节

_long

_short

_int

int

_integer

int

_double

_float

_boolean

布尔

字符串

字符串

字节

字节

int

整数

整数

整数

布尔

布尔

日期

日期

十进制

大十进制

大十进制

大十进制

对象

对象

地图

地图

哈希映射

哈希映射

列表

列表

数组列表

阵列列表

收集

收集

迭 代

迭 代

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值