Mit der kontinuierlichen Vertiefung der Unternehmensinformatisierung wird die Verwendung von Datenbanken immer weiter verbreitet und die Anwendung gespeicherter Prozeduren wird immer häufiger. Die Oracle-Datenbank hat bei der Implementierung und Optimierung gespeicherter Prozeduren hervorragende Arbeit geleistet, aber manchmal ist es notwendig, Java-Programme in gespeicherten Prozeduren aufzurufen, um bestimmte Anforderungen zu erfüllen. In diesem Artikel werden die Implementierungsprinzipien, Methoden und Fälle des Aufrufs gespeicherter Prozeduren in Java analysiert und erläutert.
1. Implementierungsprinzip des Aufrufs einer gespeicherten Prozedur in Java
Eine gespeicherte Prozedur ist ein vorkompiliertes Datenbankobjekt. Sie kann als auf Datenbankebene geschriebenes Skript betrachtet werden und kann komplexe Geschäftslogik implementieren. Gespeicherte Prozeduren können andere gespeicherte Prozeduren oder Funktionen aufrufen, aber sie können Java-Programme nicht direkt aufrufen. Wenn Sie ein Java-Programm in einer gespeicherten Prozedur aufrufen müssen, müssen Sie den erweiterten Sprachmechanismus der Datenbank verwenden, um dies zu erreichen, indem Sie eine gespeicherte Java-Prozedur erstellen.
Die gespeicherte Java-Prozedur ist im Wesentlichen ein Java-Programm, das über JDBC (Java Database Connectivity) eine Verbindung zur Oracle-Datenbank herstellt, um mit der Datenbank zu interagieren. Das Erstellen einer gespeicherten Java-Prozedur in einer Oracle-Datenbank erfordert die folgenden Schritte:
1. Erstellen Sie eine Java-Klasse.
Sie müssen eine Klasse in Java schreiben, um auf die Datenbank zuzugreifen und sie zu betreiben. Diese Klasse muss die spezifische Schnittstelle der Oracle-Datenbank implementieren, nämlich „oracle.jdbc.OracleCallableStatement“.
2. Kompilieren Sie Java-Klassen in Java-Bytecode-Dateien.
Kompilieren Sie die geschriebenen Java-Klassen in Java-Bytecode-Dateien (.class-Dateien). Sie können den Javac-Compiler oder andere Java-IDEs verwenden.
3. Speichern Sie Java-Bytecode-Dateien in der Oracle-Datenbank.
Verwenden Sie das mit dem JDK gelieferte Tool „loadjava“, um die Java-Bytecode-Dateien wie folgt in die Oracle-Datenbank hochzuladen :
loadjava -Benutzer Benutzername/Passwort@Datenbank -verbose Klassendatei
Unter diesen ist Klassendatei der vollständige Pfad der Java-Bytecode-Datei.
4. Erstellen Sie gespeicherte Java-Prozeduren in der Oracle-Datenbank.
Um gespeicherte Java-Prozeduren in der Oracle-Datenbank zu erstellen, können Sie Tools wie PL/SQL oder SQL Developer verwenden. Die Syntax zum Erstellen einer gespeicherten Java-Prozedur lautet wie folgt:
PROZEDUR ERSTELLEN ODER ERSETZEN Prozedurname
AS LANGUAGE JAVA
NAME 'Java_Klassenname.Methodenname()';
wobei Prozedurname der Name der gespeicherten Prozedur ist; Java_Klassenname ist der Name von die Java-Klasse; method_name ist Java Der Name der Methode in der Klasse.
2. So rufen Sie Java aus einer gespeicherten Prozedur auf
1. Verwenden Sie JDBC, um eine Verbindung herzustellen. In einer gespeicherten Java-Prozedur können Sie JDBC verwenden, um eine Verbindung zur Oracle-Datenbank herzustellen, um mit der Datenbank zu interagieren. In Java können Sie den folgenden Code verwenden, um die JDBC-Verbindung abzurufen:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost: 1521: ORACLE“, „Benutzername“, „Passwort“);
Unter diesen ist „oracle.jdbc.driver.OracleDriver“ der JDBC-Treiber der Oracle-Datenbank, der in den Code geladen werden muss; „jdbc:oracle :thin:@ „localhost:1521:ORACLE“ ist die URL der Datenbankverbindung; „username“ und „password“ sind der Benutzername und das Passwort der Datenbank.
2. Java-Methoden aufrufen
In gespeicherten Java-Prozeduren können Sie Methoden in Java-Klassen direkt aufrufen. Sie können den folgenden Code verwenden, um die Methode in der Java-Klasse aufzurufen:
String result = Java_class_name.method_name();
wobei „Java_class_name“ der Name der Java-Klasse und „method_name“ der Methodenname in Java ist Klasse, „result“ ist der Rückgabewert der Methode.
3. Parameter in gespeicherten Prozeduren übergeben
In gespeicherten Java-Prozeduren können Parameter über die Parameter der gespeicherten Prozedur an Java-Methoden übergeben werden. Sie können den folgenden Code verwenden, um die Parameter der gespeicherten Prozedur abzurufen:
CallableStatement cs = null;
cs = (OracleCallableStatement)conn.prepareCall("{call procedure_name(?, ?, ?)}");cs. registerOutParameter(1, OracleTypes.VARCHAR);
cs.setString(2, param1);
cs.setString(3, param2);
cs.executeUpdate();
String result = cs.getString(1);
where , „cs“ ist das Objekt der gespeicherten Prozedur, „prozedurname“ ist der Name der gespeicherten Prozedur, „param1“ und „param2“ sind die Parameter der gespeicherten Prozedur und „result“ ist der Rückgabewert der Methode.
3. Fall einer gespeicherten Prozedur, die Java aufruft
Das Folgende ist ein Fall der Verwendung einer gespeicherten Java-Prozedur, um eine einfache Abfrage von Benutzerinformationen zu implementieren.
1. Erstellen Sie eine Java-Klasse
Erstellen Sie eine Klasse in Java, um die Methode zum Abfragen von Benutzerinformationen basierend auf der Benutzer-ID zu implementieren. Der Code lautet wie folgt:
public class UserInfo {
public static String getUserInfo(String userid) { String result = ""; Connection conn = null; PreparedStatement ps = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORACLE", "username", "password"); String sql = "SELECT * FROM userinfo WHERE userid = ?"; ps = conn.prepareStatement(sql.toString()); ps.setString(1, userid); ResultSet rs = ps.executeQuery(); while (rs.next()) { result += rs.getString("userid") + "\t"; result += rs.getString("username") + "\t"; result += rs.getString("age") + "\t"; result += rs.getString("sex") + "\n"; } rs.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } return result; }
}
2. Kompilieren Sie Java-Klassen
Kompilieren Sie die geschriebenen Java-Klassen in Java-Bytecode-Dateien.
3. Speichern Sie Java-Bytecode-Dateien in der Oracle-Datenbank.
Verwenden Sie das Tool „loadjava“, um die Java-Bytecode-Dateien in die Oracle-Datenbank hochzuladen.
4. Erstellen Sie eine gespeicherte Java-Prozedur.
Erstellen Sie eine gespeicherte Java-Prozedur in der Oracle-Datenbank, um die Funktion zum Aufrufen von Java-Methoden zum Abfragen von Benutzerinformationen zu implementieren. Der Code lautet wie folgt:
CREATE OR REPLACE PROCEDURE getUserInfo(userid IN VARCHAR2, result OUT VARCHAR2)
AS LANGUAGE JAVANAME 'UserInfo.getUserInfo(java.lang.String) return java.lang.String';
5 . Rufen Sie gespeicherte Java-Prozeduren auf.
Verwenden Sie Tools wie PL/SQL oder SQL Developer, um gespeicherte Java-Prozeduren aufzurufen und die Funktion zum Abfragen von Benutzerinformationen zu implementieren. Der Code lautet wie folgt:
DECLARE
result VARCHAR2(10000);
BEGIN
getUserInfo('001', result); dbms_output.put_line(result);
END;
Der obige Code gibt die Benutzerinformationen mit der Benutzer-ID „001“ aus.
Zusammenfassung
Gespeicherte Prozeduren sind eine sehr wichtige Funktion in der Datenbank, die komplexe Geschäftslogik implementieren und die Effizienz der Datenbank verbessern kann. Wenn Sie ein Java-Programm in einer gespeicherten Prozedur aufrufen müssen, können Sie dies tun, indem Sie eine gespeicherte Java-Prozedur erstellen. Dieser Artikel stellt die Implementierungsprinzipien, Methoden und Fälle des Aufrufs gespeicherter Prozeduren in Java vor und hofft, für alle hilfreich zu sein.
Das obige ist der detaillierte Inhalt vonOracle Stored Procedure Aufruf Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!