KONEKSI DATABASE
1. Pengantar Koneksi Database
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 library fungsinya dapat ditemukan dalam package java.sql.* dan javax.sql.*. Terdapat 3 langkah utama untuk melakukan koneksi ke database :
- Membuat koneksi sengan server database.
- Membuat perintah dan mengirimkannya ke server database.
- Menerima dan mengolah hasil.
Untuk mendapatkan koneksi database, diperlukan 3 langkah, yaitu :
- Menginstalasi driver database yang digunakan
- Menciptakan instance object dari server
- 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
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.
Resulset (import java.sql.ResultSet)
Fungsi resultset disini akan digunakan saat kita
menggunakan statement select ke database, lebih jelasnya resultset adalah
pengontrol letak kursor terhadap suatu baris didalam database, sehingga apa yg
kita pilih / select dari java, akan sesuai dengan data baris yg ada pada
database. Fungsi resultset ini biasa digunakan saat kita ingin
menampilkan/memilih data dari database ke java.
1.
Statement (import
java.sql.Statement;)
Dalam penggunaan sebuah database untuk membuat
sebuah aplikasi java, tentu kita akan banyak bertemu dengan kode “insert into
namatable values”, “select * from barang”, dan masih banyak lagi, sebenarnya
kode tersebut adalah bahasa SQL, mengapa bahasa SQL tersebut bisa adalah
didalam kodingan bahasa java.?, disini lah peran statement akan
berfungsi, dimana statementlah yg membaca bahwa kode tersebut adalah bahasa SQL
dan mengantarkan bahasa tersebut ke dalam database, sehingga perintah SQL yg
telah kita ketikan akan terbaca dan dioperasikan oleh database sehingga peritah
eksekusinya akan muncul pada java. Untuk itu kita akan memerlukan fungsi ini
setiap kali melakukan pemrograman pengolahan data yg berhubungan dengan
database.
Cara melakukan komunikasi dengan database adalah :
1.
Memanggil driver JDBC
2.
Membangun koneksi
3.
Membuat objek statement
4.
Melakukan eksekusi
5.
Menerima hasil pemrosesan
6.
Membuat report
7.
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();
0020Keduanya 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
}
2.
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>
3.
Membuat objek 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();
4.
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();
5.
Menerima hasil pemrosesan
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
}
