Monday, June 02, 2008

ใช้ Hibernate ใน Eclipse

(this article is under construction)

Hibernate

ตัวอย่างการใช้งาน

ขั้นตอนการติดตั้ง และใช้งาน Hibernate กับโปรแกรม Java ใน Eclipse มีดังต่อไปนี้

  1. ติดตั้ง Eclipse Europa

  2. ติดตั้ง Hibernate Tools for Eclipse and Ant ลงใน Eclipse Europa

  3. สร้าง Project ใหม่ใน Eclipse สมมติว่าชื่อ TestHibernate

  4. สร้าง Hibernate Configuration File

    ใน Project TestHibernate สร้าง Hibernate Configuration File โดยคลิกขวาที่ชื่อ เลือก New -> Other แล้วค้นหา Hibernate Configuration File

    ระบุตำแหน่งของไฟล์ hibernate.cfg.xml ว่าอยู่ใต้ Project นี้แหละ

    กรอกข้อมูลเกี่ยวกับฐานข้อมูล วิธีการเชื่อมต่อ รหัสผ่าน ฯลฯ เท่าที่ทราบ ไม่ต้องเครียด เดี๋ยวแก้ในไฟล์ XML ด้วยมืออีกที

    สุดท้ายอย่าลืมเลือก "Create a console configuration"

    จากนั้นก็กด OK (หรือ FINISH) ไปเรื่อยๆ จนกระทั่งได้ไฟล์ hibernate.cfg.xml ออกมาใต้ Project นี้

    ลองเปิดขึ้นมาดู เนื้อหาไฟล์ควรมีหน้าตาทำนองนี้ อาจจะแก้ไข connection string, ชื่อฐานข้อมูล ชื่อคลาสที่เป็น JDBC Driver ฯลฯ ได้ตามสบาย

    <?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.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
            <property name="hibernate.connection.password">hui</property>
            <property name="hibernate.connection.url">jdbc:sqlserver://192.168.1.111;DatabaseName=pool;SelectMethod=cursor</property>
            <property name="hibernate.connection.username">sa</property>
            <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
        </session-factory>
    </hibernate-configuration>
    
    

  5. ทดสอบการเชื่อมต่อฐานข้อมูลใน Hibernate Configurations View

    ดูว่าที่แถบด้านล่างมี Hibernate Configurations แล้วหรือยัง

    ถ้ายังไม่มี ก็ให้เปิดโดยเลือกจากเมนู Window -> Show View -> Others

    ถ้าทำการตั้งค่าทุกอย่างถูกต้องเมื่อกี้นี้ เมื่อคลิกที่เครื่องหมาย + หน้า TestHibernate ที่เพิ่งสร้างใหม่ มันควรจะทำการเชื่อมต่อไปที่ฐานข้อมูล และแสดงรายชื่อฐานข้อมูล ฯลฯ มาให้ดูได้ดังนี้

    แต่ถ้าเกิดข้อผิดพลาดใดๆ ให้ลองแก้ไขค่าใหม่ โดยคลิกขวาที่ TestHibernate แล้วเลือก Edit Configuration

    ข้อผิดพลาดที่พบบ่อยคือ หา Class ที่เป็น JDBC Driver ไม่เจอ ซึ่งแก้ไขได้โดยการเพิ่ม JAR ของ JDBC Driver นั้นลงในหน้า Classpath ของ Edit Configuration

    จากนั้นให้สั่ง "Rebuild Configuration" แล้วทดลองคลิกที่เครื่องหมาย + หน้า TestHibernate อีกครั้ง

  6. ทำวิศวกรรมย้อนกลับฐานข้อมูล

    เมื่อทดสอบว่าทำการเชื่อมต่อโดยใช้ TestHibernate ได้สำเร็จแล้ว สามารถสั่งให้ Hibernate Tools สร้างคลาสต่างๆที่จำเป็นจากโครงสร้างฐานข้อมูลที่มีอยู่เดิม โดยการทำวิศวกรรมย้อนกลับได้ดังนี้

    เลือก "Open Hibernate Code Generation Dialog" จากปุ่ม Run ของ Hibernate Tool

    ในหน้าจอที่ปรากฏขึ้นมา สร้าง Configuration ใหม่ ตั้งชื่อว่า TestConfiguration โดยกำหนดค่าดังนี้

    • เลือก Console configuration ชื่อ TestHibernate ที่เพิ่งสร้างก่อนหน้านี้
    • ตั้ง Output directory เป็นโฟลเดอร์ src ใต้ Project
    • ใส่เครื่องหมายถูกหน้า "Reverse engineer from JDBC connection"
    • ตั้งชื่อ package ของโค้ดที่จะถูกสร้างขึ้นมา ในที่นี้ใช้ชื่อ autogetn

    จากนั้นคลิกที่ "Setup" ข้าง Reveng.xml เพื่อตั้งค่ารายละเอียดตารางของฐานข้อมูลที่ต้องการสร้างคลาส หน้าจอถามว่าต้องการสร้างไฟล์ reveng.xml ใหม่หรือไม่ ตอบตกลง

    ระบุตำแหน่งที่จัดเก็บไฟล์ reveng.xml

    ในหน้าจอ Table Filter ให้กดปุ่ม Refresh

    จะได้รายชื่อตารางในฐานข้อมูลที่ระบุไว้ใน jdbc ปรากฏขึ้นมา เลือกตารางที่ต้องการแล้วกดปุ่ม Include

    ตรวจสอบค่าต่างๆในหน้านี้ให้เหมือนดังภาพข้างล่าง แล้วกด Apply

    พลิกไปที่หน้า Exporters เลือกให้สร้างไฟล์ดังภาพข้างล่างนี้แล้วกด Apply

    Domain Code คือ VO (Value Ojbect) คลาสที่แทน 1 record ใน Table DAO คือ คลาสสำหรับอ่านเขียนข้อมูล (VO) จากตาราง และ HTML คือเอกสารโครงสร้างของตาราง ฯลฯ ส่วนไฟล์ XML Mapping เก็บรายละเอียดความสัมพันธ์ของคลาส VO ทั้งหลายที่สร้างขึ้น กับตารางจริงในฐานข้อมูล ไฟล์เหล่านี้เอาไว้ใช้ตอนสร้าง SessionFactory ของ Hibernate

    กดปุ่ม "Run" ถ้าทุกอย่างเรียบร้อย จะได้ไฟล์ต่างๆในโฟลเดอร์ "autogen" (ที่ระบุไว้ในช่อง package) ดังนี้

    คลาสจะมีชื่อตรงกับชื่อของตารางในฐานข้อมูล คลาสที่ชื่อลงท้ายด้วย Home คือคลาส DAO ของตารางนั้นๆ

  7. ทดสอบการใช้งานฐานข้อมูลผ่าน Hibernate

1 comment:

porntip said...

กำลังเริ่มศึกษาค่ะ อ่านบทความนี้แล้วช่วยได้เยอะเลยค่ะ ขอบคุณนะค่ะ