Friday, March 7, 2014

Memanggil Stored Procedure via JDBC

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();
   }
   }
}

Download Source Code

Silahkan download source code lengkapnya disini.

Penutup

Demikian tutorial kali ini, semoga bermanfaat.

0 comments:

Post a Comment