(3)MyBatis框架详解----核心配置文件详解

本文详细介绍了MyBatis框架核心配置文件,包括其约束、属性、设置、类型别名、类型转换器和映射器等内容。说明了属性加载顺序,如方法参数传递的属性优先级最高。还提及设置可影响运行行为,类型别名可减少类名冗余等关键信息。

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

1.MyBatis框架核心配置文件

MyBatis核心配置文件约束

1)框架核心MyBatis-config.xml配置的内容和顺序(文件名可以自己定义,这里MyBatis-config.xml)

      官网链接:http://www.mybatis.org/mybatis-3/zh/configuration.html#properties

2)属性(properties)属性都是可外部配置且可动态替换的

(1)在property定义name value,其他地方引用

<configuration>
    <properties>
        <property name="name" value="root"/>
        <property name="word" value="123456"/>
    </properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
                <property name="username" value="${name}"/>
                <property name="password" value="${word}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/czh/mapper/User.xml"/>
    </mappers>
</configuration>

 (2)properties标签中resource属性引入properties文件属性,其他地方引用

    新建properties.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.password=123456

               properties标签resource属性引入

<configuration>
    <properties resource="properties.properties"></properties>
    <environments default="development">
        <environment id="development">
            <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 resource="com/czh/mapper/User.xml"/>
    </mappers>
</configuration>

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

2)设置(settings)mybatis全局配置参数,全局参数将会影响mybatis的运行行为。比如:开启二级缓存、开启延迟加载

https://i-blog.csdnimg.cn/blog_migrate/ef8e130af481028ca37e818db0acd833.png

3)类型别名(typeAliases)类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余

(1)直接在typeAlias标签指定别名

<typeAliases>
        <typeAlias alias="user" type="com.czh.entity.User"/>
</typeAliases>

(2)package标签指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean

<typeAliases>
        <package name="com.czh.entity"/>
</typeAliases>

可以通过@Alias指定别名,如果没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名,比如

com.czh.entity.User的别名user
@Alias("user")
public class User {
    private Integer id;//自增id
    private String name;//姓名
    private String sex;//性别
    private Integer age;//年龄
}

4)typeHandlers 类型转换器      每当MyBatis 设置参数到PreparedStatement 或者从ResultSet 结果集中取得值时,就会使用TypeHandler 来处理数据库类型与java 类型之间转换。下表描述了默认TypeHandlers

5) mappers 映射器  mappers标签是MyBatis框架提供的SQL映射文件的加载器,用于指定项目中SQL映射文件的位置

<!-- 使用相对于类路径的资源引用 -->
<mappers>
    <mapper resource="com.czh.mapper.User.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///D:/mybatis/com/czh/mapper/User.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="com.czh.mapper.User"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="com.czh.mapper"/>
</mappers>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值