Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate3、PostgreSQL 8.3和Java 5“没有合适的驱动程序”问题_Java_Hibernate_Postgresql - Fatal编程技术网

Hibernate3、PostgreSQL 8.3和Java 5“没有合适的驱动程序”问题

Hibernate3、PostgreSQL 8.3和Java 5“没有合适的驱动程序”问题,java,hibernate,postgresql,Java,Hibernate,Postgresql,有人知道这里发生了什么吗: 我在Mac OS X上通过fink数据库安装的PostgreSQL 8.3上运行hibernate 3.2.6。当我使用Java 6和JDBC 4驱动程序PostgreSQL-8.3-603.jdbc4时,安装工作正常。然而,我需要这些东西来处理Java5,因此JDBC3PostgreSQL-8.3-603.jdbc3。当我在类路径中更改jar并切换到Java 5时,我在eclipse中执行此操作,会出现以下错误: Exception in thread "main"

有人知道这里发生了什么吗:

我在Mac OS X上通过fink数据库安装的PostgreSQL 8.3上运行hibernate 3.2.6。当我使用Java 6和JDBC 4驱动程序PostgreSQL-8.3-603.jdbc4时,安装工作正常。然而,我需要这些东西来处理Java5,因此JDBC3PostgreSQL-8.3-603.jdbc3。当我在类路径中更改jar并切换到Java 5时,我在eclipse中执行此操作,会出现以下错误:

Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
<Rows clipped for readability>
Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:545)
    at java.sql.DriverManager.getConnection(DriverManager.java:140)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)

您是否注意到连接url不完整

<property name="connection.url">jdbc:postgresql:test</property>
相对于

<property name="connection.url">jdbc:postgresql://localhost/test</property>

您是否注意到连接url不完整

<property name="connection.url">jdbc:postgresql:test</property>
相对于

<property name="connection.url">jdbc:postgresql://localhost/test</property>

您说使用Java5,因此使用JDBC3PostgreSQL-8.3-603.jdbc3。也许这是一个错误的假设

这个问题让我很困惑。这似乎意味着对于Java1.5,您需要JDBC3,但还不是100%清楚。我不知道为什么JDBC4驱动程序不能与Java1.5一起使用,我们在Java1.5中使用DB2JDBC4驱动程序


您在Java 1.5中试用过JDBC4驱动程序吗?

您说可以使用Java 5,从而使用JDBC 3 postgresql-8.3-603.jdbc3。也许这是一个错误的假设

这个问题让我很困惑。这似乎意味着对于Java1.5,您需要JDBC3,但还不是100%清楚。我不知道为什么JDBC4驱动程序不能与Java1.5一起使用,我们在Java1.5中使用DB2JDBC4驱动程序


您用Java 1.5尝试过JDBC4驱动程序吗?

我没有看到您在Hibernate配置中指定驱动程序类。尝试添加以下内容:

<hibernate-configuration>
    <session-factory>
        .
        .
        <property name="connection.driver_class">org.postgresql.Driver</property>
        .
    </session-factory>
</hibernate-configuration>

我没有看到您在Hibernate配置中指定驱动程序类。尝试添加以下内容:

<hibernate-configuration>
    <session-factory>
        .
        .
        <property name="connection.driver_class">org.postgresql.Driver</property>
        .
    </session-factory>
</hibernate-configuration>

JDBC4的一个新特性是通过服务提供者机制自动加载。通过在jar文件中包含META-INF/services/java.sql.Driver文件,不再需要执行Class.forName。这只适用于1.6 JVM。

新的JDBC4特性之一是通过服务提供者机制自动加载。通过在jar文件中包含META-INF/services/java.sql.Driver文件,不再需要执行Class.forName。这只适用于1.6 JVM。

我遇到了同样的问题,使用servlet找不到suiteble驱动程序注册驱动程序的解决方案是:

Class driverClass = Class.forName("org.postgresql.Driver");
DriverManager.registerDriver((Driver) driverClass.newInstance());
在此处找到解决方案:


我遇到了同样的问题,使用servlet找不到suiteble驱动程序注册驱动程序的解决方案是:

Class driverClass = Class.forName("org.postgresql.Driver");
DriverManager.registerDriver((Driver) driverClass.newInstance());
在此处找到解决方案:


是的,我实际上有一个较长的版本,第一个相同的行为,适用于Java 6/JDBC4,而不适用于Java 5/JDBC3,我在某个地方看到了依赖默认值的较短形式,并将其保留在那里。我想我会把编辑改回原来的问题。是的,我实际上有一个较长的版本,第一个相同的行为,适用于Java 6/JDBC4,而不适用于Java 5/JDBC3。我看到了一个较短的形式,它依赖于默认值,并将其保留在那里。我想我会为这个问题修改回编辑。我已经修改了,但它不起作用。在您的例子中,用于DB2的JDBC4驱动程序可能是使用1.5或更早版本编译的。就PostgreSQL而言,它是用1.6编译的,因此1.5无法加载类。在您的例子中,用于DB2的JDBC4驱动程序可能是使用1.5或更早版本编译的。就PostgreSQL而言,它是用1.6编译的,因此1.5无法加载类。谢谢!成功了。不知何故,我复制了一个驱动程序类属性不存在的示例。由于它与JDBC4/Java6安装程序配合使用,我无法确定配置文件是否存在问题。谢谢!成功了。不知何故,我复制了一个驱动程序类属性不存在的示例。由于它与JDBC4/Java6安装程序配合使用,我无法确定配置文件是否存在问题。