Pendahuluan
Stored Procedure adalah sebuah fungsi atau prosedur yang berada di dalam database. Kalau Fungsi atau Prosedur umumnya di tanam di aplikasi, sedangkan kalau Stored Procedure di tanam di database. Tujuannya adalah untuk meningkatkan performance aplikasi sehingga lebih cepat tanpa membebani aplikasi.Untuk memanggil Stored Procedure via JDBC, kita bisa menggunakan kelas java.sql.CallableStatement.
Sintaks:
CallableStatement callableStatement = connection.prepareCall("{call procedurName(?,?)}");
Di bawah ini adalah contoh pemanggilan stored procedure via JDBC.
Membuat Procedure SP_Delete_Mahasiswa
CREATE OR REPLACE PROCEDURE SP_Hapus_Mahasiswa
( nim IN tbl_mhs.nim%type,
result OUT SYS_REFCURSOR
)
AS
BEGIN
DELETE tbl_mhs
WHERE nim = nim;
END;
Membuat Kelas Untuk Memanggil Store Procedure
Buatlah kelas DemoCallableStatement.java seperti di bawah ini:package com.mbj.jdbc.test;
import java.sql.*;
public class DemoCallableStatement{
public static void main(String[] args){
try{
System.out.println("Accessing Oracle JDBC Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException ex){
System.out.println("Failed to connect Oracle JDBC Driver");
ex.printStackTrace();
}
System.out.println("Successfully Connecting Oracle JDBC Driver");
Connection connection = null;
try{
connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:hris","root","password");
String nim = "20140898989"; //nim yang akan dihapus
String deleteMahasiswaSP = "{call SP_Hapus_Mahasiswa(?,?) }";
CallableStatement callableStatement = connection.prepareCall(deleteMahasiswaSP);
callableStatement.setString(1, nim);
callableStatement.setRegisterOutParameter(2,OracleTypes.CURSOR);
callableStatement.executeUpdate;
System.out.println("Mahasiswa dengan nim "+nim+" berhasil di hapus");
}catch(SQLException sqx){
System.out.println("Error connecting to Oracle Database");
sqx.printStackTrace();
}
connection.close();
}
}
}
0 comments:
Post a Comment