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="username" 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。

原文:https://blog.csdn.net/kuohsing/article/details/39452849


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM