KOMUNIKASI DENGAN DATABASE
KOMUNIKASI
DENGAN DATABASE
JAVA DATABASE CONECTIVITY (JDBC)
Sistem Basis Data pada Java
Database merupakan salah satu bagian
inti dari Sistem Informasi yang menyimpan data untuk proses pengolahan
nantinya. Agar aplikasi bisa mengakses data dari suatu database engine,
maka diperlukan suatu mekanisme koneksi antara aplikasi dan database tersebut.
Pada bahasa pemrograman java terdapat kumpulan kelas yang digunakan khusus
untuk koneksi database.
Komponen database pada java
mengikuti standar SQL (Structured Query Language), sehingga libraryfungsinya
dapat ditemukan dalam package java.sql.* dan javax.sql.*.
Terdapat 3 langkah utama untuk
melakukan koneksi ke database : (1) membuat koneksi sengan server database. (2)
Membuat perintah dan mengirimkannya ke server database. (3) menerima dan
mengolah hasil.
Untuk mendapatkan koneksi database,
diperlukan 3 langkah, yaitu :
1. Menginstalasi driver database yang digunakan
1. Menginstalasi driver database yang digunakan
2. menciptakan instance object dari
server
3. melakukan registrasi koneksi ke
database
Setelah berhasil dilakukan, maka
kita hanya perlu melakukan registrasi koneksi, dan menciptakan koneksi melalui
interface Connection berdasarkan URL disertai dengan username dan
password database
PENGERTIAN
JDBC (Java database connectivity) adalah spesifikasi standar dari JavaSoft API (Aplication Programming Interface) yang memungkinkan program Java untuk mengakses sistem database manajemen. JDBC menyediakan methods untuk melakukan query dan modifikasi data pada RDBMS seperti Oracle, SQL Server, MySQL, dll menggunakan Driver Manager. JDBC mirip dengan ODBC (Open Database Connectivity), hanya saja JDBC spesifik digunakan untuk program Java. ODBC bersifat language independent.
JDBC memiliki beberapa kegunaan, yaitu membantu programmer untuk koneksi dengan data source, membantu mengirimkan query dan update statements ke database, dan menerima serta memroses hasil yang didapatkan dari database sesuai dengan query yang diberikan.
JDBC
Untuk melakukan koneksi ke suatu
sumber data, diperlukan database driver yang akan menjadi jembatan antara
Aplikasi dengan Database. Database driver ini bersifat spesifik untuk setiap
sumber data. Misalnya, Database Driver MySQL hanya bisa digunakan untuk
melakukan koneksi ke database MySQL, begitu juga dengan Database Driver
PostgreSQL hanya untuk PostgreSQL.
Komponen utama JDBC
Driver adalah komponen untuk
menangani masalah komunikasi dengan server database.
DriverManager adalah komponen untuk
menangani objek driver.
Connection adalah komponen yang menyimpan
koneksi ke database.
Statement adalah komponen yang menangani
perintah SQL ke database.
ResultSet adalah komponen yang menyimpan
data hasil perintah ke database.
SQLException adalah komponen untuk
menangani kesalahan-kesalahan yang mungkin terjadi saat pengolahan database.
Memanggil Driver JDBC
Untuk menghubungkan database MySQL
dengan Java, perlu dilakukan pemanggilan driver JDBC. Driver adalah sebuah
library yang berisi perintah-perintah untuk berkomunikasi dengan server
database.
Sebelum mulai menulis program,
import terlebih dahulu package java.sql.*. karena di dalam library
ini terdapat kelas-kelas seperti DriverManager, Connection, dan ResultSet.
import
java.sql.*
Untuk memanggil driver JDBC bisa
menggunakan
Class.forName(namaDriver);
atau
Class.forName(namaDriver).newInstance();
Keduanya bertujuan untuk registrasi
Class Driver. Perintah tersebut dapat menghasilkan error bila driver tidak
ditemukan, sehingga perlu dilakukan penanganan, menggunakan ClassNotFoundException.
try {
// perintah pemanggilan driver
} catch
(ClassNotFoundException exc) {
// penanganan kesalahan
}
Membangun Koneksi
Setelah berhasil melakukan
pemanggilan driver, maka dilanjutkan dengan membangun koneksi. Untuk membuat
koneksi tidak perlu dengan menciptakan object baru. Karena pembuatan object
telah dienkapsulasi pada kelas DriverManager. Jadi, untuk mendapatkan object
hanya dengan syntax :
DriverManager.getConnection(url,
username, password);
Sama seperti pemanggilan driver,
perintah kali ini dapat menyebabkan error. Untuk itu, diperlukan penanganan.
Namun, kali ini menggunakan SQLException, karena kesalahan yang mungkin
terjadi ada di dalam database engine.
try {
Connection conn = DriverManager.getConnection(URL, username, password);
} catch
(SQLException exc) {
// penanganan kesalahan
}
URL bisa dibuat dengan format :
Jdbc:<DBServer>://[host]:[port]/<NamaDB>
Username : user pada server database
Password : password untuk user
diatas
Membuat Object Statement
Statement merupakan objek interface
yang diciptakan dari method Connection.createStatement().Objek Statement digunakan untuk
penerimaan statement SQL tanpa parameter.
Perintah Statement :
Statement
stat = Connection.createStatement();
Melakukan Eksekusi
Sekarang, objek statement telah
dibuat dan sudah bisa digunakan untuk mengirim perintah SQL, kemudian
mengeksekusinya. Untuk melakukan eksekusi, dibagi menjadi 2 bagian.
Pertama, menggunakan method executeQuery(). Method ini dipakai untuk perintah SELECT,sehingga akan memberikan nilai
kembalian dalam bentuk ResultSet.
Kedua, menggunakan method
executeUpdate(). Method ini dipakai pada perintah INSERT,
UPDATE, dan DELETE. Untuk melakukan perintah DELETE :
PreparedStatement
stat = conn.prepareStatement(perintah/query delete);
stat.executeUpdate();
Menerima hasil dan memprosesnya
Hasil statement akan memberikan
hasil, jikaperintah yang digunakan adalah SELECT. Hasil kembalian berupa ResultSet.
ResultSet rs = stat.executeQuery(perintah SQL);
If( rs.next() ) {
//
ambil nilai dan masukan ke dalam variabel
}
langkah-langkah diatas merupakan cara yang paling sederhana untuk melakukan akses database pada bahasa pemrograman Java. J
langkah-langkah diatas merupakan cara yang paling sederhana untuk melakukan akses database pada bahasa pemrograman Java. J
EMPAT KOMPONEN PENTING DARI JDBC :
1. JDBC-API
JDBC-API menyediakan fasilitas untuk
mengakses database relasional dari program berbahasa Java. Melalui komponen ini
user dapat melakukan proses query dan perubahan data dalam database. JDBC-API
memiliki package utama yang tersedia pada java.sql dan javax.sql.
2. JDBC
Driver Manager
Merupakan komponen kelas utama yang
mendefinisikan object yang mengkoneksikan aplikasi Java ke JDBC driver.
Komponen ini berfungsi untuk mengatur beberapa tipe JDBC database driver yang berbeda. JDBC
Driver Manager memilih driver mana yang sesuai untuk koneksi ke suatu database.
3. JDBC
Test Suite
Komponen ketiga ini memastikan JDBC
driver dapat menjalankan program user dan sangat berguna dalam melakukan
testing sebuah aplikasi yang menggunakan teknologi JDBC.
4. JDBC-ODBC
Bridge
Adalah database driver yang
menggunakan ODBC driver untuk koneksi ke database serta memiliki fungsi utama
untuk translasi dari JDBC method calls ke ODBC function calls dan
mengimplementasikan JDBC untuk semua driver yang didukung oleh ODBC. Komponen
ini dapat diimplementasikan dalam package sun.jdbc.odbc.
JDBC MEMILIKI 10 ARSITEKTUR, YAITU :
1. Database
connections
2. SQL
Statements
3. Result
set
4. Database
metadata
5. Prepared
Statement
6. Binary
Large Objects (BLOBs)
7. Character
Large Objects (CLOBs)
8. Callable
statements
9. Database
Driver
10. Driver Manager
Tipe 1 – JDBC-ODBC Bridge
§ Fungsi
- Translasi query dari JDBC ke ODBC
query
- Client à JDBC Driver à ODBC Driver
à Database
§ Keunggulan
- Semua database yang didukung oleh
ODBC dapat diakses
§ Kelemahan
- Performance
overhead
- ODBC driver harus diinstal di
semua client
- Dibutuhkan client-side software
Tipe 2 – Java to Native API
§ Fungsi
- Konversi JDBC calls ke client API
untuk database
- Client à JDBC driver à Vendor
Client DB Library à Database
§ Keunggulan
- Performa lebih baik daripada tipe
1
§ Kelemahan
- Vendor client library harus
diinstal di client.
- Tidak dapat digunakan di internet
karena membutuhkan client-side software.
- Tidak semua database memberikan
client-side library
Tipe 3 – Java to Network Protocol or
All-Java Driver
§ Fungsi
- Menggunakan pendekatan three-tier
communication
- Vendor independent
- Client à JDBC Driver à
Middleware-Net Server à Any database
§ Keunggulan
- Tidak membutuhkan instalasi pada
client-side
- Middleware server dapat memberikan
fungsi tambahan dalam hal caching, load balancing, logging, auditing, dll.
- Dapat digunakan di internet
§ Kelemahan
- Membutuhkan program yang bersifat
database-specific untuk middle tier
- Extra layer dapat menyebabkan
time-bottleneck.
Tipe 4 – Java to Database Protocol
§ Fungsi
- Melakukan komunikasi langsung
dengan database melalui koneksi socket.
- Driver berfungsi mengubah JDBC
call ke database protocol langsung
- Diimplementasikan sepenuhnya dalam
Java.
- Client Machine à Native Protocol
JDBC Driver à Database Server. Contoh: Oracle Thin Driver
§ Keunggulan
- Performa cenderung meningkat à
Tidak melakukan translasi ke ODBC, tidak menggunakan client API, tidak
menggunakan middleware layer
§ Kelemahan
- Pada sisi client, driver untuk
masing-masing database harus terinstal.
BEBERAPA KONSEP PENTING DI DALAM
JDBC :
Transactions
- Secara default, semua transaksi
pada JDBC bersifat auto-commit
Logging
- Digunakan untuk mengatur apakah
dilakukan logging kejadian selama transaksi dilakukan.
Concurrency
- Memastikan transaksi terjadi
sesuai urutan kronologis.
- Berhubungan dengan kemungkinan
terjadinya multikoneksi yang mengakses data yang sama.
JDBC MASIH MEMILIKI KOMPONEN PENTING
LAIN, YAITU :
Package java.sql
Berisi beberapa class, interface
yang digunakan dalam transaksi.
DriverManager
Menangani segala sesuatu yang
berkaitan dengan driver yang dipakai.
DataSource
Alternatif dari DriverManager untuk
melakukan koneksi database.
JDBC Connection Object
- Object untuk melakukan koneksi dengan database
- Membuat Statement, PreparedStatement, dan CallableStatement untuk eksekusi SQL.
- Melakukan commit dan rollback transaksi
KOMPONEN UTAMA JDBC API
JDBC API memiliki beberapa komponen
utama yang berhubungan dengan mekanisme pengolahan data baik itu untuk
berkomunikasi dengan database server, melakukan koneksi, mengirim perintah SQL,
mendapatkan data, menutup koneksi, serta penanganan error yang mungkin terjadi
dalam pengolahan data.
- Driver adalah komponen untuk menangani komunikasi dengan database server.
- DriverManager adalah komponen untuk menangani objek Driver dimana objek DriverManager juga mengabstraksi detail dari proses kerja objek Driver.
- Connection adalah komponen untuk merepresentasikan koneksi secara fisik ke database
- Statement adalah komponen untuk mengirim perintah-perintah SQL ke database.
- ResultSet adalah komponen untuk menyimpan data yang didapat dari database setelah perintah SQL dijalankan dengan menggunakan komponen Statement.
- SQLException adalah komponen untuk menangangi kesalahan-kesalahan (error) yang mengkin terjadi dalam pengolahan database
Komentar
Posting Komentar