Saturday, January 14, 2012

[Java] Membuat tabel otomatis dengan Java dan Hibernate

Postingan kali ini kita sedikit mengembangkan fitur fitur kemudahan dari hibernate sebagai framework ORM. saya akan menjelaskan bagaimana kita bisa membuat tabel dalam database hanya dengan class-class dalam java tentunya dengan bantuan hibernate.
Jika kita membuat aplikasi dengan konsep MVC pasti kita memerlukan entity, dari entity tersebut kita relasikan dengan database. Ternyata dari entity yang kita buat tadi kita bisa membuat tabel sehingga kita tidak perlu lagi membuat tabel dengan XAMPP atau yang lain, dan kita juga tidak perlu lagi menghafalkan query-query sql. itulah tujuan dari dibuatnya framework Hibernate.
Nah langsung saja kita mulai langkah-langkahnya:
1. Buat file hibernate.cfg.xml. ini saya samakan dengan artikel sebelumnya :


<?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.MySQLDialect</property>
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/person</property>
     <property name="hibernate.connection.username">root</property>
     <property name="hibernate.connection.password"/>
     <property name="hibernate.hbm2ddl.auto">update</property>
     <mapping resource="Person.hbm.xml"/>
   </session-factory>
</hibernate-configuration>

2. Selanjutnya kita buat entity, seperti yang telah kita bahas diatas entity inilah yang mengisi tabel yang akan kita buat nanti.

/*
 * Created by Muhammad Syauqil ilmi
 * Copyright (c) 2012 http://aksesgratis.blogspot.com
 * Rock With Java
 */

package com.syauqil.person.model;

import javax.persistence.Entity;
import javax.persistence.Id;

/**
 *
 * @author Syauqil
 */

@Entity
public class Mahasiswa {

    private long nim;
    private String namaDepan;
    private String namaBelakang;
    private String semester;
    private String alamat;

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getNamaBelakang() {
        return namaBelakang;
    }

    public void setNamaBelakang(String namaBelakang) {
        this.namaBelakang = namaBelakang;
    }

    public String getNamaDepan() {
        return namaDepan;
    }

    public void setNamaDepan(String namaDepan) {
        this.namaDepan = namaDepan;
    }

    @Id
    public long getNim() {
        return nim;
    }

    public void setNim(long nim) {
        this.nim = nim;
    }

    public String getSemester() {
        return semester;
    }

    public void setSemester(String semester) {
        this.semester = semester;
    }

}

dari code diatas ada @entity yang mengimport javax.persistence.Entity yang menandakan sebuah entity dan @id yang mengimport javax.persistence.Id yang menandakan bahwa nim menjadi primary key dan sekaligus bernilai auto increment. 
Ingat penempatan @id diletakkan diatas getter misal getNim()
3. Selanjutnya kita buat Main class yang akan menggenerate class entity dalam java tersebut menjadi sebuah tabel dalam database

/*
 * Created by Muhammad Syauqil ilmi
 * Copyright (c) 2012 http://aksesgratis.blogspot.com
 * Rock With Java
 */

package com.syauqil.person;

import com.syauqil.person.model.Mahasiswa;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class MahasiswaMain {

    public static void main(String[]args){
        AnnotationConfiguration configuration = new AnnotationConfiguration();
        configuration.addAnnotatedClass(Mahasiswa.class);
        configuration.configure("hibernate.cfg.xml");
        new SchemaExport(configuration).create(true, true);
    }

}

configuration.addAnnotatedClass(Mahasiswa.class); digunakan untuk mengambil entity dari class Mahasiswa yang kita buat diatas.
Nah setelah di run anda akan menemui output seperti berikut:

drop table if exists Mahasiswa
create table Mahasiswa (nim bigint not null, alamat varchar(255), namaBelakang varchar(255), namaDepan varchar(255), semester varchar(255), primary key (nim))

Sekarang bisa dicek dan hasilnya:
Sekian terima kasih, semoga bermanfaat :-)

No comments:

Post a Comment