微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Could not get JDBC Connection异常问题

此异常发生在整合SSM过程中.

数据库的properties文件用户名的关键词写成了username, 导致报错无法连接

db.properties文件如下:

driver=com.MysqL.cj.jdbc.Driver
url=jdbc:MysqL:///how2java?serverTimezone=GMT
username=root
password=admin

配置文件如下

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${username}"/>
        <property name="password" value="${password}"/>
</bean>

异常情况如下:

### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.sqlException: Connections Could not be acquired from the underlying database!
### The error may exist in file [C:\Users\Tongc\IdeaProjects\ssm_myself\target\classes\mapper\CategoryMapper.xml]
### The error may involve com.cugb.mapper.CategoryMapper.get
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.sqlException: Connections Could not be acquired from the underlying database!

通过网上查找得知: 感谢下面的大佬

当出现上面的Exception,而且spring的配置文件如上面两个文件所示时,无法连接数据库的原因在于

<property name="username" value="${username}" /> 这一行因为此时${username}的值并不是jdbc.properties文件中的username值,而是JVM系统环境变量的username。spring容器在管理PropertySource时,不光读取自己写的properties文件,spring也会把JVM system properties和JVM system env properties都读取到容器中,所以请不要使用和JVM properties相同的key。
---------------------
作者:kuohsing
来源:CSDN
原文:https://blog.csdn.net/kuohsing/article/details/39452849

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐