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.
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();
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!