0

// DbConnector.java

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class DbConnector {

    public static void main(String[] argv) {

        System.out.println("-------- Oracle JDBC Connection Testing ------");

        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:@172.17.119.108:1526:GESSDEV", "username",
                    "password");

        } 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!");
        }
    }

}

我有一个名为 odbc14.jar 的 jdbc jar

javac -classpath odbc14.jar;数据库连接器.java

编译成功

java -classpath odbc14.jar; 数据库连接器

OUTPUT :: -------- Oracle JDBC 连接测试 ------ 您的 Oracle JDBC 驱动程序在哪里?

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at DbConnector.main(DbConnector.java:13)

请帮我解决这个问题

上面的问题我已经解决了。现在我得到了新的例外

-------- Oracle JDBC 连接测试 ------ Oracle JDBC 驱动注册!连接失败!检查输出控制台

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
4

5 回答 5

6

使用的JDBC驱动程序ojdbc14.jaroracle.jdbc.OracleDriver.

请参阅:加载 JDBC 驱动程序类 - ojdbc14.jar

于 2013-02-08T10:49:18.513 回答
1

将您的ojdbc14.jarin<jdk_home>\jre\lib\ext和 ADD 放入CLASSPATH变量中,然后您不必在编译或运行时指定类路径
如果您使用的oracle.jdbc.driver.OracleDriver是 java6,那么可以,但它已被弃用。所以最好使用oracle.jdbc.OracleDriver

于 2013-02-08T10:51:10.827 回答
1

只需将 odbc14.jar 这个 JAR 放在所需的 JRE 路径中,例如“C:\Program Files\Java\jdk1.7.0_65\jre\lib\ext”。

这应该可以解决您的问题。

于 2015-06-30T15:20:30.793 回答
0

你应该

 try {

            Class.forName("oracle.jdbc.OracleDriver");

        }

并放置odbc14.jar类路径(如果尚未完成)

于 2013-02-08T10:53:19.903 回答
0

只有您需要放入作为您的类路径的appsclassloader。我不确定,为什么我们需要放入 jre/lib/ext

于 2014-04-23T20:54:01.130 回答