Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 masingmasing 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 cmdUpdate cmdHapus cmdClose 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. Tabel untuk menampung kategori buku : tKategori 2. Tabel Penulis Buku : tBuku 3. Tabel untuk Penerbit Buku : tPenerbit 4. Tabel Buku : tBuku 5. Tabel Order Buku : tOrder 6. 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 masingmasing komponen UI Methods Methodmethod 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