[Java] Implementasi Embedded Database dengan H2

Embedded Database adalah database management system (DBMS) yang tertanam atau terintegrasi di dalam program, hal ini membuat program kita nantinya bisa lebih portable dari komputer satu ke komputer yang lain atau OS satu ke OS yang lain, tanpa perlu konfigurasi database terlebih dahulu. Hal ini biasanya di lakukan ketika kita memberikan program kita kepada user yang tidak tahu menahu perihal setting database sebelum program berjalan, salah satu cara mengatasi masalah itu adalah dengan memakai Embedded Database. Ada banyak aspek mengapa orang memilih Embedded database, tapi kali ini saya tidak akan membahas masalah tersebut.

Sebenarnya ada banyak embedded database baik yang gratis maupun berbayar, seperti HSQLDB, Elevate DB, Sybase’s Advantage Database Server dan masih banyak lagi. Tapi dalam contoh kali ini, saya menggunakan embedded database H2, Silahkan download terlebih dahulu dari websitenya lalu install di komputer anda, Jika sudah terinstall, masuk ke H2 Console yang kurang lebih tampilannya seperti ini :

Sekarang perhatikan pada bagian JDBC URL, Username dan Password saja. Pada URL, String “~” menunjukan user.dir pada komputer kita, biasanya terletak di C:\Documents and Settings\[namauser]. Bagi mereka yang terbiasa menggunakan DBMS MySql, biasanya satu username dan password untuk banyak database, tapi di H2, kita menggunakan satu username dan password untuk satu database, kita bisa memasukan username dan password sesuka kita, asal username tersebut belum terdaftar sebelumnya, jika sudah menentukan, klik tombol Connect.

Setelah selesai dalam registrasi atau login, kita akan masuk ke halaman admin, jika kita lihat dengan seksama pada url, menurut saya H2 menggunakan Struts2 sebagai web framework untuk membangun aplikasi web untuk admin tersebut. Pada halaman admin tersebut ada Text Area yang digunakan untuk menulis sql, saya akan membuat contoh membuat table mahasiswa yang hanya berisi nim dan nama, kurang lebih seperti ini :

Setelah itu buatlah program kecil dengan menggunakan java, boleh menggunakan netbeans, eclipse, JCreator atau jika suka hardcore silahkan menggunakan notepad, it’s ok :P. Buatlah class Koneksi agar aplikasi kita bisa tersambung dengan H2, kurang lebih seperti ini :

package com.kusandriadi.koneksi;
 
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JOptionPane;
 
public class Koneksi {
 
    private String url = "jdbc:h2:./db/TestH2;IFEXISTS=TRUE";
 
    private String username = "root";
 
    private String password = "27111989";
 
    public Connection KoneksiDB(){
        try {
            Class.forName("org.h2.Driver");
            Connection con = DriverManager.getConnection(url, username, password);
            return con;
        }catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "ERROR : " + e.getMessage());
            return null;
        }catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR : " + e.getMessage());
            return null;
        }catch (Exception e) {
            JOptionPane.showMessageDialog(null, "ERROR : " + e.getMessage());
            return null;
        }
    }
}

Pada variable url diatas, kita menggunakan ;IFEXISTS=TRUE agar H2 tidak membuat database baru secara otomatis. lalu URL ./db/TestH2 maksudnya adalah saya menaruh file TestH2.db pada folder db, yang mana folder tersebut saya taruh sejajar dengan folder src yang biasa ditemukan di Netbeans atau eclipse. Setelah itu kita hanya perlu membuat “secercah” kode untuk melakukan proses input, setelah anda berhasil melakukan proses manipulasi ini, simple saja :

try {
    Koneksi koneksi = new Koneksi();
    Connection con = koneksi.KoneksiDB();
    String sql = "insert into mahasiswa values ("+ txtNim.getText() +",'"+ txtNama.getText() +")";
    PreparedStatement preparedStatement = con.prepareStatement(sql);
    preparedStatement.executeUpdate();
    System.out.println("data berhasil disimpan");
    con.close();
} catch (Exception e) {
    e.printStackTrace();
}

Database H2 ini berbentuk file.,Jadi kita bisa memindahkan program yang kita buat ke tempat lain tanpa konfigurasi database dan membuat table lagi karena sudah tertanam dalam file tersebut. Apakah langkah-langkah diatas sudah diikuti dengan baik? nah sekarang silahkan lakukan proses input…

and boom!! Congrats, You’ve Succeed insert data! 😀

Regards

Sumber :

  1. Wikipedia – http://en.wikipedia.org/wiki/Embedded_database
  2. H2 – http://www.h2database.com/

5 thoughts on “[Java] Implementasi Embedded Database dengan H2”

  1. Klu aplikasi sudah di jadikan jar kuk g bisa muncul y..?klu netbeans hidup baru bisa keluar programnya..setting nya apa lagi y mas..?

    [Reply]

    Kus Andriadi Reply:

    ini pasti masalahnya di path, coba jalanin jar nya lewat command prompt supaya lebih yakin dan kelihatan pesan error nya 🙂

    [Reply]

Leave a Reply

Your email address will not be published. Required fields are marked *