错误:java.sql.SQLException: Access denied for user 'xxx'@'localhost' (using password: YES)
原因是在spring_config.xml中使用阿里的连接池时,不能直接使用${username}这个命名,它会采用当前系统的账户名。
<context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean>
应该采用其他命名传入${jdbc.username}
<context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${password}" /> </bean>
对应的jdbc.propertities
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/gxa
jdbc.username=root
password=123456
同时需要注意的是使用阿里连接池时,property name="driverClassName" 必须采用这种命名,不然也会报错。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步