Media Pengembangan Web & App | by APPKEY

Pembuatan Website Backend Mengenal Hibernate, Framework Backend Java Terpopuler

Mengenal Hibernate, Framework Backend Java Terpopuler

-

Pastinya Anda sudah tidak asing lagi dengan framework, bukan? Framework adalah software yang bisa memudahkan Anda dalam bekerja mengembangkan sebuah website. Ada banyak tipe framework yang bisa digunakan untuk mengelola sistem backend website. Setiap tipe framework pun dibedakan berdasarkan bahasa pemrograman yang digunakan saat membangun website.

Hibernate adalah salah satunya. Hibernate adalah kabar gembira untuk Anda sang programmer spesialis coding bahasa Java. Kira-kira, seperti apa cara kerja Java framework Hibernate untuk mengelola backend? Yuk cari tahu jawabannya pada artikel edisi kali ini seputar Hibernate framework. Selamat membaca!

Apa Itu Hibernate Java Framework?

hibernate-framework

Jika Laravel dan Yii adalah framework jagoan bahasa PHP, maka bahasa pemrograman Java juga mempunyai framework unggulannya sendiri. Hibernate adalah Java web framework tersebut. Hibernate adalah software yang dapat digunakan untuk memetakan aneka model domain berorientasi objek ke dalam database relasional. Sebagian user mengenal framework ini dengan nama lainnya. Adapun nama lain Hibernate adalah Hibernate ORM.

Kabar gembiranya, Hibernate adalah framework yang gratis. Distribusi software Hibernate dilakukan dalam naungan GNU Lesser General Public License 2.1. Sosok pengembang Java framework Hibernate adalah Red Hat, dan peluncuran pertama Hibernate adalah pada tahun 2001 silam.

Sampai hari ini, terdapat beberapa versi dari framework Hibernate yang dapat Anda gunakan. November 2020 kemarin pun menjadi momen penting bagi framework ini karena pada saat itulah terjadi perilisan versi terbaru dari Hibernate. Sekarang, Anda bisa menikmati versi Hibernate paling canggih dan termutakhir yaitu versi 5.4.23. Untuk mendapatkan Hibernate, Anda bisa mengaksesnya langsung dari website resmi mereka: www.hibernate.org 

Artikel Terkait  Arti Hosting | Apa yang Dimaksud Hosting?

Software Hibernate mempunyai komponen penyusun yang cukup kompleks di dalamnya. Untuk melancarkan pekerjaan Anda dengan Hibernate, maka Anda wajib mengetahui komponen-komponen tersebut. Adapun komponen penting dari Hibernate adalah:

  • Hibernate EntityManager: berfungsi sebagai wrapper untuk proses implementasi solusi persistensi dari JSR 317 Java Persistence API.
  • Hibernate ORM / Hibernate Core: software untuk melakukan pemetaan terhadap objek relasional di lingkungan programming Java.
  • Hibernate Search: digunakan untuk proses integrasi fungsionalitas library dari Apache Lucene.
  • Hibernate Annotations: adalah metadata yang berfungsi untuk mengatur transformasi data dari model orientasi objek ke model database relasional menurut JSR 317 JPA 2.
  • NHibernate: digunakan untuk memetakan objek relasional di .NET Framework.
  • Hibernate Envers: dipakai untuk membuat dan mengaudit class.
  • Hibernate Shards: untuk melakukan partisi horizontal bagi sejumlah database relasional.
  • Hibernate Validator: merupakan bentuk implementasi JSR 303 Bean Validation.
  • Hibernate OGM (Object Grid Mapper): adalah ekstensi yang digunakan untuk menyimpan data di NoSQL.
  • Hibernate Metamodel Generator: prosesor anotasi untuk menciptakan metamodel statis class JSR 317 JPA 2. Dalam proses kerja menciptakan kelas tersebut, komponen ini memakai JSR 269 Pluggable Annotation Processing API.
  • Hibernate Tools: tools rangkaian function Ant dan plugin Eclipse dalam JBoss Developer Studio.

Apa Kegunaan Hibernate?

Apa saja kegunaan Hibernate? Fitur dan kegunaan utama Hibernate adalah untuk melakukan pemetaan tabel database dan tipe data SQL dari class-class pada Java.

Khusus untuk pemetaan Java ke tabel database, proses ini berlangsung dengan implementasi Anotasi Java dan konfigurasi file XML. Canggihnya lagi, Hibernate adalah framework yang bisa memelihara skema database hanya dengan memakai file XML. Namun kebanyakan developer memilih melakukan pemetaan Java di Hibernate dengan memakai anotasi karena dinilai lebih ringkas ketimbang XML.

Selain itu, Hibernate juga bisa menjalankan tugas-tugas CRUD lainnya, seperti mengambil dan meminta data, menyediakan template untuk operasi data (update, insert, delete, select), dan melakukan ORM (object relational mapping). Berbeda pula dengan framework lain, Hibernate adalah framework yang tidak memerlukan compile ulang serta hanya melakukan sedikit konfigurasi. Konfigurasi yang dilakukan pada Hibernate adalah pada driver class dan dialect database saja.

Artikel Terkait  Panduan Belajar 4 Method Array JavaScript untuk Pemula

Bagaimana Cara Memetakan Data dengan Hibernate?

cara-kerja-hibernate

Selamat, Anda sudah mengenal apa itu Hibernate beserta kegunaannya! Kali ini, kita bisa melanjutkan dengan melihat bagaimana cara memetakan data dengan Hibernate memakai anotasi Java. Berikut ini adalah cara-caranya:

1: Membuat Class Entitas

Pertama, buatlah class entitas terlebih dahulu. Class entitas merupakan definisi mapping class yang akan diubah oleh Hibernate menjadi tabel database. Biasanya, 1 class hanya akan merepresentasikan 1 tabel. Untuk memudahkan proses pembuatan class entitas ini, Anda bisa membuat design dengan class diagram agar memudahkan melihat relasi antar class. Contoh coding membuat class entitas adalah:

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author od3ng
*/
@Entity
@Table(name = "Siswa")
public class Siswa implements Serializable {
@Id
@Column(name = "ABSEN", nullable = false, length = 4, unique = true)
private String absen;
@Column(name = "NAMA", nullable = false, length = 30)
private String nama;
@Column(name = "NILAI", nullable = false, length = 2)
private float nilai;
@Column(name = "KELAS", nullable = false, length = 20)
private String kelas;
public Siswa() {
}

public Siswa(String absen, String nama, float nilai, String kelas) {
this.absen = absen;
this.nama = nama;
this.nilai = nilai;
this.kelas = kelas;
}
public String getAbsen() {
return absen;
}
public void setAbsen(String absen) {
this.absen = absen;
}
public String getNama() {
return nama;
}

public void setNama(String nama) {
this.nama = nama;
}
public float getNilai() {
return nilai;
}
public void setNilai(float nilai) {
this.nilai = nilai;
}
public String getKelas() {
return kelas;
}

public void setKelas(String kelas) {
this.kelas = kelas;
}
@Override
public String toString() {
return "Siswa{" + "absen=" + absen + ", nama=" + nama + ", nilai=" + nilai + ", kelas=" + kelas + '}';
}
}

Artikel Terkait  Cara Beli Domain dan Registrasi Domain dengan Mudah

2: Membuat Object Session Factory

Setelah membuat class entitas, kini Anda bisa melanjutkan dengan membuat object session dari object configuration. Fungsi dari object session adalah untuk melakukan koneksi ke database. Pun pembuatan object session factory pada Hibernate dilakukan memakai class HibernateUtil dengan contoh coding:

public class HibernateUtil {
private static final SessionFactory sessionFactory;
private static SiswaDao siswaDao;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
Logger.getLogger(HibernateUtil.class.getName()).log(Level.SEVERE, null, ex);
throw new ExceptionInInitializerError(ex);
}
}

public static SiswaDao getSiswaDao() {
if (siswaDao == null) {
siswaDao = new SiswaImpl(getSessionFactory().openSession());
}
return siswaDao;
}
private static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

3: Membuat Data Access Object

Tahap ketiga adalah membuat data access object (DAO) agar data low level bisa terpisah dari bisnis proses pada aplikasi. Contoh coding:

public interface SiswaDao {
public boolean insert(Siswa m);
public boolean update(Siswa m);
public boolean delete(Siswa m);
public Siswa getSiswaByAbsen(String absen);
public List<Siswa> getAllSiswa();
}

Dari contoh di atas, SiswaDao adalah interface yang memiliki semua operasi untuk class entitas Siswa. Setiap method DAO harus mempunyai nilai balik agar bisa menunjukkan status operasi ketika dipanggil. Untuk memberikan nilai pada method DAO, Anda bisa menggunakan contoh coding:

public class SiswaImpl implements SiswaDao {
private final Session session;
public SiswaImpl(Session session) {
this.session = session;
}
@Override
public boolean insert(Siswa m) {
try {
session.beginTransaction();
String nim = (String) session.save(m);
session.getTransaction().commit();
return nim != null;
} catch (Exception e) {
Logger.getLogger(SiswaImpl.class.getName()).log(Level.SEVERE, null, e);
session.getTransaction().rollback();
} finally {
session.close();
}
return false;
}

@Override
public boolean update(Siswa m) {
try {
session.beginTransaction();
session.update(m);
session.getTransaction().commit();
return true;
} catch (Exception e) {
Logger.getLogger(SiswaImpl.class.getName()).log(Level.SEVERE, null, e);
session.getTransaction().rollback();
} finally {
session.close();
}
return false;
}

@Override
public boolean delete(Siswa m) {
try {
session.beginTransaction();
session.delete(m);
session.getTransaction().commit();
return true;
} catch (Exception e) {
Logger.getLogger(SiswaImpl.class.getName()).log(Level.SEVERE, null, e);
session.getTransaction().rollback();
} finally {
session.close();
}
return false;
}

@Override
public Siswa getSiswaByAbsen(String absen) {
try {
Query query = session.createQuery("FROM Siswa m WHERE m.absen=:absen");
query.setParameter("absen", absen);
return (Siswa) query.uniqueResult();
} catch (Exception e) {
Logger.getLogger(SiswaImpl.class.getName()).log(Level.SEVERE, null, e);
} finally {
session.close();
}
return null;
}

@Override
public List<Siswa> getAllSiswa() {
try {
return session.createQuery("FROM Siswa", Siswa.class).list();
} catch (Exception e) {
Logger.getLogger(SiswaImpl.class.getName()).log(Level.SEVERE, null, e);
} finally {
session.close();
}
return null;
}
}

4: Membuat Service

Tahap keempat adalah membuat service. Service juga merupakan interface yang berisi nilai yang sama dengan method SiswaDao. Contoh coding pembuatan service:

public interface SiswaService {
public boolean insert(Siswa m);
public boolean update(Siswa m);
public boolean delete(Siswa m);
public Siswa getSiswaByAbsen(String absen);
public List<Siswa> getAllSiswa();
}

Selanjutnya, interface SiswaService akan diimplementasikan ke class SiswaServiceImpl. Interface inilah nantinya yang akan digunakan oleh aplikasi utama, sehingga hasilnya, bisnis proses aplikasi terpisah total dari data-data yang bersifat low level. Contoh coding untuk mengimplementasikan interface SiswaService adalah:

public class SiswaServiceImpl implements SiswaService{
private final SiswaDao dao;
public SiswaServiceImpl(SiswaDao dao) {
this.dao = dao;
}
@Override
public boolean insert(Siswa m) {
return dao.insert(m);
}
@Override
public boolean update(Siswa m) {
return dao.update(m);
}

@Override
public boolean delete(Siswa m) {
return dao.delete(m);
}
@Override
public Mahasiswa getSiswaByAbsen(String absen) {
return dao.getSiswaByAbsen(absen);
}
@Override
public List<Siswa> getAllSiswa() {
return dao.getAllSiswa();
}
}

5: Melakukan Konfigurasi Hibernate

Terakhir adalah melakukan konfigurasi Hibernate. Seperti yang sempat disinggung di bagian awal sebelumnya, konfigurasi Hibernate bisa dilakukan memakai file XML. File XML sudah lengkap berisi dialect database, konfigurasi database, class diver, class-class yang dimapping, dan seterusnya. Anda tinggal melakukan konfigurasi Hibernate sebagai langkah terakhir dengan contoh coding konfigurasi:

Artikel Terkait  Membuat Hosting Sendiri dan Domain Sendiri

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db?useLegacyDatetimeCode=false&serverTimezone=UTC</property>
<property name="hibernate.show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.connection.username">root</property>
<mapping class="com.odeng.maven.crud.hibernate.entitas.Siswa"/>
</session-factory>
</hibernate-configuration>

Keterangan tambahan:

  • MySQL5: dialect database yang digunakan pada contoh. Jenis-jenis dialect database bisa berbeda-beda tergantung jenis database yang dipakai.
  • auto: menjalankan proses pembuatan tabel otomatis di Hibernate.
  • Nilai drop: untuk menghapus tabel.
  • Nilai create-drop: melakukan drop tabel saat session factory di-shutdown oleh user
  • Nilai create-only: untuk membuat tabel baru tanpa mengecek tabel yang hendak dibuat sudah ada atau belum.
  • Nilai create: membuat tabel, namun kalau tabel yang dibuat sudah ada maka tabel akan didrop.
  • Nilai update: membuat tabel jika belum ada dan mengupdate tabel jika terjadi perubahan struktur.
  • Nilai validate: bertugas untuk memvalidasi struktur tabel database.

Demikianlah pembahasan artikel edisi kali ini tentang Java web framework Hibernate. Tertarikkah Anda untuk mencoba Java web framework Hibernate untuk ngoding backend website? Terima kasih sudah mengikuti artikel edisi kali ini, semoga ilmunya bermanfaat ya! Jangan lupa juga untuk mengikuti media sosial dan website Appkey.id agar tak ketinggalan informasi artikel terbaru seputar dunia IT lainnya. Sayonara!


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Rekomendasi 10 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Proses Komunikasi: Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Pengertian Internet & Dampak Positif dan Negatif Internet

Internet mungkin bukan sesuatu yang asing lagi, sebab semua kalangan pasti tahu apa itu internet. Hanya saja jika ditanya...

Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

Domain Google? Apa Bedanya Dengan Domain Biasa?

Saat memutuskan untuk membuat website menjadi salah satu bentuk media digital marketing Anda dalam bersaing di zaman digital ini,...

7 Aplikasi Membuat Aplikasi Android Secara Offline

Aplikasi membuat aplikasi android saat ini banyak dicari penekun IT untuk membuat aplikasi Android secara offline tanpa harus menggunakan...

10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya