Java: Belajar Hibernate ORM menggunakan Eclipse dan Maven

Apa itu Hibernate ORM? Binatang apa ini? Hasil terawangan dari mbah Google, Hibernate ORM itu adalah library object-relational mapping untuk bahasa pemrograman Java, yang menyediakan kerangka kerja (framework) untuk memetakan model object-oriented domain ke database relasional tradisional.

Haduhhh. Bla bla bla… Apaan sih nih? Jadi pengertian sederhanannya, Hibernate ini menyediakan framework untuk Java untuk koneksi ke database relasional seperti MySQL, SQL Server, Oracle, DB2, dan lain-lain. Sedangkan Maven sendiri, itu adalah plugin Eclipse yang digunakan untuk mengatur dependency library.

Langsung saja ya . Pada saat saya pelajari ini, saya menggunakan Eclipse Luna, Maven 4.0.0, Hibernate 3.2.6, MySQL 5.6.12 dan beberapa library lain. Sebelum melanjutkan, pastikan Anda telah mengerti tentang MySQL dan telah menginstallnya di komputer Anda.

Untuk belajar Hibernate, berikut langkah-langkahnya:

Download Eclipse

Pilih yang Eclipse Standard di sini: http://www.eclipse.org/downloads/. Eclipse tidak perlu diinstall, hanya diextract di path yang cocok, kemudian langsung dijalankan.

01-maven-eclipse-hibernate.download-eclipse

Install Maven plugin

Setelah itu, buka menu Help > Eclipse Marketplace, kemudian install Maven plugin. Perlu diperhatikan bahwa proses-prose di bawah banyak menggunakan koneksi Internet.

02-maven-eclipse-hibernate.install-maven

Buat Maven Project di Eclipse
  1. Klik kanan di Project Explorer. New Project, cari Maven Project.
  2. Pada New Maven Project. Centang “Create a simple project”. Kemudian klik Next.
  3. Isi Group Id, misalnya “org.coba”, Artifact Id misalnya “testhibernate1” dan Name misalnya Test Hibernate1.

03-maven-eclipse-hibernate.new-maven-project

Definisikan dependency di pom.xml

Buka src/pom.xml, definisikan dependency hibernate, hibernate-annotation, jta dan mysql-connector-java seperti contoh di bawah.

04-maven-eclipse-hibernate.pom-xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.coba</groupId>
    <artifactId>testhibernate1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Test Hibernate1</name>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.6.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.1.GA</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.1</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>Hibernate4</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Klik kanan pada src/pom.xml Run As > Maven Build. Ketik package pada Goals, kemudian Run. Sambil menunggu sampai Eclipse selesai mendownload dependency, lanjutkan proses selanjutnya.

Buat Database MySQL dan contoh table

Katakankan ini untuk mencoba koneksi ke database test dan table address_book. Maka harus dibuatkan database dan tablenya. Untuk penginstallan MySQL dapat merujuk di artikel berikut.

CREATE TABLE IF NOT EXISTS `address_book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

Buat file konfigurasi Hibernate

Buat file src/main/resources/hibernate.cfg.xml dengan cara klik kanan folder resources, New > Other, XML > XML file. Perhatikan bahwa mapping resource mengarah ke file testhibernate1/AddressBook.hbm.xml. File ini akan dibuat dilangkah selanjutnya.

<?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="connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">create</property>
        <property name="connection.pool_size">1</property>
        <property name="current_session_context_class">thread</property>
        <mapping resource="testhibernate1/AddressBook.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

05-maven-eclipse-hibernate.hibernate-cfg-xml

Pada tahap ini berarti, Hibernate dan beberapa dependency telah terpasang dengan menggunakan Maven, dan konfigurasi file telah disambungkan ke MySQL.

Buat Model Class

Ini adalah model class untuk fungsi-fungsi ke database.  src/main/java/AddressBook.java. Klik kanan pada folder java, New > Other > Java > Class, kemudian Next. Ketikkan AddressBook pada field Name. folder src/main/java/testhibernate1 dan file AddressBook.java akan terbuat secara otomatis. Tekan F5 atau refresh.

package testhibernate1;

import javax.persistence.Entity;

@Entity
public class AddressBook {
    int id;
    String name;
    String address;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

Buat Mapping File

Mapping file ini untuk mendefinisikan struktur table yang nanti dihubungkan ke Model Class. Isinya adalah mapping untuk table address_book di src/main/java/AddressBook.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="testhibernate1.AddressBook" table="address_book" >
        <id name="id" type="int">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="name" type="string">
            <column name="name" length="255" not-null="true" />
        </property>
        <property name="address" type="string">
            <column name="address" length="255" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
Aplikasi Java

Nah aplikasi ini adalah sebagai controllernya yang nanti bisa dikembangkan menjadi CRUD (Create, read, update, delete). Buat java class, src/main/java/App.java. Klik kanan pada folder testhibernate1, New > Other > Java > Class, kemudian Next. Ketikkan App pada field Name.

package testhibernate1;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

import testhibernate1.AddressBook;

public class App {
    public static void main(String[] args) {
        SessionFactory sessionFactory = new AnnotationConfiguration()
                .configure().buildSessionFactory();
        Session session = sessionFactory.getCurrentSession();

        Transaction tx = session.beginTransaction();

        AddressBook emp = new AddressBook();

        emp.setId(1);
        emp.setName("arif");
        emp.setAddress("depok");

        session.save(emp);

        tx.commit();
    }
}

Selesai sudah. Jalankan dengan mengklik kanan App.java, Run As > Java Application.

06-maven-eclipse-hibernate.app-java-run

Cek dan perhatikan apabila ada error. Apabila sudah sesuai semua, aplikasi ini akan meng insert data ke dalam table address_book.

Mohon maaf apabila ada kesalahan, harap maklum saya baru coba-coba belajar tools ini. Kritik dan saran Anda dapat sampaikan di bagian comment. Sekian terima kasih, selamat mencoba.

 

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan.