ssm连接mysql引入外部配置文件username无法被正确解析

问题:
今天在整合SSM的时候,为了配置更加灵活,准备在外部写个db.properties来引入四大配置,如下

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

然后在内部引入这个文件

    <context:property-placeholder location="classpath:db.properties"/>

    <!--数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>

问题出现了,在没有外部资源引入的情况下,项目运行正常,但这样一番操作后,项目报如下错误

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user ‘é½�è��è��’@‘localhost’ (using password: YES)

一开始没有发现猫腻,换了无数次mysql的驱动版本,最后发现properties里面的username只需要换个名字即可,因为username=root,会被解析成电脑的账户名字(一串乱码,当时也很懵逼),真是坑啊,也怪我经验不足。

解决

db.username=root
<property name="username" value="${db.username}"/>

只需要换这一个即可。

posted @   JamieChyi  阅读(14)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示