Wilbert’s WebBlog

Java, Oracle, Serta Aktivitasku

Hibernate Mapping dan Konfigurasi Untuk Entity “Article”

Malam ini saya ingin sekali menyelesaikan sedikit code yang semestinya kita kerjakan bersama.. :D Maklum, sudah tidak sabar untuk membuka netbeans.. :) Saya hanya membuat hibernate mapping nya saja, serta DAO + Implementasinya..

Selebihnya untuk Struts nya saya harus break dulu, takut nanti teman satu team saya malah tidak kebagian pekerjaan.. hehehe…

Langsung saja yah, ini belum saya commit koq, termasuk 1 post sebelumnya tentang perubahan di list jugers yang saya buat..

Pertama, saya buat hibernate mapping dan POJO nya untuk entity “Article”..

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jug.joglosemar.entity;

/**
 *
 * @author Wilbert
 * Class ini melambangkan tabel Article di database
 * yang nantinya digunakan untuk menampilkan artikel-artikel
 */
public class Article 
{  
    private long id;
    private String title;
    private String detail;
    private long datePost;
    private Jugers author;

    public Article() {}

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public long getDatePost() {
        return datePost;
    }

    public void setDatePost(long datePost) {
        this.datePost = datePost;
    }

    public Jugers getAuthor() {
        return author;
    }

    public void setAuthor(Jugers author) {
        this.author = author;
    }
}

<?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 table="article" dynamic-insert="false" dynamic-update="false" mutable="true" name="org.jug.joglosemar.entity.Article" optimistic-lock="version" polymorphism="implicit" select-before-update="false">
        <id name="id" column="article_id">
            <generator class="native"/>
        </id>
        <property name="title" column="title" type="string" length="150"/>
        <property name="detail" column="detail" type="string" length="500"/>
        <property name="datePost" column="date_post" type="long"/>
        <many-to-one name="author" column="author" class="org.jug.joglosemar.entity.Jugers"/>
    </class>
</hibernate-mapping>

Lalu setelah itu, saya tambahkan mapping tersebut ke dalam file konfigurasi hibernate.., yaitu di file hibernate.cfg.xml.. Berikut isi filenya :


<?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 name="session">
   <!-- <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/joglosemar</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"/>-->
   
    <!-- we use datasource -->
        <property name="hibernate.connection.datasource">java:/comp/env/jdbc/joglosemar
        </property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect
        </property>
        <property name="current_session_context_class">thread
        </property>
        <property name="show_sql">true
        </property>
        <property name="hbm2ddl.auto">create
        </property>
        <mapping resource="org/jug/joglosemar/entity/Jugers.hbm.xml"/>
        <mapping resource="org/jug/joglosemar/entity/News.hbm.xml"/>
        <mapping resource="org/jug/joglosemar/entity/Event.hbm.xml"/>
        <mapping resource="org/jug/joglosemar/entity/Article.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

Dan langkah yang terakhir adalah membuat DAO + Implementasinya.. Berikut ini saya akan tampilkan DAO + Implementasi yang sudah saya buat..


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jug.joglosemar.dao;

import java.util.List;
import org.jug.joglosemar.entity.Article;

/**
 *
 * @author Wilbert
 */
public interface ArticleDAO
{
    public void insert(Article artc) throws Exception;
    public void delete(Article artc) throws Exception;
    public void update(Article artc) throws Exception;
    public Article load(long id) throws Exception;
    public List<Article> getAllArticles() throws Exception;
    public List<Article> getLastArticles() throws Exception;
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jug.joglosemar.dao.hbm;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.jug.joglosemar.dao.ArticleDAO;
import org.jug.joglosemar.entity.Article;
import org.jug.joglosemar.util.HibernateUtil;

/**
 *
 * @author Wilbert
 * Implementasi DAO untuk query ke database
 */
public class ArticleDAOImpl implements ArticleDAO
{
    public void insert(Article artc) throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        try{
            session.save(artc);
        }catch(Exception ex){
            throw ex;
        }
    }

    public void delete(Article artc) throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        try{
            session.delete(artc);
        }catch(Exception ex){
            throw ex;
        }
    }

    public void update(Article artc) throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        try{
            session.update(artc);
        }catch(Exception ex){
            throw ex;
        }
    }

    public Article load(long id) throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        Article artc = null;
        try{
            artc = (Article)session.load(Article.class,id);
        }catch(Exception ex){
            throw ex;
        }
        return artc;
    }

    public List<Article> getAllArticles() throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        List<Article> list = new ArrayList<Article>();
        try{
            list = session.createQuery("from Article").list();
        }catch(Exception ex){
            throw ex;
        }
        return list;
    }

    public List<Article> getLastArticles() throws Exception {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.getSession();
        List<Article> list = new ArrayList<Article>();
        try{
            list = session.createQuery("from Article order by date_post desc limit 0,10").list();
        }catch(Exception ex){
            throw ex;
        }
        return list;
    }
}

Selesai sudah untuk pembuatan entitynya.. Perlu diperhatikan juga (bagi yang merasa team saya), kita bermain dengan 2 framework, yaitu Struts dan Hibernate.. Maka harus dipastikan kita bisa membedakan keduanya.. Jangan dicampur adukkan..! Sekarang kita coding dulu Hibernate nya, setelah itu baru kita bermain Struts nya..

Saya rasa kalau satu per satu cara memikirkannya malah lebih bagus, karena ada kerangka berpikir yang terstruktur, yaitu Struts dan Hibernate..

Mari kita membuat Struts nya hari Selasa nanti! :)

5-May-2008 - Posted by | Java, Proyek JUG-Joglosemar

5 Comments »

  1. kang, mane niee struts nyaa kok gak muncul muncul;

    Comment by kocloxs | 29-July-2008 | Reply

  2. Hehehe, maaf mas, blm saya kerjain lagi proyeknya..
    Banyak kerjaan sana sini..
    Tunggu aja yah mas!! :D

    Comment by wilbertliu | 29-July-2008 | Reply

  3. kenapa ga pake annotation aja mapping nya ? :d

    Comment by dian indah savitri | 6-August-2008 | Reply

  4. Halo mbak.., ini calon nya mas Ifnu yah.. hehehe!

    Ho oh, sebenarnya lebih efektif mapping dengan annotation, tapi pas itu project leader nya minta pakai file xml saja..
    Ya saya ikutin aje lah.. :D

    Salam kenal ya mbak! :D

    Comment by wilbertliu | 6-August-2008 | Reply

  5. Mas tu skrip apaan? Gak donk. Pny gak contoh2 web aplikasi msl kaya toko online gt tp pake struts & hibernet dgn menggunakan netbean kalo bs.

    Struts & hibernet itu apaan sih?

    Comment by Gabrielle | 2-July-2009 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.