Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

dokumen-dokumen yang mirip
Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

Pemrograman Database Java

Stored Procedure. M. Saefudin SKom, MMSI

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC

Basis Data 2. Procedure dan Function Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Pertemuan VI F U N C T I O N

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

Pengenalan APLIKASI DATABASE

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Java Database Connectivity (JDBC)

visit :

Modul 6 Function dan Trigger

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

Java Database Connectivity (JDBC) (Minggu 5 Praktikum II)

- Menuliskan business logic dari aplikasi untuk mengakses data source

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

Modul 3 : Query Penggabungan Tabel

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

JDBC. Imam Fahrur Rozi

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Pada tahap ini merupakan tahapan implementasi dari

Contoh 3.1: Membuat suatu store procedure supaya menghapus semua pertandingan pemain berdasarkan nomor pemain yang ditentukan.

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Trigger. Basis Data 2

Praktikum TRANSACT SQL. Tujuan : Praktikan mampu untuk mengerti dan memahami Transact-SQL

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

- Menuliskan business logic dari aplikasi untuk mengakses data source

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN

DATABASE RUMAH SAKIT 1. Objek yang dipakai a. Pasien b. Dokter c. Ruang d. Petugas e. Rawat_inap f. Pembayaran

Tutorial Java Desktop 4 Menampilkan Data dengan Form TextField

uri=" prefix="logic"%>

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Tutorial Aplikasi Database Matakuliah Berbasis Java Swing Menggunakan Java Database Connectivity (JDBC)

Pertemuan VII TRIGGERS

Firma Firmansyah Adi B. Resume Web Service

Transact-SQL (Trigger- Event, Store Procedure)

VIEW OR STORED PROCEDURE

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

LAPORAN MATA KULIAH PERANCANGAN SISTEM BERBASIS JAVA

Koneksi Java GUI-Database

Transaction dan Trigger. M. Saefudin SKom, MMSI

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

Pengertian. Mengapa SP? Mengapa SP? 07/05/2012 STORED PROCEDURE

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

Definisi Eksepsi (exception)

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

Koneksi Java ke MySQL Database. Edi Sugiarto, S.Kom, M.Kom

PEMROGRAMAN JAVA Sistem gudang

PHP dan MySQL. Mempelajari koneksi PHP. Fungsi-fungsi aksesnya. Muhammad Zen Samsono Hadi, ST. MSc

Modul Praktikum Pemrograman

BAB 6 PROGRAM UNITS DAN STRORED PROGRAMS UNITS

Widhy Hayuhardhika NP, S.Kom

Kontrak Kuliah. Stored Procedures and Function. Edi Sugiarto, S.Kom, M.Kom

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

KONEKSI KE DATABASE DENGAN JDBC

Arsitektur Aplikasi Perangkat Enterprise JDBC. Antonius Rachmat C, S.Kom, M.Cs

Data Manipulation Language (DML)

LAPORAN TUGAS Pemrograman Berbasis Java

MODUL PRAKTIKUM KE 9

KURSUS ONLINE JASA WEBMASTERS

BAB V CURSOR AND RESULT SETS

Praktikum TRIGGER. Tujuan :

MySQL J A M K E T I G A

E-trik Ajax. Database MySQL. Dedi Alnas

PL / SQL. Arif Basofi

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

MENGENAL SYNTAX DML PADA SQL

SmallSQL. (DBMS 100% Murni Java) SmallSQL. Basis Data II. Dosen Pengampu : Noor Ifada. Kelompok BD2-B5

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

5/6/2010 KONSTRUK PROGRAM PL/SQL PROSEDUR STRUKTUR BLOK PADA BLOK ANONIM PL/SQL OVERVIEW MENGENAI SUBPROGRAM STRUKTUR BLOK PADA SUBPROGRAM PL/SQL

Djoni Darmawikarta

PHP dan MySQL. Mempelajari koneksi PHP dengan database MySQL dan Fungsi-fungsi aksesnya. Muhammad Zen S. Hadi, ST. MSc.

PEMROGRAMAN JAVA Sistem gudang

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

PENDAHULUAN. A. Membuat Database dalam SQL SERVER. 1. Klik Kanan pada databases lalu pilih new database

SISTEM INFORMASI DATA SISWA

MODUL 1 DATABASE MYSQL

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

MENGAKSES DATABASE DENGAN JDBC

MODUL VII STORED PROCEDURE

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

DATABASE MYSQL DENGAN PHP

TUGAS BASIS DATA LANJUT

Pertemuan IV CONDITION & HANDLER CURSOR

TRIGGER. Tujuan Mata Kuliah. Tools yang digunakan. Sesi7 : TRIGGER. Praktikum Pemrograman Client Server Database Hadi Kusumah, S.T.

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Pengajar dapat melihat Jadwal Mengajar Pengajar tersebut selama mengajar di

Transkripsi:

Stored Procedure (create, calling SP dari Oracle dan dari JAVA) Oleh : Tikaa (http://black9innocent.wordpress.com/) Mari mengingat stored procedure lagi #Demi belajar :D Disini saya akan mencoba menjelaskan sedikit tentang stored procedure dan cara pemanggilannya dari class Java. Stored Procedure adalah suatu modul progam yang berisi kumpulan pernyataan SQL untuk melaksanakan kegiatan atau tugas tertentu dan dapat dipanggil oleh program lain atau melalui SQL prompt yang disimpan di server. Stored procedure ditulis dalam bentuk suatu script. Stored procedure memungkinkan business logic disimpan didalam database. Dengan menggunakan stored procedure maka aplikasi akan terdistribusi. Eksekusi satu perintah CALL pada aplikasi dapat membentuk sejumlah pekerjaan pada server aplikasi. Store procedure memiliki kemampuan antara lain : Menerima parameter input dan mengembalikan beberapa nilai parameter output dari procedure yang dipanggil. Mengandung statement pemrograman yang melakukan operasi terhadap database termasuk memanggil store procedure lain. Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi store procedure. Keuntungan pemakaian store procedure adalah : Merupakan pemrograman modular. Store procedure dibuat sekali dan dapat dipakai berulang untuk komputasi yang sama. Memungkinkan eksekusi lebih cepat. Ketika pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi berikutnya lebih cepat. Mengurangi trafik jaringan client/server. Barisan kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan store procedure. Kompilasi dilakukan di database (kadang disebut pre-compilation ) sehingga mengurangi traffic. Dapat digunakan sebagai mekanisme security Pengguna dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat mengeksekusi procedure didalamnya secara langsung. Adanya pemisahan antara database akses logic dengan application logic, hal ini berakibat program aplikasi dapat menjadi lebih sederhana dan lebih ringkas. Kekurangannya, karena semua query berjalan di server maka akibatnya server menjadi lebih terbebani.

Create Stored Procedure di Database Berikut contoh stored procedure untuk menampilkan tanggal hari ini. CREATE OR REPLACE PROCEDURE today_is AS -- menampilkan current system date dalam long format DBMS_OUTPUT.PUT_LINE( 'Today is ' TO_CHAR(SYSDATE, 'DL') ); END today_is; / Keterangan : CREATE OR UPDATE today_is AS.. END : CREATE perintah untuk membuat stored procedure. Seandainya stored procedure telah ada maka stored procedure akan digantikan dengan stored procedure yang baru dibuat. : Nama stored procedure. : AS menyatakan deklarasi. Tulis variable setelah AS (jika ada). : Penempatan business logic atau operasi lainnya. DBMS_OUTPUT.PUT_LINE : Untuk menampilkan result. Menjalankan Stored Procedure system.today_is(); end; Result yang ditampilkan Today is Thursday, January 12, 2012

Contoh Stored Procedure(SP) untuk Select, Insert, Update, Delete Row di table 1. Create Table Sebelum membuat stored procedure, pertama-tama coba buat table. Sebagai contoh, buatlah 2 table, testsystem dan testpayment. Table testsystem create table testsystem ( systemno varchar(20), invoiceno varchar(20), seller varchar(20), ); insert into testsystem(systemno, invoiceno, seller) values('sy001', 'IV001', 'seller1'); insert into testsystem(systemno, invoiceno, seller) values('sy002', 'IV002', 'seller2'); Table testpayment create table testpayment ( paymentno varchar(20), paymentsource varchar(20), systemno varchar(20) ) insert into testpayment(paymentno, paymentsource, systemno) values('py001', 'Buyer A', 'SY001'); insert into testpayment(paymentno, paymentsource, systemno) values('py001', 'Buyer B', '12323231', 'SY002'); insert into testpayment(paymentno, paymentsource, systemno) values('py002', 'Buyer1', 'SY001'); 2. SP Select Menampilkan system no dan payment no. --untuk comment gunakan (--) --jangan lupa akhiri setiap statement dengan (;) --sysno = parameter yang di input CREATE OR REPLACE PROCEDURE cektesting(sysno IN varchar2) AS --declare variable dan tipe datanya ppaymentno varchar2(20); psystemno varchar2(20); datanotfound EXCEPTION; --untuk exception --menampilkan invoiceno

SELECT systemno, paymentno INTO psystemno, ppaymentno from testpayment where systemno = sysno; --sesuai dengan sysno yang di input --kondisi untuk menangkap exception IF pinvoiceno IS NOT NULL THEN DBMS_OUTPUT.PUT_LINE('System No ' psystemno ' - ' 'PaymentNo ' ' - ' ppaymentno); ELSE RAISE datanotfound; END IF; end cektesting; --calling stored procedure cektesting('sy001'); --SY001 = systemno yang diinput end; 3. SP Remove Menghapus row dari table testsystem. CREATE OR REPLACE PROCEDURE removesysno (sysno varchar) AS tot NUMBER; DELETE FROM testsystem WHERE testsystem.systemno = removesysno.sysno; tot := tot - 1; --calling stored procedure removesysno('sy002'); end; 4. SP Update Update nilai seller di table testsystem CREATE OR REPLACE PROCEDURE updateseller (sysno varchar, seller1 varchar) AS UPDATE testsystem SET seller = seller1 WHERE testsystem.systemno = sysno;

--calling stored procedure system.updateseller('sy001', 'Seller Coba'); atau call updateseller('sy001', 'Seller Coba'); 5. SP Insert Insert hasil join table testsystem dengan testpayment ke table baru (table test). Untuk itu, kita harus create table test terlebih dahulu. -create table test yang akan di-insert oleh SP create table test ( systemno varchar(20), invoiceno varchar(20), seller varchar(20), paymentno varchar(20), paymentsource varchar(20) ) CREATE OR REPLACE PROCEDURE InsertSystemNo (sysno varchar) AS psystemno varchar(20); pinvoiceno varchar(20); pselller varchar(20); ppaymentno varchar(20); ppaymentsource varchar(20); select s.systemno, s.invoiceno, s.seller, pay.paymentno, pay.paymentsource INTO psystemno, pinvoiceno, pselller, ppaymentno, ppaymentsource from system.testsystem s join system.testpayment pay on s.systemno = pay.systemno where s.systemno = sysno; INSERT INTO TEST VALUES (psystemno, pinvoiceno, pselller, ppaymentno, ppaymentsource); --calling stored procedure InsertSystemNo('SY002');

Calling Stored Procedure dari Java Sebelum menulis syntax untuk memanggil stored procedure, hal pertama yang harus dimasukkan ke project java adalah library ojdbc.jar. Disini, kita mencoba untuk memanggil stored procedure updateseller. Package Test; import java.sql.callablestatement; import java.sql.connection; import java.sql.databasemetadata; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; import java.sql.types; public class CallStoredProcedureFromDB { public static void main(string[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@tikaa-pc:1521:xe", "uname", "password"); //call stored procedure update seller // terdiri dari 2 parameter, makanya ada 2? CallableStatement csmt = conn.preparecall("{call updateseller(?,?)}"); csmt.setstring(1, "SY002"); // set parameter yang bertipe String csmt.setstring(2, "Seller dua"); // jika tipenya int, maka setinteger csmt.execute(); // jalankan statement // Get database metadata //DatabaseMetaData dbmd = conn.getmetadata(); // // Get all stored procedures in any schema and catalog //ResultSet resultset = dbmd.getprocedures(null, null, "%"); // //Get stored procedure names from the result set //while (resultset.next()) { //String procname = resultset.getstring(3); //System.out.println(procName); //} } } catch (Exception e) { e.printstacktrace(); } }