Rumah >pangkalan data >Oracle >panggilan prosedur tersimpan oracle java

panggilan prosedur tersimpan oracle java

WBOY
WBOYasal
2023-05-07 22:19:361588semak imbas

Dengan pendalaman pemformatan perusahaan yang berterusan, penggunaan pangkalan data menjadi semakin meluas, dan penerapan prosedur tersimpan menjadi semakin biasa. Pangkalan data Oracle telah melakukan kerja yang sangat baik dalam melaksanakan dan mengoptimumkan prosedur tersimpan, tetapi kadangkala perlu memanggil program Java dalam prosedur tersimpan untuk memenuhi beberapa keperluan khusus. Artikel ini akan menganalisis dan menerangkan prinsip pelaksanaan, kaedah dan kes prosedur tersimpan memanggil Java.

1. Prinsip pelaksanaan prosedur tersimpan memanggil Java

Prosedur tersimpan ialah objek pangkalan data yang telah disusun sebelumnya, yang boleh dianggap sebagai skrip yang ditulis pada peringkat pangkalan data dan boleh melaksanakan logik perniagaan yang kompleks. Prosedur tersimpan boleh memanggil prosedur atau fungsi tersimpan lain, tetapi mereka tidak boleh memanggil program Java secara terus. Apabila anda perlu memanggil program Java dalam prosedur tersimpan, anda perlu menggunakan mekanisme bahasa lanjutan pangkalan data untuk mencapai ini dengan mencipta prosedur tersimpan Java.

Prosedur tersimpan Java pada asasnya ialah program Java yang menyambung ke pangkalan data oracle melalui JDBC (Java Database Connectivity) untuk berinteraksi dengan pangkalan data. Mencipta prosedur tersimpan Java dalam pangkalan data oracle memerlukan langkah berikut:

1 Cipta kelas Java

Anda perlu menulis kelas dalam Java untuk mengakses dan mengendalikan pangkalan data. Kelas ini mesti melaksanakan antara muka khusus pangkalan data oracle, iaitu "oracle.jdbc.OracleCallableStatement".

2. Susun kelas Java ke dalam fail bytecode Java

Kompilkan kelas Java bertulis ke dalam fail bytecode Java (fail kelas). Anda boleh menggunakan pengkompil Javac atau IDE Java lain.

3. Simpan fail bytecode Java dalam pangkalan data oracle

Gunakan alat "loadjava" yang disertakan dengan JDK untuk memuat naik fail bytecode Java ke pangkalan data oracle Digunakan dalam tetingkap baris arahan, seperti yang ditunjukkan di bawah:

loadjava -username/password@database -verbose classfile

Di mana, classfile ialah laluan penuh bagi fail bytecode Java.

4. Cipta prosedur tersimpan Java dalam pangkalan data oracle

Untuk mencipta prosedur tersimpan Java dalam pangkalan data oracle, anda boleh menggunakan alatan seperti PL/SQL atau SQL Developer. Sintaks untuk mencipta prosedur tersimpan Java adalah seperti berikut:

BUAT ATAU GANTIKAN PROCEDURE procedure_name
AS LANGUAGE JAVA
NAME 'Java_class_name.method_name()';

Di mana, procedure_name ialah nama prosedur tersimpan Java_class_name ialah nama kelas Java ialah nama kaedah dalam kelas Java.

2. Kaedah memanggil Java daripada prosedur tersimpan

1 Gunakan JDBC untuk menyambung

Dalam prosedur tersimpan Java, anda boleh menggunakan JDBC untuk menyambung ke pangkalan data oracle untuk berinteraksi. dengan pangkalan data. Di Java, anda boleh menggunakan kod berikut untuk mendapatkan sambungan JDBC:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle :thin :@localhost:1521:ORACLE", "username", "password");

Antaranya, "oracle.jdbc.driver.OracleDriver" ialah pemacu JDBC bagi pangkalan data oracle, yang perlu dimuatkan dalam program kod; "jdbc:oracle:thin:@localhost:1521:ORACLE" ialah URL sambungan pangkalan data dan "kata laluan" ialah nama pengguna dan kata laluan pangkalan data.

2. Panggil kaedah Java

Dalam prosedur tersimpan Java, anda boleh memanggil kaedah secara langsung dalam kelas Java. Anda boleh menggunakan kod berikut untuk memanggil kaedah dalam kelas Java:

Hasil rentetan = Java_class_name.method_name();

Di mana, "Java_class_name" ialah nama kelas Java dan "method_name " ialah kelas Java Nama kaedah dalam , "hasil" ialah nilai pulangan kaedah.

3. Lulus parameter dalam prosedur tersimpan

Dalam prosedur tersimpan Java, parameter boleh dihantar ke kaedah Java melalui parameter prosedur tersimpan. Anda boleh menggunakan kod berikut untuk mendapatkan parameter prosedur tersimpan:

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();
Hasil rentetan = cs.getString(1);

Di mana "cs" ialah objek prosedur tersimpan, "procedure_name" ialah nama prosedur tersimpan, "param1" dan "param2" ialah parameter daripada prosedur yang disimpan, "hasil" ialah nilai pulangan kaedah.

3. Kes prosedur tersimpan memanggil Java

Berikut ialah kes menggunakan prosedur tersimpan Java untuk melaksanakan pertanyaan mudah maklumat pengguna.

1. Cipta kelas Java

Buat kelas dalam Java untuk melaksanakan kaedah pertanyaan maklumat pengguna berdasarkan ID pengguna. Kodnya adalah seperti berikut:

Info Pengguna kelas awam {

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. Susun kelas Java

Kompilkan kelas Java bertulis ke dalam dokumen kod bait Java .

3. Simpan fail bytecode Java ke dalam pangkalan data oracle

Gunakan alat "loadjava" untuk memuat naik fail bytecode Java ke pangkalan data oracle.

4. Cipta prosedur tersimpan Java

Buat prosedur tersimpan Java dalam pangkalan data oracle untuk melaksanakan fungsi memanggil kaedah Java untuk menanyakan maklumat pengguna. Kodnya adalah seperti berikut:

BUAT ATAU GANTIKAN PROSEDUR getUserInfo(userid IN VARCHAR2, result OUT VARCHAR2)
AS LANGUAGE JAVA
NAME 'UserInfo.getUserInfo(java.lang.String) return java. lang.String ';

5. Panggil prosedur tersimpan Java

Gunakan alatan seperti PL/SQL atau SQL Developer untuk memanggil prosedur tersimpan Java untuk menanyakan maklumat pengguna. Kodnya adalah seperti berikut:

ISYTIHAR

result VARCHAR2(10000);

MULA

getUserInfo('001', result);
dbms_output.put_line(result);

TAMAT;

Kod di atas akan mengeluarkan maklumat pengguna dengan ID pengguna "001".

Ringkasan

Prosedur tersimpan adalah fungsi yang sangat penting dalam pangkalan data, yang boleh melaksanakan logik perniagaan yang kompleks dan meningkatkan kecekapan pangkalan data. Apabila anda perlu memanggil program Java dalam prosedur tersimpan, anda boleh melakukannya dengan mencipta prosedur tersimpan Java. Artikel ini memperkenalkan prinsip pelaksanaan, kaedah dan kes prosedur tersimpan yang memanggil Java, dan berharap dapat membantu semua orang.

Atas ialah kandungan terperinci panggilan prosedur tersimpan oracle java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Oracle sys menukar kata laluanArtikel seterusnya:Oracle sys menukar kata laluan