Langkah-Langkah Pemrograman JDBC
Pada pemrograman Java dengan menggunakan JDBC, ada beberapa langkah yang secara umum harus dilakukan sehingga aplikasi tersebut dapat berinteraksi dengan database server.Langkah-langkah untuk berinteraksi dengan database server dengan menggunakan JDBC adalah sebagai berikut :
1. Mengimpor package java.sql
2. Memanggil Driver JDBC
3. Membangun Koneksi
4. Membuat Statement
5. Melakukan Query
6. Memproses Hasil
7. Menutup Koneksi
8. Penanganan Error
Mengimpor package java.sql
Pertama-tama yang harus dilakukan
sebelum Anda membuat program JDBC adalah mengimpor package java.sql
terbih dahulu, karena di dalam package java.sql tersebut terdapat
kelas-kelas yang akan digunakan dalam proses-proses berintekasi dengan
database server misalnya kelas DriverMaganer, Connection, dan ResultSet.
Hal ini sangat penting dilakukan karena
bagi pemula seringkali lupa untuk mengimpor package yang kelas-kelas
yang akan digunakan terdapat di dalamnya, sehingga mengakibatkan
kegagalan dalam mengkompile program Java.
Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :
Import java.sql.*;
Listing ini dituliskan sebelum Anda menulis kelas.
Memanggil Driver JDBC
Langkah pertama untuk melakukan koneksi
dengan database server adalah dengan memanggil JDBC Driver dari database
server yang kita gunakan. Driver adalah library yang digunakan untuk
berkomunikasi dengan database server. Driver dari setiap database server
berbeda-beda, sehingga Anda harus menyesuaikan Driver JDBC sesuai
dengan database server yang Anda gunakan.
Berikut ini adalah listing program untuk memanggil driver JDBC.
Class.forName(namaDriver);
atau
Class.forName(namaDriver).newInstance();
Kedua cara di atas memiliki fungsi yang
sama yaitu melakukan registrasi class driver dan melakukan intansiasi.
Apabila driver yang dimaksud tidak ditemukan, maka program akan
menghasilkan exception berupa ClassNotFoundException. Untuk menghasilkan exception apabila driver tidak ditemukan, maka diperlukan penambahan try-catch. Adapun cara menambahkan try-catch untuk penanganan error apabila driver tidak ditemukan adalah sebagai berikut :
Try {
Class.forName(namaDriver);
} catch (ClassNotFoundException cnfe) {
… Penanganan Error ClassNotFoundException
}
Contoh listing memanggil driver untuk database server menggunakan MySQL adalah :
try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException cnfe) {
System.out.println(“Pesan Error : “ + cnfe)
}
Dari contoh listing di atas dapat
dijelaskan bahwa apabila driver yang dipanggil tidak ditemukan, maka
program akan menampilkan pesan pada consule dengan isi pesan adalah “Pesan Error : java.lang.ClassNotFoundException : com.mysql.jdbc.Driver”.
Penanganan error sangat penting dilakukan karena dapat membantu kita
dalam mengetahui kesalahan-kesalahan yang terjadi dalam menjalankan
program sehingga kita dapat mengatasi kesalahan-kesalahan tersebut.
Berikut ini adalah daftar nama-nama driver dari beberapa database server yang sering digunakan.
Database Server | Nama Driver |
JDBC-ODBC
|
sun.jdbc.odbc.JdbcOdbcDriver
|
MySQL
|
com.mysql.jdbc.Driver
|
PostgreSQL
|
org.postgresql.Driver
|
Microsoft SQLServer
|
com.microsoft.jdbc.sqlserver.SQLServerDriver
|
Oracle
|
oracle.jdbc.driver.OracleDriver
|
IBM DB2
|
COM.ibm.db2.jdbc.app.DB2Driver
|
Membangun Koneksi
Setelah melakukan pemanggilan terhadap driver JDBC, langkah selanjutnya adalah membangun koneksi dengan menggunakan interface Connection.
Object Connection yang dibuat untuk membangun koneksi dengan database
server tidak dengan cara membuat object baru dari interface Connection
melainkan dari class DriverManager dengan menggunakan methode getConnection().
Connection koneksi = DriverManager.getConnection(<argumen>)
Untuk menangani error yang mungkin
terjadi pada proses melakukan koneksi dengan database maka ditambahkan
try-catch. Exception yang akan dihasilkan pada proses ini adalah berupa
SQLException. Adapun cara penulisan listingnya adalah sebagai berikut :
try {
… koneksi database
} catch (SQLException sqle){
… penanganan error koneksi
}
Ada beberapa macam argumen yang berbeda dari methode getConnection() yang dipanggil dari DriverManager, yaitu :
n getConnection(String url)
Pada methode kita hanya memerlukan
argumen URL, sedangkan untuk data user dan password sudah diikutkan
secara langsung pada URL sehingga tidak perlu lagi secara terpisah
mendefinisikan data user dan password.
Adapun penulisan nilai URL dari methode getConnection(String url) adalah sebagai berikut :
jdbc:<DBServer>://[Host][:Port]/<namaDB>?<user=User>&<password=Pasword>
Misalkan kita menggunakan database server berupa MySQL dengan spesifikasi menggunakan host adalah localhost dan port default (3306), nama database adalah Database, nama user adalah adi, dan password adalah purnomo. Maka penulisan URL adalah sebagai berikut :
jdbc:mysql://localhost:3306/Dbase?user=adi&password=pasw
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc:mysql://localhost:3306/Dbase? user=adi&password=pas”;
Connection koneksi = DriverManager.getConnection(url);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
getConnection(String url, Properties info)
Pada methode ini memerlukan URL dan sebuah object Properties. Sebelum menggunakan methode ini, Anda harus melakukan import package berupa java.util.*,
ini dikarenakan object Properties terdapat pada package tersebut.
Object Properties berisikan spesifikasi dari setiap parameter database
misalnya user name, password, autocommit, dan sebagainya.
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc:mysql://localhost:3306/Dbase”;
Properties prop = new java.util.Properties(); // tidak mengimpor kelas
prop.put(“user”,”NamaUser”);
prop.put(“password”,”datapassword”);
Connection koneksi = DriverManager.getConnection(url, prop);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
getConnection(String url, String user, String password)
Pada methode ini memerlukan argumen berupa URL, user name, dan password. Methode ini secara langsung mendefinisikan nilai URL, user name dan password.
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc:mysql://localhost:3306/Dbase”;
String user = “adi”
String password “ternate”
Connection koneksi = DriverManager.getConnection(url, user, password);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
Berikut ini adalah daftar penulisan URL dari beberapa database server yang sering digunakan.
Database Server | Nama URL | Contoh penggunaan |
JDBC-ODBC
|
jdbc:odbc:<NamaDatabase>
|
jdbc:odbc:Dbase
|
MySQL
|
jdbc:mysql://<nmHost>:<port>/<nmDB>
|
jdbc:mysql://localhost:3306/Dbase
|
PostgreSQL
|
jdbc:postgresql://<nmHost>:<port>/<nmDB>
|
jdbc:postgresql://localhost:5432/Dbase
|
Microsoft SQLServer
|
jdbc:microsoft:sqlserver://<nmHost>:<port>; DatabaseName=<namaDatabase>
|
jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=Dbase
|
Oracle
|
jdbc:oracle:thin:@<nmHost>:<port>:<nmDB>
|
jdbc:oracle:thin:@localhost:1521:Dbase
|
IBM DB2
|
jdbc:db2:<NamaDatabase>
|
jdbc:db2:Dbase
|
Membuat Object Statement
JDBC API menyediakan interface yang
berfungsi untuk melakukan proses pengiriman statement SQL yang terdapat
pada package java.sql. Di dalam JDBC API disediakan tiga buah interface
untuk fungsi tersebut yaitu :
Statement
Interface ini dibuat oleh methode Connection.createStatement(). Object Statement digunakan untuk pengiriman statement SQL tanpa parameter.
Statement stat = Connection.createStatement();
PreparedStatement
Interface ini dibuat oleh methode Connection.prepareStatement().
Object PreparedStatement digunakan untuk pengiriman statement SQL
dengan atau tanpa parameter. Dengan object ini, kita dapat menampung
satu atau lebih parameter sebagai argumen input (perameter IN).
Interface ini memiliki performa lebih baik dibandingkan dengan interface
Statement karena dapat menjalankan beberapa proses dalam sekali
pengiriman perintah SQL.
PreparedStatement stat = Connection.prepareStatement();
CallableStatement
Interface ini dibuat oleh methode Connection.prepareCall(). Object CallableStatement digunakan untuk menjalankan store procedure SQL.
CallableStatement stat = Connection.prepareCall();
Melakukan Eksekusi Perintah SQL
Setelah kita memiliki object statement,
kita dapat menggunakannya untuk melakukan pengiriman perintah SQL dan
mengeksekusinya. Methode eksekusi yang digunakan untuk perintah SQL
terbagi menjadi dua bagian yaitu untuk perintah SELECT methode eksekusi
yang digunakan adalah executeQery() dengan nilai kembaliannya adalah
ResultSet, dan untuk perintah INSERT, UPDATE, DELETE methode eksekusi
yang digunakan adalah executeUpdate().
Berikut ini adalah contoh melakukan eksekusi perintah SQL dan mengambil hasilnya (ResultSet) dengan menggunakan perintah SELECT.
String sql = “SELECT kode, nama, alamat, kelas FROM dataSiswa”;
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
String kode = set.getString(“kode”);
String nama = set.getString(“nama”);
String alamat = set.getString(“alamat”);
String kelas = set.getString(“kelas”);
}
Berikut ini adalah contoh melakukan eksekusi perintah SQL dengan menggunakan perintah DELETE.
String sql = “DELETE FROM data_siswa WHERE kode = “1234”;
PreparedStatement stat = konek.prepareStatement(sql);
stat.executeUpdate();
Menutup Koneksi
Penutupan terhadap koneksi database
perlu dilakukan agar sumber daya yang digunakan oleh object Connection
dapat digunakan lagi oleh proses atau program yang lain.
Sebelum kita menutup koneksi database, kita perlu melepas object Statement dengan kode sebagai berikut :
statement.close();
Untuk menutup koneksi dengan database server dapat kita lakukan dengan kode sebagai berikut :
connection.close();
<-->
<-->
0 komentar:
Posting Komentar
Please Give Your Feedback Or Message.
Thank You!!?