【踩坑系列】sm整合,配置dataSource时value=“${username}“获取的是系统用户名

第一次写ssm整合demo,最后测试的时候死活连接不上数据库,查看错误信息时发现:
Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'Alchemist'@'localhost' (using password: YES)
这…用户名怎么是我windows的用户名啊?应该是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>

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
username=root
password=root

db.properties在mybatis的全局配置文件中使用正常,用${username}可以取到正确的值root,所以在配置dataSource的时候也直接使用了这个文件没有改动。问题发生后我将username改为username1,问题解决。只要避免出现${username}即可。后续我以“${username}取到了系统用户名”为关键词才查找到类似错误的解决方案,普遍是添加前缀,如jdbc.username,原理相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值