Mybatis笔记三:全局配置文件

配置文件

看着这个配置文件,我们将对这个配置文件进行细致的讲解

<?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>

    <!-- 设置一个默认的连接环境信息 -->
    <environments default="mysql_developer">
        <environment id="mysql_developer">
            <!-- mybatis使用jdbc事务管理方式 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- mybatis使用连接池方式来获取连接 -->
            <dataSource type="POOLED">
                <!-- 配置与数据库交互的4个必要属性,不要直接写,单独写在一个配置文件中 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 加载映射文件-->
    <mappers>
        <mapper resource="config/Message.xml"/>
    </mappers>

</configuration>

dtd提示

我们的Mybatis配置文件头部是这样的,可以看到下面有一个dtd的约束

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

这个dtd约束的作用就是提示,你在引用了这个dtd约束之后,打Mybatis都是有提示的

properties标签(不怎么用)

可以在配置文件打出properties标签,这个是来引入外部配置文件的,他有两个属性

resource:引用类路径下的配置文件
url:引用网络路径或者磁盘路径下的文件

虽然这个标签不怎么使用,但是我还是要讲讲,我们现在就来写一个

<?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>

    <properties resource="config/DBconfig.properties"></properties>

    <!-- 设置一个默认的连接环境信息 -->
    <environments default="mysql_developer">
        <environment id="mysql_developer">
            <!-- mybatis使用jdbc事务管理方式 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- mybatis使用连接池方式来获取连接 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 加载映射文件-->
    <mappers>
        <mapper resource="config/Message.xml"/>
    </mappers>

</configuration>

看到没,我的resource属性写的是config文件夹下的DBconfig.properties,看看内容

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

可以看到,我们下面的Mybatis的连接,都使用的是${}的方式取出来的

这样,我们就实现了使用properties标签来加载外部配置文件的功能了

typeAliases

这个是起别名的,例如我们在Message.xml中的这个返回类型,类的全类名太长了

    <select id="getMsgById" parameterType="com.example.bean.Message"  resultType="com.example.bean.Message">
        select * from message where ID=#{ID}
    </select>

我们可以在Mybatis.xml中配置一个全局的别名

    <typeAliases>
        <!--  typeAlias:为某个Java类型起别名
              type:指定要起别名的类型全类名,默认的别名是最后一个单词的全小写,例如message
              alias:自己指定别名
        -->
        <typeAlias type="com.example.bean.Message" alias="messageTest"></typeAlias>
    </typeAliases>

然后Message.xml中的返回类型就写别名就可以了。注意,别名在调用的时候是不区分大小写的

自动把下划线换成驼峰命名

数据库是user_age,实体类里面是userAge,这样就无法对上数据,可以这样设置

    <settings>
        <!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典Java 属性名 aColumn 的类似映射。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
原文地址:https://www.cnblogs.com/yunquan/p/10491112.html