Error setting driver on UnpooledDataSource

当在Mybatis的Configuration.xml中使用properties属性定义数据源时,可能会遇到${jdbc.driver}无法获取properties文件中的值,导致启动报错。解决方法是将数据库连接参数单独配置在properties文件中,并在全局配置文件中引用。此外,Mybatis加载属性的顺序会影响属性值的读取,建议所有属性值定义在properties文件中,以方便管理和避免冲突。

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

Mybatis Configuration.xml中properties属性定义
数据源配置取不到配置文件属性值

<?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>
    <!--数据库配置,default表示默认采用哪一个数据库环境-->
    <environments default="development">
        <!--生产环境数据库-->
        <environment id="product">
            <!--使用JDBC事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC"/>
            <!--连接池配置,type为POOLED采用连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=TRUE"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
        <!--开发环境数据库-->
        <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 resource="mapper/hotel.mapper.xml"/>
    </mappers>
</configuration>

此时,启动会报异常

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值