Mybatis属性配置示例(properties)

发布时间 2023-07-20 23:14:42作者: 遥遥领先

属性(properties)
这些属性可以在外部进行配置,并可以进行动态替换。既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。
参考官网:https://mybatis.net.cn/configuration.html#properties

首先创建数据库配置文件db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123

然后在mybatis配置文件中加入properties标签,引入上述配置文件(其中变量以${}包裹,且如果配置文件中的属性和properties标签中的属性存在冲突,mybatis优先读取配置文件中的属性值):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties" />

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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 class="com.wcj.dao.UserMapper" />
    </mappers>
</configuration>

image

最后使用Junit测试访问:

    @Test
    public void test_getUser() {
        SqlSession connect = MybatisUtil.getConnect();
        UserMapper mapper = connect.getMapper(UserMapper.class);
        List<User> users = mapper.getUser();

        for (User user : users) {
            System.out.println(user);
        }
        connect.close();
    }

image