错误:找不到适合 jdbc:oracle:thin:@localhost:1521:xe 的驱动程序
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/47731850/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ERROR: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe
提问by Tushar Thakur
This is my first trial application in Hibernate I am getting following error
这是我在 Hibernate 中的第一个试用应用程序我收到以下错误
ERROR: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Could not open connection at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:304) at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67) at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1363) at com.model.HibernetTest.main(HibernetTest.java:24) Caused by: java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:703) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190) at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192) at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278) at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) ... 5 more
错误:找不到适用于 jdbc:oracle:thin:@localhost:1521:xe 的驱动程序 线程“main”org.hibernate.exception.JDBCConnectionException 中的异常:无法在 org.hibernate.exception.internal.SQLStateConversionDelegate.convert( SQLStateConversionDelegate.java:131) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at 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) at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) at org.hibernate.internal.SessionImpl.beginTransaction( SessionImpl.java:1363) 在 com.model.HibernetTest.main(HibernetTest.java:24) 引起:java.sql.SQLException:在 java 上找不到适用于 jdbc:oracle:thin:@localhost:1521:xe 的驱动程序。 sql/java.sql.DriverManager.getConnection(DriverManager.java:703) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190) at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl。 getConnection(DriverManagerConnectionProviderImpl.java:192) 在 org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess。在 org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) 处获取Connection(AbstractSessionImpl.java:278) ... 5 更多
Here is my hibernate.cfg.xml
这是我的 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>
I have added odbc jar in my classpath but still I am getting error saying Driver not found. I tried following JDBC connection class and it works great.
我在类路径中添加了 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!");
}
}
}
}
Please help me understand what is wrong with the code?
请帮我理解代码有什么问题?
回答by мalay мeнтa
As looks by code is nothing wrong but your odbc.jaris not found in your application server as i think. Can you tell which server you are using?
代码看起来没什么问题,但我认为在您的应用程序服务器中找不到您的odbc.jar。你能告诉你使用的是哪个服务器吗?
回答by Younes El-karama
You need to download the Oracle's JDBC driverand add it to your CLASSPATH env variable
您需要下载Oracle 的 JDBC 驱动程序并将其添加到您的 CLASSPATH 环境变量中