您的位置:首页 > 编程语言 > Java开发

Spring整合 Hibernate通过JDBC操作数据库,连接数据库的四参数配置我通过引入外部配置文件(.properties)的方式,就连不上数据库了

2019-04-19 20:25 288 查看
Spring整合 Hibernate 通过JDBC操作数据库,这里的连接参数配置我通过引入外部配置文件的
方式,就连不上数据库了,把这里的${jdbc.classDriver}等四个EL表达式改成配置文件中实际的
值却能成功连上,报错如下:

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!

配置如下:

这里driverClass和jdbcUrl用的实际的值,而user和password用的引入外部文件参数的方式,也不行,当我把四个参数全部换成实际的值时,却能连上,真是神奇,后来有朋友跟我说这个是Eclipse本身的问题,解决不了,换了两三种引入外部配置文件的方式,也都不行。
但是我不愿意就这么放弃啊,于是搜了很多资料,但最终也只是部分解决了问题,当我尝试用如下的方法引入外部配置文件的时候,只要jdbcUrl用实际的值,问题竟然解决了:

测试了很多次,只要jdbcUrl一换成${}的方式取值,就报错。
听说用IDEA不会出这种问题,有办法解决的同学们欢迎留言,我也是个java小学生。

【注】
据传闻,如果在这里注入sessionFactory时,通过<property name=“sessionFactoryBeanName” value=sessionFactory"/>这种方式,然后通过<context:property-placeholder location=“classpath:db.properties”/>的方式引入外部属性文件,则不会报错,因为时间关系,还没有尝试,先做记录,有时间再试试。

【2019.06.06验证上述】
经验证后发现了问题,之前我的url一直用的是“jdbc:mysql://localhost:3306/ssm?useSSL=false**&amp**;serverTimezone=UTC”,直接写的时候这样没有问题,但如果通过引入外部配置文件的形式,&amp就会导致时区出错连不上数据库,去掉这个后发现问题解决。
修改后的配置如下:


而这一句,如果你该配置文件中只配了一个会话工厂,则这一句有没有都可以,定义多个会话工厂的情况应该是要加上了,本人没有试验。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: