JDBC Java Memanggil Store Procedure Oracle Insert PL/SQL

Di Postingan sebelumnya sudah saya singgung tentang bikin schema oracle. Nah disini saya teruskan dengan membuat table serta membuat SP (store procedure) yang berfungsi sebagai jembatan untuk memasukan data dari aplikasi ke table.
jadi skemanya nanti java melempar parameter ke SP dan SP memproses memasukkan ke table.

table BHE_MHS didalam schema BAHRIE_BHE :

  CREATE TABLE "BAHRIE_BHE"."BHE_MHS" 
   (	"NIM" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
	"NAME" VARCHAR2(50 BYTE), 
	"ADDRESS" VARCHAR2(100 BYTE), 
	 CONSTRAINT "BHE_MHS_PK" PRIMARY KEY ("NIM")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "BAHRI_TUTORIAL"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "BAHRI_TUTORIAL" ;
 

setelah itu bikin Store Procedure insert nya :

create or replace
PROCEDURE SP_BHE_MHS_I 
(
nim_in         IN bhe_mhs.nim%type,
name_in        IN bhe_mhs.name%type,
address_in     IN bhe_mhs.address%type,
result_cursor  OUT SYS_REFCURSOR
)
AS 
BEGIN
  INSERT INTO bhe_mhs
  (
  nim,
  name,
  address
  )
  VALUES
  (
  nim_in,
  name_in,
  address_in
  );
  
 
  OPEN result_cursor FOR
  select 'success' as status from dual;
  EXCEPTION
    WHEN DUP_VAL_ON_INDEX THEN
     OPEN result_cursor FOR
        select 'error' as status from dual;
   
END;

cara java memanggil sp tersebut dengan cara seperti dibawah ini :

public Mahasiswa insert(Mahasiswa o) throws SQLException {

        //use store procedure oracle
        String insertMahasiswa = "{call bahrie_bhe.sp_bhe_mhs_i(?,?,?,?)}";
        CallableStatement callableStatement = DatabaseUtilities.getConnection().prepareCall(insertMahasiswa);
        callableStatement.setString(1, o.getNim());
        callableStatement.setString(2, o.getNama());
        callableStatement.setString(3, o.getAlamat());
        callableStatement.registerOutParameter(4, OracleTypes.CURSOR);
        callableStatement.executeUpdate();
        ResultSet rs = (ResultSet) callableStatement.getObject(4);
        if(rs.next()){
        o.setStatus(rs.getString("status"));
        System.out.println(rs.getString("status"));
        }
        return o;
    }

Sekian tutorialnya. bila belumm paham bisa tinggalkan pesan dibawah atau mention aja di @bahrie_bhe😀
Selamat Belajar.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: