Access denied for user 'XXX'@'localhost' (using password: YES)

发现问题

在做spring引入jdbc.properties的时候,属性值引入不到spring中。

以下是jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username=root
password=123456

以下是引入信息

	<!--配置整合mybatis过程 1.配置数据库相关参数 -->
	<context:property-placeholder location="classpath:jdbc.properties" />

	<!--2.数据库连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!--配置连接池属性 -->
		<property name="driverClass" value="${driver}" />

		<!-- 基本属性 url、user、password -->
		<property name="jdbcUrl" value="${url}" />
		<property name="user" value="${username}" />
		<property name="password" value="${password}" />

		<!--c3p0私有属性 -->
		<property name="maxPoolSize" value="30" />
		<property name="minPoolSize" value="10" />
		<!--关闭连接后不自动commit -->
		<property name="autoCommitOnClose" value="false" />
		<!--获取连接超时时间 -->
		<property name="checkoutTimeout" value="1000" />
		<!--当获取连接失败重试次数 -->
		<property name="acquireRetryAttempts" value="2" />
	</bean>

分析并解决问题

1.用了${username}之后它好像会取当前计算机用户名来连数据库,将username改成name解决

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
name=root
password=123456

2.context:property-placeholder默认取的是系统文件,设置属性不从系统文件中取

<context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"/>

猜你喜欢

转载自my.oschina.net/kimisme/blog/1630227