4、Mybatis核心配置文件详解
阅读原文时间:2023年08月21日阅读:1
<!--
    environments标签:配置多个连接数据库的环境
    default属性:设置默认使用的环境的id
-->
<environments default="development">
    <!--
        environment标签:设置某个具体的连接数据库的环境
        id属性:表示环境的唯一标识,不能重复
    -->
    <environment id="development">
        <!--
            transactionManager标签:设置事务管理器
            type属性:设置事务管理方式
            type="JDBC|MANAGED"
                JDBC:表示使用的是JDBC中原生的事务管理方式,事务的提交或回滚需要手动处理,或手动开启自动提交或回滚事务
                MANAGED:被管理,例如Spring
        -->
        <transactionManager type="JDBC"/>
        <!--
            dataSource标签:配置数据源
            type属性:设置数据源的类型
            type="POOLED|UNPOOLED|JNDI"
                POOLED:表示使用数据库连接池缓存数据库连接
                UNPOOLED:表示不使用数据库连接池
                JNDI:表示使用上下文中的数据源,了解即可
        -->
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
    </environment>

    <environment id="test">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </dataSource>
    </environment>
</environments>

4.2.1、创建properties文件

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

4.2.2、设置键值对

注意:键名应该带有前缀,以避免命名冲突

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

4.2.3、引入properties文件

    <!--引入properties文件,当前文件就可以通过${key}访问对应的value-->
    <properties resource="jdbc.properties"/>

4.2.4、使用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>

4.3、typeAliases

4.3.1、设置类型别名

注意:别名不区分大小写

    <!--
        typeAliases标签:设置类型的别名,在Mybatis范围中可以使用别名表示实际的类型
    -->
    <typeAliases>
        <!--
            typeAlias标签:设置某个类型的别名
            type属性:设置需要别名的类型
            alias属性:设置类型的别名
        -->
        <typeAlias type="org.rain.mybatis.pojo.User" alias="abc"/>
    </typeAliases>

4.3.2、使用类型别名

    <!--List<User> getAllUser();-->
    <select id="getAllUser" resultType="abc">
        select * from t_user
    </select>

4.3.3、设置并使用类型默认别名

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

如果typeAlias标签没有设置alias属性,那类名就是默认的别名

4.3.4、通过包设置多个类型默认别名

一般会通过实体类包,为所有实体类设置默认别名

    <typeAliases>
        <package name="org.rain.mybatis.pojo"/>
    </typeAliases>

4.4.1、创建路径一致的映射文件目录

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

注意:目录分隔符是“/”,而不是“.”。

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

将映射文件放到该目录下

4.4.2、通过包引入多个映射文件

    <!--引入mybatis的映射文件-->
    <mappers>
        <!--<mapper resource="mappers/UserMapper.XML"/>-->
        <!--
            通过包引入映射文件,必须满足两个条件:
                1、mapper接口和映射文件所在的包必须一致
                2、mapper接口的名字和映射文件的名字必须一致
        -->
        <package name="org.rain.mybatis.mapper"/>
    </mappers>

4.4.3、其他注意事项

注意:通过包的方式引用映射文件,可能由于缓存问题而导致执行报错,此时可以通过rebuild相应的项目来解决

+++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++

注意:在实际的输出工程中,映射文件和mapper接口会被加载到同一个目录