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

java memanggil prosedur tersimpan oracle

WBOY
WBOYasal
2023-05-07 21:14:073169semak imbas

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java memainkan peranan penting dalam pembangunan pangkalan data. Sebagai salah satu sistem pengurusan pangkalan data hubungan yang paling popular hari ini, Oracle digunakan secara meluas dalam aplikasi perusahaan kerana kebolehskalaan yang tinggi dan prestasi yang berkuasa. Prosedur tersimpan ialah teknologi yang sangat biasa apabila menggunakan pangkalan data Oracle Artikel ini akan memperkenalkan cara Java memanggil prosedur tersimpan Oracle.

1. Gambaran keseluruhan prosedur tersimpan Oracle

Prosedur tersimpan ialah satu set pernyataan SQL yang telah disusun semula yang boleh digunakan semula dan biasanya disimpan dalam pangkalan data. Prosedur tersimpan boleh menerima parameter, menjana output, memulangkan hasil, dsb., dan mempunyai kelebihan besar dalam kecekapan pelaksanaan. Dalam pangkalan data Oracle, prosedur tersimpan biasanya ditulis dalam bahasa PL/SQL.

2. Java memanggil prosedur tersimpan Oracle

Terdapat dua cara untuk memanggil prosedur tersimpan Oracle dalam Java: menggunakan JDBC atau menggunakan rangka kerja Hibernate.

  1. Menggunakan JDBC

Menggunakan JDBC untuk memanggil prosedur tersimpan Oracle secara amnya memerlukan langkah berikut:

(1) Buka sambungan pangkalan data

Dengan Gunakan kaedah Class.forName() dan kaedah DriverManager.getConnection() untuk mencipta sambungan pangkalan data.

(2) Cipta objek CallableStatement

Dalam JDBC, panggil prosedur tersimpan melalui CallableStatement. Objek CallableStatement boleh dibuat menggunakan kaedah Connection.prepareCall().

(3) Tetapkan parameter

Tetapkan parameter input dan parameter output prosedur tersimpan melalui kaedah setXXX() objek CallableStatement.

(4) Laksanakan prosedur tersimpan

Laksanakan prosedur tersimpan melalui kaedah CallableStatement.execute().

(5) Keluarkan sumber

Selepas pelaksanaan selesai, sumber mesti ditutup, termasuk objek CallableStatement dan sambungan pangkalan data.

Berikut ialah contoh kod yang menggunakan JDBC untuk memanggil prosedur tersimpan Oracle.

// 首先加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");

//创建数据库连接
Connection conn = DriverManager.getConnection(url, username, password);

//设置输入参数和输出参数
CallableStatement cstmt = conn.prepareCall("{call procedure_name(?,?,?)}");
cstmt.setString(1, input_param1);
cstmt.setString(2, input_param2);
cstmt.registerOutParameter(3, Types.VARCHAR);

//执行存储过程
cstmt.execute();

//获取输出参数
String output_param = cstmt.getString(3);

//释放资源
cstmt.close();
conn.close();
  1. Menggunakan rangka kerja Hibernate

Rangka kerja Hibernate ialah rangka kerja objek/pemetaan hubungan (ORM) sumber terbuka yang menyediakan cara untuk memetakan objek Java ke dalam kaedah pangkalan data hubungan . Apabila menggunakan rangka kerja Hibernate, anda biasanya perlu menggunakan prosedur tersimpan dan pernyataan SQL tersuai untuk menanyakan pangkalan data. Dalam Hibernate, anda boleh menggunakan anotasi @NamedStoredProcedureQuery untuk memanggil prosedur tersimpan.

Berikut ialah contoh kod yang menggunakan Hibernate untuk memanggil prosedur tersimpan Oracle.

//定义存储过程
@NamedStoredProcedureQuery(
   name = "PROCEDURE_NAME",
   procedureName = "procedure_name",
   parameters = {
      @StoredProcedureParameter(mode = ParameterMode.IN, type = String.class, name = "input1"),
      @StoredProcedureParameter(mode = ParameterMode.IN, type = String.class, name = "input2"),
      @StoredProcedureParameter(mode = ParameterMode.OUT, type = String.class, name = "output")
   }
)

//调用存储过程
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("PROCEDURE_NAME");
query.setParameter("input1", input1);
query.setParameter("input2", input2);
query.execute();

//获取结果
String result = (String) query.getOutputParameterValue("output");

3. Ringkasan

Java memanggil prosedur tersimpan Oracle ialah keperluan yang sangat biasa dalam pembangunan peringkat perusahaan, yang boleh dicapai dengan menggunakan rangka kerja JDBC atau Hibernate. Apabila menggunakan JDBC, anda perlu melakukan langkah seperti sambungan pangkalan data, mencipta objek CallableStatement, menetapkan parameter, melaksanakan prosedur tersimpan dan melepaskan sumber, yang agak menyusahkan. Apabila menggunakan rangka kerja Hibernate, anda boleh menggunakan anotasi @NamedStoredProcedureQuery untuk mencapai ini. Tidak kira kaedah mana yang digunakan, anda perlu memberi perhatian kepada jenis dan susunan parameter tetapan dan nama prosedur tersimpan yang betul.

Atas ialah kandungan terperinci java memanggil prosedur tersimpan oracle. 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