Alguém sabe o que está acontecendo aqui:
Eu corro hibernate 3.2.6 contra um PostgreSQL 8.3 (instalado via Fink) do banco de dados no meu Mac OS X. A configuração funciona bem quando eu usar Java 6 eo driver JDBC 4 (postgresql-8.3-603.jdbc4). No entanto, eu preciso este material para trabalhar com Java 5 e (portanto) JDBC 3 (postgresql-8.3-603.jdbc3). Quando eu mudar o jar no classpath e alterne para Java 5 (eu faço isso no eclipse), eu recebo o seguinte erro:
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)
Qual é o problema aqui? Eu não consigo ver. Aqui está a minha configuração de hibernação:
<hibernate-configuration>
<session-factory>
<property name=connection.url>jdbc:postgresql:test</property>
<property name=connection.username>postgres</property>
<property name=connection.password>p</property>
<property name=connection.pool_size>1</property>
<property name=dialect>org.hibernate.dialect.PostgreSQLDialect</property>
<property name=current_session_context_class>thread</property>
<property name=show_sql>true</property>
<mapping resource=com/mydomain/MyClass.hbm.xml/>
</session-factory>
</hibernate-configuration>
EDIT: A forma usual mais longa, mais do URL conexão: jdbc: postgresql: // localhost / teste tem o mesmo comportamento exato.
O frasco motorista é definitivamente no classpath, e eu também não conseguem obter quaisquer erros com este código de teste JDBC direta:
public static void main(String[] args) throws Exception {
Class.forName(org.postgresql.Driver);
Connection con=DriverManager.getConnection(jdbc:postgresql://localhost/test,postgres, p);
}













