【发布时间】:2018-05-23 17:34:03
【问题描述】:
这是我在 Hibernate 中的第一个试用应用程序 我收到以下错误
错误:找不到适合 jdbc:oracle:thin:@localhost:1521:xe 的驱动程序 线程“主”org.hibernate.exception.JDBCConnectionException 中的异常:无法打开连接 在 org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131) 在 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) 在 org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:304) 在 org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) 在 org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67) 在 org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) 在 org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1363) 在 com.model.HibernetTest.main(HibernetTest.java:24) 原因:java.sql.SQLException:没有为 jdbc:oracle:thin:@localhost:1521:xe 找到合适的驱动程序 在 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:703) 在 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190) 在 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192) 在 org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278) 在 org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) ... 5 更多
这是我的 hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="hibernate.connection.username">sample</property>
<property name="hinernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="show_sql">true</property>
<mapping class="com.model.Student" resource="com/model/Student.hbm.xml" />
</session-factory>
我已经在我的类路径中添加了 odbc jar,但我仍然收到错误提示找不到驱动程序。我尝试了以下 JDBC 连接类,效果很好。
public class OracleJDBCExample {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your Oracle JDBC Driver?");
e.printStackTrace();
return;
}
System.out.println("Oracle JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "sample", "root");
PreparedStatement ps=connection.prepareStatement("select * from Employee");
System.out.println("*******");
ResultSet rs=ps.executeQuery();
System.out.println("--->"+rs.toString());
if(rs.next()) {
System.out.println("---> "+rs.getString(1));
}
rs.close();
ps.close();
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;
}
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
}
}
请帮助我理解代码有什么问题?
【问题讨论】:
-
@Pops 对stackoverflow.com/questions/1054105/… 的回答可能会有所帮助。
标签: java oracle hibernate jdbc