我在尝试连接到oracle数据库时遇到以下错误, 当我在网上搜索时,建议是在类路径上添加所需的jar,我已经这样做了。我甚至尝试创建一个运行配置,在类路径上添加jar,仍然得到相同的错误。
请帮忙,
错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:262)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.example.DAO1.main(DAO1.java:13)
代码:
package com.example;
import java.sql.*;
import java.io.*;
class DAO1 {
public static void main(String args[]) throws SQLException, IOException {
// Load the driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Connect to the database
// You can put a database name after the @ sign in the connection URL.
Connection conn = DriverManager.getConnection(
"jdbc:oracle:oci8:@mydevdb:1521:mysandbox", "uname", "pwd");
System.out.println(conn);
// Close the connection
conn.close();
}
}
我添加了ojdbc14.jar
答案 0 :(得分:5)
您需要JDBC瘦驱动程序,它是100%Java,而不是OCI驱动程序。这需要一个DLL,JVM告诉你的不是LD_LIBRARY_PATH。
将网址更改为
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@mydevdb:1521:mysandbox", "uname", "pwd");
我也不喜欢你的司机JAR。我建议至少得到ojdbc6.jar。 ojdbc14.jar是JDK 1.4复古 - 过时了。
答案 1 :(得分:1)
切勿手动调用DriverManager.registerDriver()
方法。 JDBC规范要求驱动程序在加载类时注册自己,并通过Class.forName()
加载类。在JDBC 4
中,驱动程序只能通过类路径自动加载。