08 February 2009

Mengakses Database Ms Access dengan Java

Microsoft Access adalah salah satu software database yang sampai saat ini masih banyak digunakan. Ringannya database ini menjadi keuntungan tersendiri bagi penggunanya untuk memilih database jenis ini menjadi media penyimpanan data. Microsoft Access juga mempunyai fitur yang banyak dan bermanfaat. Dari mulai pembuatan table, form, queries, report bahkan macro file, semuanya dibuat begitu mudah oleh Microsoft, sehingga sering kali Microsoft Access ini banyak digunakan orang untuk membuat sebuah aplikasi yang berbasis pada penyimpanan data dalam database Microsoft Access itu sendiri.

Kita tidak akan panjang lebar membahas Microsoft Access disini. Pada kesempatan kali ini kita akan mencoba mengakses Database yang dibuat dengan Microsoft Access dengan menggunakan bahasa pemrograman kecintaan kita semua yaitu Java.

Langsung saja kita susun skenario untuk pembahasan kita kali ini:

  1. Buat sebuah database dengan nama Java_MsAccess dengan menggunakan Microsoft Access.

  2. Buat sebuah tabel dalam database tersebut dengan nama tabel tblCustomer dengan field-field sbb:

  • Nama Field : CustomerID, type Number(single).

  • Nama Field : CustomerName, type Text(50).

  • Nama Field : CustomerAddress, type Text(250).

  • Nama Field : CustomerPhone, type Text(20).

  1. Isi table tersebut dengan data-data yang diperlukan.

  2. Buat Data Source DSN untuk database tersebut.

  3. Buat Program Java untuk mengakses Database tersebut.

Untuk langkah 1 sampai dengan langkah 4, disini kita akan melampirkan gambar saja, karena saya percaya kita semua mampu membuat langkah-langkah tersebut tanpa petunjuk tertulis disini.

Ok, untuk langkah 1, dibawah ini kira-kira screen capture-nya :

Dan untuk langkah 2, kira-kira begini gambarnya:

Sementara untuk langkah 3, kira-kira begini screen capturenya :

Untuk langkah ke-4, baiklah agar kita lebih paham bagaimana cara membuat Data Source untuk database ini mari kita jabarkan satu demi satu.

  • Klik start Control Panel Administrative Tools Data Sources(ODBC)

  • Kemudian pada jendela ODBC Database Administrator, klik tombol Add dan kemudian pilih Driver do Microsoft Access (*.mdb) kemudian klik tombol Finish.

  • Kemudian pada jendela ODBC Microsoft Access Setup beri nama data source tersebut dengan nama JavaMsAccess, dan kemudian pilih database dengan mengklik tombol Select, dan cari dimana database yang baru saja kita buat tadi kita simpan. Seperti ini kira-kira gambarnya :

Dengan demikian Data Source DSN kita telah terbuat dengan nama JavaMsAccess. Sekarang tinggallah saat yang paling kita tunggu, yaitu membuat aplikasi Javanya. Ok, begini kira-kira flow proses aplikasi program Java kita.

  1. Pilih dan inisialisasi driver untuk mengakses database ODBC ini.

  2. Buat koneksi database ke Data Source ODBC tersebut.

  3. Buat Statement untuk SQL Queries.

  4. Ambil hasil dari eksekusi Query Statement ke dalam ResultSet

  5. Printout ResultSet tersebut.

Dari skenario tersebut mari kita implementasikan dalam kode-kode Java. Perhatikan source code Java berikut ini:

package org.mojo.blog.Java_depth.aboutMsOffice;

import Java.sql.*;

/**
* Created by IntelliJ IDEA.<br>
* User: Mojo<br>
* Date: 08 Feb 09<br>
* Time: 22:30:08<p>
*/
public class MsAccessJava {
private static String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String url = "jdbc:odbc:JavaMsAccess";
public static void main(String[] args) {
String sql ="SELECT * from tblCustomer";
try {
Class.forName(driverName);
Connection conn = DriverManager.getConnection(url);
System.out.println("Connection Established..");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
System.out.println("+------------- Detail Customer ----------------------+");
System.out.println("Customer ID : "+ rs.getInt(1));
System.out.println("Customer Name : "+ rs.getString(2));
System.out.println("Customer Address : "+ rs.getString(3));
System.out.println("Customer Phone : "+ rs.getString(4));
System.out.println("+----------------------------------------------------+");
System.out.println("\n");
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}

Mari kita bahas satu persatu kode-kode tersebut di atas. Baris pertama adalah baris dimana file Java ini berada dalam packagenya. Sementara baris ketiga adalah baris dimana semua kelas yang ada dalam library Java.sql kita import. Kemudian di dalam program tersebut kita bisa melihat ada dua variabel statis yang bertipe String di deklarasikan yaitu :

………..
private static String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String url = "jdbc:odbc:JavaMsAccess";
………..

Variabel pertama adalah nama Driver yang kita gunakan untuk mengakses Data Source ODBC, sementara untuk variabel kedua adalah url dari Data Source yang memang ingin kita akses, ingat nama Data Source ini harus sama dengan yang telah kita buat sebelumnya yaitu : JavaMsAccess.

Kemudian mari kita lihat kode-kode yang ada dalam method utama (main method) pada program ini. Baris pertama dalam method utama program ini adalah baris dimana kita mendefinisikan Query yang akan kita pakai untuk mengakses Database Microsoft Access ini. Kemudian kita membuat blok try-catch, dimana dalam blok inilah semua proses utama pengaksesan ke database di lakukan. Pertama-tama dalam blok ini kita lakukan inisialisasi driver yang telah kita definisikan pada header program ini. Kemudian kita melakukan koneksi dan memprint-out hasil koneksi tersebut.

…….
Class.forName(driverName);
Connection conn = DriverManager.getConnection(url);
System.out.println("Connection Established..");
……….

Langkah selanjutnya, berturut-turut kita lakukan, membuat statement dan mengeksekusi SQL Statement yang telah kita definisikan sebelumnya.

…….
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
……….

Kemudian kita print-out dengan cara me-looping hasil dari statement tersebut yang sebelumnya telah kita masukkan dalam variabel rs bertipe ResultSet

…….
while (rs.next()){
System.out.println("+----Detail Customer ------------------+");
System.out.println("Customer ID : "+ rs.getInt(1));
System.out.println("Customer Name : "+ rs.getString(2));
System.out.println("Customer Address : "+ rs.getString(3));
System.out.println("Customer Phone : "+ rs.getString(4));
System.out.println("+--------------------------------------+");
System.out.println("\n");
}
…….

Kemudian kita menambahkan beberapa catch untuk mencegah hal-hal yang tidak kita inginkan, dan bisa juga cath ini kita buat untuk mengetahui masalah apa yang membuat program kita tidak berjalan dengan semestinya.

Jika program tersebut dijalankan maka seharusnya akan keluar hasil seperti gambar berikut ini – Saya mengeksekusinya dalam IDE favorite saya, IntelliJidea 7.0.4

Sampai disini percobaan kecil kita telah selesai. Silahkan mencoba dan mengembangkannya sesuai dengan kebutuhan dan keinginan anda.


Semoga Bermanfaat,

Menteng, 09th Februari, 2009

josescalia

8 comments:

Anonymous said...

jo pa kabar,,gw mo curhat nie masalah java,,cuma gw ga tau hubungin lu lewat mana,, cuz gw jarang juga ke warnet...pengen bgt banyak nanya gw.heheheh
ajis ::: temennya lukman

Anonymous said...

oia email gw AbdAzs@yahoo.com

JoseScalia said...

[Quote]
jo pa kabar,,gw mo curhat nie masalah java,,cuma gw ga tau hubungin lu lewat mana,, cuz gw jarang juga ke warnet...pengen bgt banyak nanya gw.heheheh
ajis ::: temennya lukman

[/Quote]

Curhat kok masalah Java..!! :P
Kalo curhat tuh masalah cewek aja cuy...
Ya gue inget..lo ajis temene bini gue kan...?
Lo bisa dateng ke rumah kok, asal hari minggu yak...?

salam

josescalia

Muthia said...

bos, aku ngopi artikelnya boleh kan?
makasih bos.

JoseScalia said...

[qoute]bos, aku ngopi artikelnya boleh kan?
makasih bos.[/qoute]

Silahkan Om...
Tapi please jangan lupa Pingback ke Blog ini yah..kalo ga tar banyak yg bilang plagiat lho..he..he..he..

Thnks

josescalia

Anonymous said...

IntelliJ kan bayar wah bakalan mbajak lagi dong

nice post ...!!!
kyaknya artikel MYsql dan Acsess nya perlu dibanyakin deh demen tuh sama dua perkakas itu

Akbar said...

Om yang pinter java hehe(amiiin..), baru bbrp kali aku visit blog ini lumayan byk yg aku dapet insyaallah, aku msh awam bgt sama java..aku mau tanya nih, kl kita bikin program form registrasi yang meng-insert data ke access sekaligus bs untuk menampilkan data yg udh di-insert itu(seperti yg dibahas di post ini) gmn ya codingnya?bikin 2 program (khusus insert&khusus menampilkan)apa bs 1 program aja?kl hrs bikin 2 program, gmn gabungnya?sebelumnya makasih byk nih om...
keep it up om..very nice!!

Anonymous said...

Om, di judul Mengakses Database Ms Access dengan Java di java source file nya itu di baris pertama masih belum paham, tolong dijelasin..
makasi