【问题标题】:ERROR: No suitable driver found for jdbc:oracle:thin:@localhost:1521:xe [duplicate]错误:找不到适合 jdbc:oracle:thin:@localhost:1521:xe 的驱动程序 [重复]
【发布时间】: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!");
    }

}

}

请帮助我理解代码有什么问题?

【问题讨论】:

标签: java oracle hibernate jdbc


【解决方案1】:

从代码看起来没有错,但我认为在您的应用程序服务器中找不到您的 odbc.jar。您能说出您使用的是哪个服务器吗?

【讨论】:

    【解决方案2】:

    您需要下载 Oracle's JDBC driver 并将其添加到您的 CLASSPATH 环境变量中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2017-05-12
      • 1970-01-01
      相关资源
      最近更新 更多