Я получаю ошибку ниже при попытке подключиться к базе данных оракула. Когда я просматриваю в Интернете, советую добавить требуемую банку в путь к классам, который я уже сделал. Я даже попытался создать конфигурацию запуска, добавил jar в classpath, все еще получая ту же ошибку.
Пожалуйста помоги,
Ошибка:
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
Вам нужен тонкий драйвер JDBC, который является 100% Java, а не драйвером OCI. Для этого требуется DLL, о которой JVM говорит вам, нет в LD_LIBRARY_PATH.
Измените URL-адрес на
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@mydevdb:1521:mysandbox", "uname", "pwd");
Мне не нравятся ваши JAR-драйверы. Я бы рекомендовал получить ojdbc6.jar как минимум. Ojdbc14.jar - это старинный JDK 1.4 - устаревший.
Никогда не DriverManager.registerDriver()
метод DriverManager.registerDriver()
вручную. Спецификация JDBC требует, чтобы драйвер регистрировался при загрузке класса, а класс загружался через Class.forName()
. В JDBC 4
драйверы могут быть загружены автоматически, просто находясь на пути к классу.