db.properties踩坑

项目场景:

细心!细心!细心!


问题描述

今天在重写项目的时候遇到一件非常愚蠢至极的错误,故事是这样的,编写全局配置文件sqlMapConfig.xml第一种写法完美运行。

<?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="development">
            <!--使用JDBC事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC"/>
            <!--连接池配置,type为POOLED采用连接池-->
            <dataSource type="POOLED">
                <!--数据库连接信息-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="hellomysql6B"/>
            </dataSource>
        </environment>
    </environments>

    <!--包含mapper.xml配置文件-->
    <mappers>
        <mapper resource="mapper/ProductMapper.xml"/>
    </mappers>
</configuration>

当我将数据库连接配置信息独立出来创建db.properties配置文件时,我自信的使用了cv大法,复制完之后时这样的,细心的朋友可能已经发现问题了。

db.properties:

jdbc.driver = "com.mysql.cj.jdbc.Driver"
jdbc.url = "jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"
jdbc.username = "root"
jdbc.password = "hellomysql6B"

sqlMapConfig.xml

<?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="db.properties"/>

    <!--数据库配置,default表示默认采用哪一个数据库环境-->
    <environments default="development">
        <!--开发环境数据库-->
        <environment id="development">
            <!--使用JDBC事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC"/>
            <!--连接池配置,type为POOLED采用连接池-->
            <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="mapper/ProductMapper.xml"/>
    </mappers>
</configuration>

原因分析:

此时我去运行测试类,报错信息:(这里只截取造成报错的原因,其它无关紧要的东西不再展示)发现它说我们加载不到数据库的驱动!!!问题来了,到底是哪里的原因?


解决方案:

找了一圈,设置开始怀疑自己数据库驱动版本除了问题,当我打开db.properties时我恍然大悟,痛!太痛了!!!

修改后的db.properties(与之前的对比看看有什么不同)没错,原来的配置文件多了引号

jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
jdbc.username = root
jdbc.password = hellomysql6B

注意:属性值不用加引号,因为我们 sqlMapConfig.xml 里已经添加了引号,属性相关的只能换行不能空格

补充:当我们再使用mysql8.x及以上版本时需要在url里面添加时区,不然有的情况下也会报错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值