Spring整合 Hibernate通过JDBC操作数据库,连接数据库的四参数配置我通过引入外部配置文件(.properties)的方式,就连不上数据库了
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**&**;serverTimezone=UTC”,直接写的时候这样没有问题,但如果通过引入外部配置文件的形式,&就会导致时区出错连不上数据库,去掉这个后发现问题解决。
修改后的配置如下:
而这一句,如果你该配置文件中只配了一个会话工厂,则这一句有没有都可以,定义多个会话工厂的情况应该是要加上了,本人没有试验。
- jdbc基础 (二) 通过properties配置文件连接数据库
- jdbc基础 (二) 通过properties配置文件连接数据库
- Java之JDBC 通过加载properties文件来的两种方式来连接数据库
- Spring整合Hibernate开发 - 使用事务管理器操作数据库 - 主配置文件
- spring的xml配置文件中获取jdbc.properties乱码导致连接数据库失败
- spring与hibernate整合-使用properties文件分离数据库连接设置
- java把涉及的jdbc连接参数通过文件读取的方式获取(db.properties)
- spring与hibernate整合-使用properties文件分离数据库连接设置
- jdbc基础 (二) 通过properties配置文件连接数据库
- spring与hibernate整合-使用properties文件分离数据库连接设置
- jdbc基础 (二) 通过properties配置文件连接数据库
- 编码问题 关于hibernate jdbc数据库连接在xml配置与在properties文件配置的差异
- 通过JDBC配置文件操作数据库
- hibernate和spring整合时,把连接数据库的信息单独提出一个文件的方法
- Java_JDBC连接数据库_使用读取配置文件的方式
- 读取配置jdbc.properties文件连接数据库
- JDBC 通过从properties配置文件获取信息得到orcale数据库接口
- Spring配置文件中如何使用外部配置文件配置数据库连接
- 数据库连接资源文件配置(jdbc.properties)mysql&oracle
- 用jdbc.properties文件配置连接数据库+心得