【发布时间】:2016-11-12 13:05:23
【问题描述】:
我知道当构建路径中没有配置正确的 jdbc 驱动程序 jar 时会出现此问题,我尝试为 postgres 添加一些 jdbc jar,但我遇到了这个问题。请找到我尝试过的以下罐子。
使用
- postgres: 1.16.1
- Eclipse 版本: Indigo Service Release 2
- Java 版本: 8
我试过的罐子
- postgresql-9.4.1208.jre6
- postgresql-connector-jdbc4.jar
- postgresql-jdbc.jar
- postgresql-9.3-1103.jdbc3
- postgresql-9.2-1003-jdbc4-sources.jar
- pg73jdbc3
- jdbc7.1-1.1
阅读其他关于堆栈溢出的帖子,我什至尝试将系统环境变量设置如下..
- 用户变量 - 管理员 - 类路径
C:\Program Files\PostgreSQL\9.2\lib
- 系统变量 - 路径
C:\Program Files\PostgreSQL\9.2\bin
不确定是否需要这样做
我的 .properties 文件中的数据库详细信息设置
jdbc.driverClassName=org.postgresql.Driver
jdbc.url=postgresql://localhost:5432/postgres
jdbc.username=admin
jdbc.password=admin
使用基于 spring 框架的应用程序
日志:
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: No suitable driver found for postgresql://localhost:5432/postgres
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:240)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy8.getCollegeDetails(Unknown Source)
at com.cts.bo.HESBO.registerCourse(HESBO.java:42)
at com.cts.facade.HESFacade.registerCourse(HESFacade.java:34)
at com.cts.manager.HESManager.registerCourse(HESManager.java:34)
at com.cts.presentation.Tester.registerCourse(Tester.java:66)
at com.cts.presentation.Tester.main(Tester.java:159)
Caused by: java.sql.SQLException: No suitable driver found for postgresql://localhost:5432/postgres
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:202)
... 11 more
请指导一下需要做什么。谢谢
【问题讨论】:
-
您的数据库 JDBC URL 错误,应该以
"jdbc:postgresql:"开头,而不仅仅是"postgresql:" -
@MarkRotteveel 我不确定应该在哪里进行更改,是否应该更改 .properties 文件中的配置? jdbc.url=postgresql://localhost:5432/postgres 到 jdbc.url=jdbc:postgresql://localhost:5432/postgres。我仍然面临同样的问题.... :(
-
@MarkRotteveel 非常感谢!它现在工作正常......
标签: java eclipse postgresql jdbc