Spring配置jdbc.properties时数据库用户名设置名称要注意

来源:互联网 发布:小米电视3s 知乎 编辑:程序博客网 时间:2024/06/09 21:10

spring版本4.3.2,配置DataSource连接Oracle时出现一个奇怪的现象,用下面的配置方法可以直接连接数据库,对数据库进行操作,说明这些属性值没有问题。

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
  <property name="url" value="jdbc:oracle:thin:@192.168.32.128:1521:XXXX" />
  <property name="username" value="scott" />
  <property name="password" value="123456" />
 </bean>

然后用加载jdbc.properties属性文件的方式,同样的属性值会报如下的错误
================================================================================================
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${driverClassName}" />
  <property name="url" value="${url}" />
  <property name="username" value="${username}" />
  <property name="password" value="${password}" />
 </bean>
=================================================================================================
jdbc.properties文件如下
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.32.128:1521:XXXX
username=scott
password=123456
=================================================================================================
报错信息
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied)
================================我是分割线,开启苦逼找碴模式==========================================
================================宝宝心里苦,但是宝宝不说==============================================
最后发现了,因为自己想偷下懒,想少敲几个字母的缘故。
在jdbc.properties中username一定不要写成username,写成jdbc.username或者username1都行,总之要和username区分开,然后就可以愉快地连接数据库了。
password可以是password,但username不能是username。