问题1,之配置数据源:
Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user ‘Admin’@‘localhost’ (using password: YES))
翻译:
错误查询数据库。原因:org.springframework.jdbc。无法获得JDBC连接;嵌套异常是org.apache.commons.dbcp.SQLNestedException:无法创建PoolableConnectionFactory(用户“Admin”@“localhost”访问被拒绝(使用密码:YES))
问题发现:Admin,是我的电脑名,想到为什么会读我的电脑名的名字
错误示例:
-
database.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8 username=root password=123456
-
applicationContext.xml
<!-- 导入数据源的配置信息 --> <context:property-placeholder location="classpath:database.properties"/> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <!-- 错误点在value使用${}中 --> <property name="driverClassName" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </bean>
解决方案:后来检查发现,在加载读取配置文件的标签中<context:property-placeholder location=“classpath:dataSource.properties” /> 少了一条属性system-properties-mode=“FALLBACK”,
系统默认为system-properties-mode=“ENVIRONMENT” 意思就是从系统环境中去读取,把电脑名当做mysql的用户名,修改之后,运行成功。
<context:property-placeholder location="classpath:db.properties" system-properties-mode="FALLBACK" />