Transcript ResultSet

Materi

 MyODBC  MySQL Connector/J  Driver  Connection  Statement  ResultSet  PrepareStatement  Advanced ResultSet  Penerapan Operasi CRUD  Studi kasus Online BookShop

Tujuan Instruksional Khusus

 Mahasiswa dapat membangun koneksi aplikasi Java dengan sumber data yang digunakan untuk melakukan operasi CRUD.

Java Database Connectivity

 JDBC (Java Database Connectivity) merupakan library yang digunakan untuk mengkoneksikan program Java dengan DBMS (Database Management System).

 Melalui JDBC Anda dapat mengakses data-data pada DBMS seperti MySQL, Oracle, Microsoft ODBC dan DBMS lainnya.  Pembahasan pada materi ini menggunakan DBMS MySQL.

MyODBC

 Connector/ODBC is a standardized database driver Windows, Linux, Mac OS X, and Unix platforms.

 MyODBC merupakan driver untuk menghubungkan atau sebagai jembatan/penerjemah antara aplikasi dengan database engine (MySQL), sehingga aplikasi tersebut dapat mengakses sebuah database.  Dapat di download pada URL : http://www.mysql.com/downloads/connector/odbc/

MySQL Connector/J

 Standardized database driver for Java platforms and development.

 Untuk menghubungkan antara Java dan MySQL membutuhkan sebuah library yang bernama MySQLConnector/J.  Dapat di download pada URL : http://www.mysql.com/downloads/connector/j/

MySQL Connector/J

 Untuk memudahkan pengembangan aplikasi-aplikasi Java, sebaiknya menggunakan IDE untuk Java seperti NetBeans atau Eclipse.

 Untuk memasukkan library MySQLConnector/J ke sebuah project pada NetBeans, adalah dengan cara mengklik kanan pada paket Libraries, lalu pilih Add Library …

MySQL Connector/J

Pilih MySQL JDBC Driver Lalu tekan tombol Add Library

MySQL Connector/J

 Hasilnya sbb : Library MySQL JDBC Driver sudah ditambahkan

Driver

 Untuk membuat koneksi dari Java ke MySQL memerlukan class yang bernama Driver.  Setiap connector (yang digunakan MySQLConnectorJava) memiliki Driver masing masing yang selalu mengimplementasi class Driver yang terdapat pada paket “java.sql”.  Untuk mengecek keberadaan Driver dalam MySQLConnectorJava gunakan perintah seperti ini : Class.forName(“nama driver").newInstance();

Driver

 Berikut adalah program untuk mendeteksi Driver yang digunakan : OUTPUT

Connection

 Untuk menghubungkan Java dan MySQL Anda harus membuat koneksi melalui class Connection yang terdapat dalam paket “java.sql”.  Dan untuk membuat koneksi, perlu diketahui nama host, port, nama database, username dan password yang akan digunakan untuk koneksi MySQL.

 Cara membuat koneksi : Connection koneksi = DriverManager.getConnection( "jdbc:mysql://host:port/database", "username", "password");

Statement

 Statement digunakan untuk mengeksekusi perintah perintah SQL seperti seperti INSERT, UPDATE, SELECT dan DELETE.

 Statement merupakan class yang terdapat dalam paket “java.sql” .

 Untuk membuat Statement Anda dapat melakukan koneksi terlebih dahulu menggunakan class Connection : Connection kon = DriverManager.getConnection(.....); Statement statement = kon.createStatement();

OUTPUT

Statement

 Untuk lebih memahami penggunaan Statement dalam program maka siapkan terlebih dahulu tabel dan form seperti berikut ini :

tUser txtUserID txtPassword cmdSimpan cmdHapus cmdClose cmdUpdate

 Catatan : DBMS yang digunakan adalah MySQL dan IDE yang digunakan adalah NetBeans 7.0

Statement - Insert

 Melalui Statement Anda dapat melakukan proses Insert. Lihat potongan kode program berikut ini:

Statement - Delete

 Melalui Statement Anda dapat melakukan proses Delete. Lihat potongan kode program berikut ini:

Statement - Update

 Melalui Statement Anda dapat melakukan proses Update. Lihat potongan kode program berikut ini:

ResultSet

 SELECT merupakan perintah yang menghasilkan kumpulan data dalam tabel yang ada dalam database.

 Untuk mendapatkannya maka dibutuhkan bantuan class yang bernama ResultSet yang terdapat pada paket java.sql.

 Untuk mendapatkan record dalam ResultSet Anda dapat menggunakan metode next() untuk mengecek apakah ada record lagi setelah record ini dan prev() untuk mengecek apakah ada record sebelum record yang saat ini terseleksi.

ResultSet

 Perhatikan potongan kode berikut: Koneksi objKoneksi = new Koneksi(); Connection kon = objKoneksi.bukaKoneksi(); Statement stat = kon.createStatement(); String query = "Select * from tUser"; ResultSet data = stat.executeQuery(query); boolean ketemu = false; while(data.next()) { //Proses }

PrepareStatement

 Selain Statement dalam JDBC kita juga mengenal PrepareStatement yang gunanya hampir sama dengan Statement, namun perbedaannya PrepareStatement memiliki fasilitas untuk mempermudah proses INSERT, UPDATE, DELETE. Untuk membuat PrepareStatement kita bisa membuatnya lewat Connection : Connection koneksi = DriverManager.getConnection(...); PreparedStatement prepare = koneksi.prepareStatement("PERINTAH SQL...");

PrepareStatement (lanjutan)

 Berbeda dengan Statement, pada PrepareStatement kita harus menuliskan perintah SQL dengan ‘?’ jika kita akan mengubah data tersebut : Connection koneksi = DriverManager.getConnection(...); PreparedStatement prepare = koneksi .prepareStatement(" INSERT INTO tUser " + " (UserID, Password) VALUES (?, ?)");

PrepareStatement (lanjutan)

 Selanjutnya Anda dapat mengubahnya dengan menset tanda ‘?’ dalam perintah tersebut sesuai dengan tipe datanya menggunakan metode set[TipeData](int index, TipeData nilai).  Kemudian gunakan metode executeUpdate() untuk mengeksekusi seluruh perintahnya.  Contoh tabel tPenulis:

Insert Data

Update Data

Delete Data

View Data

Advanced ResultSet

 Selain Statement dan PrepareStatement, ternyata ResultSet juga bisa kita gunakan untuk menambah data, namun untuk membuat sebuah ResultSet yang dapat mengubah data kita harus membuat Statement yang berbeda dari Biasanya : Connection koneksi = DriverManager.getConnection(...); Statement statement = koneksi.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet result = statement.executeQuery("SELECT ...");

Advanced ResultSet (lanjutan)

 Sebelum menambahkan data Anda perlu memanggil metode moveToInsertRow(), dan untuk menambah atau mengubah data Anda bisa menggunakan metode update[TipeData](int indexAtribut, TipeData nilai) dan setelah proses berakhir gunakan metode insertRow() untuk memasukkan data yang tadi dimasukkan.

Insert Data

Update Data

 Berbeda dengan Statement dan PrepareStatement, dalam ResultSet, Anda harus tahu lokasi baris / record yang akan kita ubah.  Untuk mengubah data Anda harus menentukan dulu record yang akan kita ubah dengan metode absolute(int indexRecord) milik ResultSet.  Seperti proses INSERT untuk proses UPDATE Anda juga menggunakan metode update[TipeData](int indexAtribut, TipeData nilai) dan harus diakhiri dengan metode updateRow().

Update Data

Delete Data

Studi Kasus BookShop

 Buat database dengan nama dbBookShop  Desain tabel-tabel seperti berikut : 1.

2.

3.

4.

5.

6.

Tabel untuk menampung kategori buku : tKategori Tabel Penulis Buku : tBuku Tabel untuk Penerbit Buku : tPenerbit Tabel Buku : tBuku Tabel Order Buku : tOrder Tabel Order Detail : tOrdetail

Studi Kasus BookShop

 Tabel tKategori :  Tabel tPenulis :

Studi Kasus BookShop

 Tabel tPenerbit :  Tabel tBuku :

Studi Kasus BookShop

 Tabel tOrder :  Tabel tOrdetail :

Desain User Interface

 Desain User Interfase sesuai dengan tabel-tabel di atas  Sebagai contoh desain UI untuk menginputkan data Penulis Buku seperti berikut ini : JTextField JRadioButton JTextArea JButton

Variable Name

txtKode txtNama txtEmail male female txtAlamat cmdSimpan cmdUpdate cmdHapus cmdClose

Agar lebih jelas perhatikan pada bagian Member View (NetBeans) yang menunjukkan variable name dari masing masing komponen UI

Methods

Method method dan Handler Object pada class FormPenulis

Cara kerja Program

Form Pertama kali di jalankan Setelah data di inputkan

Cara kerja Program

Setelah menekan tombol Simpan Kembali seperti semula setelah menekan tombol OK pada kotak dialog Message

Data tersimpan ke tabel tPenulis Catatan: Untuk menyederhanakan program maka alamat, kota dan kode pos digabung pada field alamat

KodeProgram – Simpan Data

KodeProgram – Update Data

KodeProgram – Hapus Data

KodeProgram – Update Data

KodeProgram – Cari Data

KodeProgram – Cari Data

KodeProgram – Methods

Tabel Transaksi

Form Input data buku melibatkan tabel : tKategori tPenulis tPenerbit

Tabel Transaksi

Nama-nama penulis yang di ambil dari tabel tPenulis

KodeProgram – Menampilkan data dari tabel tPenulis