pengantarjdbc · • jdbc menyediakan$library$yang$digunakan$ untuk$mengakses$rdbms$ ... •...
TRANSCRIPT
JDBC
Imam Fahrur Rozi
Pokok Bahasan
• Pengantar JDBC • Langkah Penggunaan JDBC
Pengantar JDBC
JDBC
• Java Data Base Conec;vity • JDBC menyediakan library yang digunakan untuk mengakses RDBMS
• Class-‐class dari JDBC ada di dalam paket java.sql
Arsitektur JDBC
• JDBC support baik arsitektur 2 ;er ataupun 3 ;er dalam hal akses database
• Pada aplikasi 2 ;er, aplikasi Java akan berkomunikasi langsung dengan database menggunakan JDBC
• Letak database server bisa di mesin lokal atau di remote yang terhubung melalui jaringan
Arsitektur JDBC
• Pada aplikasi 3 ;er, aplikasi Java akan berkomunikasi dengan database melalu middle +er.
• Middle Tier yang akan melanjutkan perintah atau permintaan dari aplikasi ke database.
• Data hasil eksekusi perintah di database akan dikirimkan kembali ke middle ;er, dan oleh middle ;er akan dikirimkan kembali ke aplikasi
JDBC Driver
• JDBC terdiri dari 2 bagian: – JDBC API: merupakan sekumpulan Java Class yang tergabung dalam JDBC
– JDBC Driver Manager, yang akan berkomunikasi dengan driver dari vendor database( driver yang akan melakukan komunikasi yang sesungguhnya dengan database)
Langkah Penggunaan JDBC
Langkah Penggunaan JDBC
• Load Driver • Definisikan URL untuk koneksi • Buat koneksi • Buat objek Statement • Eksekusi query • Proses hasil eksekusi query • Tutup koneksi
Langkah 1: Load Driver
• Tidak diperlukan pada Java 6, ar;nya pada Java 6 dan versi setelahnya, driver akan ter-‐load secara otoma;s
• Diperlukan pada Java 5 dan versi-‐versi sebelumnya
Langkah 2: Definisikan URL Koneksi • Format URL koneksi utk Derby database (Embedded Database) – Apache Derby (dikenal dg Java DB) merupakan database yang ter-‐embed dalam JVM atau masuk dalam bundle Java 6
– Format koneksi “jdbc:derby:dbName”
• Format URL koneksi untuk DB non-‐embedded “jdbc:vendorName//dbhostname:port//dbName”
:
Langkah 3: Buat koneksi • Cara membuat object connec+on:
• [op;onal] Jika ingin melihat info tentang DBMS yang digunakan
Langkah 4: Buat Objek Statement
• Objek Statement digunakan untuk mengirimkan perintah atau query yang akan dieksekusi oleh DBMS
• Beberapa ;pe Statement: – Statement – PreparedStatement – CallableStatement
Langkah 5: Eksekusi Query • Eksekusi query: – statement.executeQuery(“SELECT…..FROM…”);
• Akan menghasilkan objek ResultSet yang berisi data hasil query
– statement.executeUpdate(“UPDATE….”); – statement.executeUpdate(“INSERT…..”); – statement.executeUpdate(“DELETE….”); – statement.execute(“CREATE TABLE….”); – statement.execute(“DROP TABLE….”);
• Contoh:
Langkah 6: Proses hasil • Beberapa method/operasi pen+ng dari objek ResultSet antara lain: – resultSet.next()
• Mengambil data pada record/row selanjutnya. Jika ;dak ada data selanjutnya, maka akan menghasilkan false.
– resultSet.getString(“columnName”) • Mengambil nilai String yang tersimpan dalam nama kolom yang disebutkan. Berlaku juga untuk getInt, getDouble, getBlob, dsb.
– resultSet.getString(columnIndex) • Mengambil nilai String yang tersimpan dalam nomor indeks dari suatu kolom. Indeks pertama (untuk kolom pertama) adalah 1 (BUKAN 0)
– resultSet.beforeFirst() • Untuk meletakkan cursor sebelum record/row pertama
– resultSet.absolute(rowNum) • Untuk meletakan cursor pada row yang diberikan. Row pertama adalah 1
Langkah 6: Proses hasil • Contoh: – ResultSet resultSet = connec+on.executeQuery(“SELECT first, last, address FROM biodata WHERE …..”);
• Menggunakan nama kolom/field
• Menggunakan indeks kolom/field
Langkah 7: Tutup Koneksi • Ke;ka operasi database sudah selesai semua dan ;dak dibutuhkan lagi, maka TUTUP KONEKSI ke DB tersebut. Jika masih diperlukan untuk mengakses database tersebut, maka lebih baik jangan tutup dulu koneksi tsb. Karena mengirimkan perintah query ke objek connec+on yang sudah terbuat dan terbuka, akan lebih efek+f daripada harus membuat objek connec+on baru lagi.
• Contoh:
PreparedStatement CallableStatement
• Baik PreparedStatement maupun CallableStatement merupakan bentuk yang lebih khusus dari Statement
PreparedStatement
• Digunakan ke;ka ada perintah SQL yang sama, dilakukan secara berulang kali, dengan nilai yang berbeda. Misal, perintah SQL untuk INSERT banyak data, sebenarnya secara perintah SQL sama, tetapi nilai yang akan di-‐insert berbeda-‐beda.
• PreparedStatement bisa menerima input data (parameter) saat run;me, dimana data tsb yang akan diolah dalam perintah SQL
Statement vs PreparedStatement
• Untuk Statement, ke;ka pembuatan objek Statement, ;dak diberikan perintah SQL. Perintah SQL baru akan diberikan saat eksekusi.
Statement st = conn.createStatement(); st.executeUpdate(perintahQuery);
Statement vs PreparedStatement
• Untuk PreparedStatement, ke;ka pembuatan objek PreparedStatement, sekaligus diberikan perintah SQL.
PreparedStatement pst = conn.prepareStatement(perintahQuery);
Contoh Penggunaan PreparedStatement String sql = “INSERT INTO tbCar (idCar,name,prodYear,km) VALUES (?,?,?,?)”; PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1,”c01” ); pst.setString(2,”Blazer” ); pst.setInt(3,2000 ); pst.setInt(4,50000); pst.executeUpdate(); ////////////////////////////// pst.setString(1,”c02” ); pst.setString(2,”Audi” ); pst.setInt(3,2010 ); pst.setInt(4,500); pst.executeUpdate();
Tempat paremeter
Mengisi/melewatkan nilai paremeter
CallableStatement
• Digunakan untuk pemanggilan Stored Procedure yang ada dalam database
• CallableStatement juga bisa menerima input data (parameter) saat run;me.
Contoh CallableStatement
DELIMITER // CREATE PROCEDURE proc() BEGIN
SELECT * FROM emp; END; DELIMITER ;
Contoh CallableStatement CallableStatement cstmt = conn.prepareCall(“{call proc}”); ResultSet rs = cstmt.executeQuery(); …..dst…..
Fitur lanjut JDBC
Transac;ons • Secara default, setelah JDBC mengirimkan perintah ke database dan database telah mengeksekusinya, maka secara otoma;s perubahan yang terjadi akan langsung berpengaruh ke database yang bersangkutan (AUTO COMMIT)
• Jika ingin menon-‐ak;nan fitur Ato Commit, gunakan method:
• Panggil method commit(), untuk menerapkan perubahan yang dihasilkan terhadap database
• Gunakan method rollback(), jika terjadi error ke;ka eksekusi dan ;dak menerapkan perubahan ke database
Transac;ons: Contoh
Contoh Kasus
1. Buat Database di MySQL
• Buat database RentCarDB create database RentCarDB;
2. Buat Tabel tbCar
• Seleksi database RentCarDB use RentCarDB;
• Buat tabel create table tbCar ( idCar varchar(20) primary key, name varchar(25), prodYear int, km int );
3. Buat JFrame Form
• Buat window dengan menggunakan JFrame Form dengan nama RentCarForm
• Berikan +tle berupa Rent Car Form
4. Buat Form Input Data
5. Buat Form Browse Data
6. Tambahkan Atribut Connec;on dan Statement
Dari proses penambahan atribut Connec;on dan Statement, akan membutuhkan import class Connec+on dan Statement yang ada dalam paket java.sql.
7. Tambahkan Library MySQL JDBC Driver ke Project • Klik kanan pada Libraries, dan pilih Add Library
• PilihMySQL JDBC Driver
8. Inisialisasi Koneksi ke DB
• Lakukan di dalam konstruktor
9. Buat Operasi Insert
• Double klik tombol Submit
10. Buat Operasi Browse • Double klik tombol Browse
Your Turn ….
• Buat Event Handler untuk tombol Reset dan Delete
END