org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Access denied for user ‘XXX’@‘localhost’ (using password: YES)
使用jdbc.properties配置文件出现上述异常大概就是以下原因:
错误的获取
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for_第1张图片
错误的配置文件
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for_第2张图片
正确获取
应该加上jdbc. 前缀
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for_第3张图片
正确的配置文件
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for_第4张图片
总结:
properties中添加jdbc前缀是为了避免和关键词冲突。比如配置为username时查找的是当前系统用户名称,如“ASUS”
打开spring-framework-4.0.2.RELEASE-dist\spring-framework-4.0.2.RELEASE\docs\spring-framework-reference\htmlsingle\index.html,搜索 “${” 来到这里:
可以看到官方文档不是直接写username的,他知道会出问题所以在配置文件中才写成jdbc.username。文档上说了,是它检查了其他文件里的东西。可是我不明白我明明指明了jdbc.properties文件了,而且它也找到了,为什么就这个username它要换掉呢。

所以:
jdbc.properties文件中要写成
jdbc.username=root
spring配置文件里引用的时候写成${jdbc.username}。
其他属性最好也带上前缀。

你可能感兴趣的:(jdbc,java,mybatis,mysql,maven)