04 MyBatis全局配置文件

本文详细介绍了MyBatis配置文件的各个组成部分,包括DTD文件类型定义、properties属性配置、settings设置、typeAliases类型别名、environments环境配置以及mappers映射器的多种注册方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DTD(Document Type Defination)文件类型定义,先导入这个,然后xml就会根据这个生成和检验xml文件.

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

以下所有的配置元素都是写在configuration中的

一、properties(属性)

它用来提前声明一些值,在整个全局变量中如果使用的时候只需要加上占位符(#{}和${}),在加载的时候会自动进行取值.
例如:这个例子中username和password将由properties中的子元素替代.比较灵活

    <properties>
        <property name="username" value="root"></property>
        <property name="password" value="123456"></property>
    </properties>    
    <dataSource type="POOLED">
      <property name="driver" value="${driver}"/>
      <property name="url" value="${url}"/>
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
    </dataSource>

可以通过resource和url来创建,当然也可以自己完全写里面的property
在这里插入图片描述
注意:
在创建SqlSessionFactory的时候,这里也能指定对应的
属性文件.
在这里插入图片描述
那么有从resource和url来的,也有properties元素体中的,也有这种作为方法参数传入的,那么使用时候该注意什么?

  • MyBatis将先从properties元素体内进行加载,再从resource和url进行加载,最后读取作为方法参数串第的属性.
  • 并覆盖已经读取的同名属性,即通过方法参数传递的属性具有最高优先级,resource/url次之,最低级是properties的子元素.
在使用占位符时,还可以指定默认值
如
<property name="username" value="${username : root}"/>
<!-- 如果属性 'username' 没有被配置,'username' 属性的值将为 'root' -->
但是这个要进行开启,并且 当你使用的变量名称和:有冲突时,可以修改默认的separator分隔符为其他字符.

在这里插入图片描述

二、Settings(设置)

这个有些多,可以查看官方文档 http://www.mybatis.org/mybatis-3/zh/configuration.html#settings

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、typeAliases(类型别名)

在xml配置中,有很多地方要使用到完全限定名,为了使代码看起来简洁,便有了类型别名.
例子:bean目录下的类user就使用成了User,
在后面使用的时候,比如设置查询的返回类型可以使用User直接替代,不用使用完全限定名
在这里插入图片描述也可以在类前面使用Alias注解
在这里插入图片描述
也可以对一个包名进行别名替代
在这里插入图片描述
这样在com.bean这个包下面的所有类,可以使用这些类的首字母小写来作为非限定类名作为它的别名.
如图com.bean下面有这三个类,它们的别名分别为
orders,user,user2.若有注解,则别名为其注解值在这里插入图片描述

四、environments环境配置

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">
            </transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
                <property name="username" value="root"></property>
                <property name="password" value="123456"></property>
            </dataSource>
        </environment>
    </environments>
  • 你可以在environments里面创建多个environment元素,以适应不同的环境,比如开发,测试.
    但是要指定default的是哪一个
  • transactionManager事务管理器
  • dataSource 有三种UNPOOLED/POOLED/JNDI 不适用连接池就使用第一种,使用连接池就使用第二种
driver – 这是 JDBC 驱动的 Java 类的完全限定名(并不是 JDBC 驱动中可能包含的数据源类)。
url – 这是数据库的 JDBC URL 地址。
username – 登录数据库的用户名。
password – 登录数据库的密码。
defaultTransactionIsolationLevel – 默认的连接事务隔离级别。
poolMaximumActiveConnections – 在任意时间可以存在的活动(也就是正在使用)连接数量,默认值:10
poolMaximumIdleConnections – 任意时间可能存在的空闲连接数。
poolMaximumCheckoutTime – 在被强制返回之前,池中连接被检出(checked out)时间,默认值:20000 毫秒(即 20 秒)
poolTimeToWait – 这是一个底层设置,如果获取连接花费了相当长的时间,连接池会打印状态日志并重新尝试
获取一个连接(避免在误配置的情况下一直安静的失败),默认值:20000 毫秒(即 20 秒)。
poolMaximumLocalBadConnectionTolerance – 这是一个关于坏连接容忍度的底层设置, 作用于每一个尝试从
缓存池获取连接的线程。 如果这个线程获取到的是一个坏的连接,那么这个数据源允许这个线程尝试重新
获取一个新的连接,但是这个重新尝试的次数不应该超过 poolMaximumIdleConnections 与 poolMaximumLocalBadConnectionTolerance 之和。 默认值:3 
poolPingQuery – 发送到数据库的侦测查询,用来检验连接是否正常工作并准备接受请求。
默认是“NO PING QUERY SET”,这会导致多数数据库驱动失败时带有一个恰当的错误消息。
poolPingEnabled – 是否启用侦测查询。若开启,需要设置 poolPingQuery属性
为一个可执行的 SQL 语句(最好是一个速度非常快的 SQL 语句),默认值:false。
poolPingConnectionsNotUsedFor – 配置 poolPingQuery 的频率。可以被设置为和数据库连接超时时间
一样,来避免不必要的侦测,默认值:0(即所有连接每一时刻都被侦测 — 当然仅当 poolPingEnabled 为 true 时适用

五、mappers映射器

现在要告诉MyBatis去哪里找到SQL映射语句了,有四种方式.
1.使用映射器接口类的完全限定类名

<mappers>
  <mapper class="com.dao.OrdersMapper"/>
  <mapper class="com.dao.UserMapper"/>
  <mapper class="com.dao.UserMapper2“>
</mappers>

2.如果接口比较多的话,就需要将他们放在一个包中,直接导入包名

将包内的映射器接口实现全部注册为映射器
<mappers>
  <package name="com.dao"/>
</mappers>

3.使用完全限定资源定位符(URL)
4.使用相对于类路径的资源引用

<mappers>
        <mapper resource="mapper/OrdersMapper.xml"></mapper>
        <mapper resource="mapper/UserMapper.xml"></mapper>
        <mapper resource="mapper/UserMapper2.xml"></mapper>
    </mappers>

但是前提你要创建一个根目录,命名为resources
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值