Pada tutorial ini, saya akan menjelaskan contoh CRUD(Create, Read, Update dan Delete) di
Hibernate Java. Sebenarnya apa itu Hibernate? Kalau menurut saya Hibernate itu ialah Framework
yang bersifat ORM(Object Relational Mapping) untuk melakukan koneksi ke Database. "Apa cuma
untuk koneksi ke Database saja?" tidak. Anda bisa melakukan semua operasi SQL lainnya. Dengan
kata lain, bisa Anda katakan bahwa Hibernate bisa menggantikan operasi JDBC. Untuk
mempermudah pemahaman Anda, berikut contoh untuk melakukan koneksi Database.
try
{
Class.forName(driver);
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/"+nama_database,
user, pass);
return conn;
}catch(ClassNotFoundException nfe)
{
nfe.printStackTrace();
return null;
}catch(SQLException se)
{
se.printStackTrace();
return null;
}
Gimana? bisa Anda lihat bahwa dengan menggunakan Hibernate Anda tidak perlu mendeklarasikan
semua field Database-nya.
OK, untuk kelebihan dan kekurangan Hibernate itu tidak akan saya jelaskan di sini. Di Internet,
sudah banyak yang membahasnya. Pada tutorial ini, saya beranggapan bahwa pembaca sudah
menguasai JDBC sehingga pembaca tidak sulit untuk memahami penjelasan syntax - syntax yang ada.
INSTALL HIBERNATE
Untuk bagian tahap instalasi, di sini saya menggunakan IDE Eclipse J2EE Juno. Untuk Anda yang
menggunakan IDE yang berbeda dengan saya bisa cari tutorialnya sendiri tentang cara instalasinya.
OK, untuk instalasinya silakan ikuti langkah berikut :
MEMBUAT DATABASE
Sebelum memulai coding, ada beberapa hal yang harus kita buat terlebih dahulu. Yakni, Database
dengan nama "perpustakaan" dan tabel dengan nama "users" dan berikut field - field untuk table
users.
Setelah Anda buat Database dengan tabelnya maka, langkah berikutnya ialah mulai membuat
Coding CRUD Hibernate di Java.
INISIALISASI AWAL
Langkah pertama, dalam membuat CRUD di Hibernate Java ialah membuat project baru dengan
nama "JagoCoding - Belajar Hibernate". Setelah buat project, kemudian buat file class baru
dengan nama "Users" dan package "org.jaco.hibernate".
Oya, jangan lupa import library yang dibutuhkan untuk Hibernate. Berikut ialah beberapa library
yang saya import.
Nah, Setelah itu, isi coding berikut kedalam file class "Users"
package org.jaco.hibernate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "users")
public class Users
{
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
int id;
@Column(name = "nama")
String nama;
@Override
public String toString()
{
return "ID : "+id+" Nama : "+nama;
}
Keterangan :
● Maksud dari @ atau disebut Anotasi merupakan cara menghubungkan antara file xml dengan java.
● @Id berfungsi untuk menyatakan bahwa variable tersebut sebagai field primary key di Table
Database
● @GenerationType berfungsi untuk menyatakan bahwa field primary key dibuat dengan cara
Auto_Increment
● @Column berfungsi untuk menyatakan bahwa ini merupakan field yang dituju pada column yang
ada di table.
Setelah itu, buat file konfigurasi Hibernate(Hibernate Configuration File). Caranya ialah sebagai
berikut:
1. Pilih project yang baru Anda buat tadi. Dan buat Hibernate Configuration File nya di direktori src.
2. Klik kanan pada direktori src dan pilih New > Hibernate Configuration File(cfg.xml) atau
bisa juga dengan cara tekan tombol Ctrl + N dan pilih Hibernate > Hibernate Configuration
File(cfg.xml)
3. Setelah itu biarkan saja nama file tetap "hibernate.cfg.xml" dan Next.
4. Kemudian, sesuaikan Hibernate Configuration File yang Anda buat sesuai dengan gambar berikut.
5. Kemudian, pilih Finish.
Setelah itu, buka file hibernate.cfg.xml yang barusan Anda buat tadi dan pilih tab Source dibagian
bawah. dan kemudian ubah isi file nya menjadi seperti berikut.
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property
name="hibernate.connection.password">password_database_anda</property>
<property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/nama_database<
/property>
<property name="hibernate.connection.username">root</property>
<property
name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="org.jaco.hibernate.Users" />
</session-factory>
</hibernate-configuration>
Sekarang, buat 1 file xml lagi untuk Hibernate XML Mapping File(hbm.xml). Caranya, hampir sama
seperti buat Hibernate Configuration File namun, pilih yang Hibernate XML Mapping
File(hbm.xml)
1. Pertama, klik kanan pada direktori src dan pilih Hibernate XML Mapping File(hbm.xml)
3. Dan pilih class yang tersedia yakni, class Users. Kemudian, pilih Finish.
Setelah itu, buat 1 file class yakni class Main dan letakkan di package yang sama dengan class
Users. Setelah itu ikuti langkah - langkah berikut secara bertahap untuk memulai coding CRUD di
Hibernate.
CREATE(INSERT)
package org.jaco.hibernate;
import java.util.Scanner;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
switch(pilih)
{
case 1 : // Create(Insert SQL)
// set nilai untuk
objek user
// user.setID(null)
nggak perlu dibuat karena, Auto_Increment
user.setNama("Yudi");
try
{
// Mulai
Koneksi
s.beginTransaction();
// Simpan
Objek User ke Session
s.save(user);
// execute
Session ke MySQL
s.getTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
}
break;
default :
System.out.println("Pilihan tidak tersedia");
}
}
Kemudian, jalankan file Main.class. Jika output seperti berikut berarti, Anda berhasil melakukan
Koneksi Database dan Insert Query. Dan coba cek di tabel database apakah eksekusi query berhasil
atau tidak.
READ(SELECT)
break;
try
{
session.beginTransaction();
Query query = session.createQuery("from
org.jaco.hibernate.Users");
list = query.list();
return list;
}catch(Exception e)
{
e.printStackTrace();
return null;
}
}
UPDATE
break;
Jalankan file Main.class, input 3 dan cek Outputnya. Dan cek juga hasilnya di table database.
DELETE(DELETE SQL)
Untuk yang terakhir Delete, tambahkan coding berikut ke dalam file Main.class
break;
Jalankan file Main.class, input 4 dan lihat outputnya. Dan jangan lupa cek di tabel database apakah
record berhasil dihapus.
Dan berikut ialah source code lengkap dari tiap file - file yang ada di tutorial ini.
Users.class
package org.jaco.hibernate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "users")
public class Users
{
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
int id;
@Column(name = "nama")
String nama;
@Override
public String toString()
{
return "ID : "+id+" Nama : "+nama;
}
hibernate.cfg.xml
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property
name="hibernate.connection.password">nasigoreng</property>
<property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/perpustakaan</
property>
<property name="hibernate.connection.username">root</property>
<property
name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="org.jaco.hibernate.Users" />
</session-factory>
</hibernate-configuration>
Users.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Oct 17, 2015 6:42:35 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="org.jaco.hibernate.Users" table="USERS">
<id name="id" type="int" access="field">
<column name="ID" />
<generator class="assigned" />
</id>
<property name="nama" type="java.lang.String">
<column name="NAMA" />
</property>
</class>
</hibernate-mapping>
Main.class
package org.jaco.hibernate;
import java.util.List;
import java.util.Scanner;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
switch(pilih)
{
case 1 : // Create(Insert SQL)
// set nilai untuk
objek user
// user.setID(null)
nggak perlu dibuat karena, Auto_Increment
user.setNama("Yudi");
try
{
// Mulai
Koneksi
s.beginTransaction();
// Simpan
Objek User ke Session
s.save(user);
// execute
Session ke MySQL
s.getTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
}
break;
System.out.println(us);
}
break;
s.getTransaction().commit();
break;
s.getTransaction().commit();
break;
default :
System.out.println("Pilihan tidak tersedia");
}
}
try
{
session.beginTransaction();
Query query = session.createQuery("from
org.jaco.hibernate.Users");
list = query.list();
return list;
}catch(Exception e)
{
e.printStackTrace();
return null;
}
}
Tentang Penulis
Yudi Setiawan
Saat ini aktif sebagai Mahasiswa di salah satu Universitas di kota Medan
dengan mengambil bidang Fakultas Teknik dan Ilmu Komputer. Sangat
senang dengan bahasa pemrograman Java dan Android.