ต่อจากคราวที่แล้ว วันนี้ผมจะเสนอ Layer แรกของ BC4J ก่อนเลยนะครับ คือ Entity Object
นิยามสั้นๆ ของ Entity Object ก็คือ เป็น Persistence Layer ซึ่งเปรียบได้กับ 1 Row ใน Table นั้นเองครับ แต่มันมีความสามารถมากกว่านั้นคือ มันสามารถที่จะสร้างกฎเกณฑ์เพื่อมา validate ข้อมูลแต่ละ Row นั้นได้ก่อนที่จะมีการลง DB จริง แถมยังสามารถใช้ IDE ช่วย Gen ได้อีกต่างหาก ทำให้การเขียนโค้ดน้อยลงด้วย
เรามาลองสร้าง Entity Object ซัก 1 Table กันนะครับในที่นี้สมมติว่าทุกคนมี JDeveloper กันแล้วนะครับหรือใครยังไม่มีนะครับ Oracle เค้าใจดี download ฟรีได้จาก http://www.oracle.com/technology/software/products/jdev/index.html
ก่อนอื่นสร้าง Application กับ Project ขึ้นมาก่อนนะครับ ต่อไปขั้นตอนการสร้าง Entity Object มีดังนี้


3. ส่วนนี้คือหน้าต่างให้เลือก Table ที่ต้องการสร้าง Entity Object เลือกสร้าง CUSTOMER Table ก็แล้วกันครับ โดยผมวางไว้ที่ package model ครับ จากนั้นกด Next

4. หน้าต่างจะบอกว่าใน Entity Object จะมี Attribute อะไรบ้าง มองง่ายๆก็คือชื่อ Column ใน Table CUSTOMER นั่่นเองครับ จากนั้นกด Next อีกครั้ง

5. คราวนี้ก็จะแสดงรายละเอียดของแต่ละ Attribute เช่น CustomerId ซึ่ง Map กับ Column CUSTOMER_ID ซึ่งเป็น Primary Key ของ Table และต้องมีการเก็บข้อมูลลง DB ดังนั้นจึงเป็น Persistenence เราสามารถที่จะดูรายละเอียดของ Attribute อื่่น ให้เลือกที่่ Select Attribute นะครับ

6. หน้าต่างนี้จะให้เลือกว่าจะสร้าง Java Class เพิ่มอีกหรือป่าว ส่วนนี้ผมก็ไม่ชำนาญเท่าไหร่มักจะ Default เอาไว้อย่างนี้หละครับ กด Next

7. หน้าต่างนี้จะเป็นหน้าสรุปครับ กด Finish โลดเลยครับ

สุดท้ายจะได้ดังรูปนี้ คือได้ Component เป็นรูปเกียร์ชื่อ Customers โดย Structure ของ Customers จะมีด้วยกัน 2 file คือ

นิยามสั้นๆ ของ Entity Object ก็คือ เป็น Persistence Layer ซึ่งเปรียบได้กับ 1 Row ใน Table นั้นเองครับ แต่มันมีความสามารถมากกว่านั้นคือ มันสามารถที่จะสร้างกฎเกณฑ์เพื่อมา validate ข้อมูลแต่ละ Row นั้นได้ก่อนที่จะมีการลง DB จริง แถมยังสามารถใช้ IDE ช่วย Gen ได้อีกต่างหาก ทำให้การเขียนโค้ดน้อยลงด้วย
เรามาลองสร้าง Entity Object ซัก 1 Table กันนะครับในที่นี้สมมติว่าทุกคนมี JDeveloper กันแล้วนะครับหรือใครยังไม่มีนะครับ Oracle เค้าใจดี download ฟรีได้จาก http://www.oracle.com/technology/software/products/jdev/index.html
ก่อนอื่นสร้าง Application กับ Project ขึ้นมาก่อนนะครับ ต่อไปขั้นตอนการสร้าง Entity Object มีดังนี้
1. คลิกขวาที่ Project เลือก New นะครับจะขึ้นมาตามรูป Expand Business Tier จะเห็น ADF Business Component เลือก Entity Object ครับ

2. จะขึ้นหน้าต่างให้สร้าง Connection DB ก่อน ตรงนี้เราสามารถเลือก Type ของ DB ได้นะครับ ไม่ว่าจะเป็น DB2, MySQL ก็ได้ครับ ในที่นี่ผมใช้ DB Oracle Schema OE ที่เป็น Defualt มาให้นะครับ จากนั้นกด OK

3. ส่วนนี้คือหน้าต่างให้เลือก Table ที่ต้องการสร้าง Entity Object เลือกสร้าง CUSTOMER Table ก็แล้วกันครับ โดยผมวางไว้ที่ package model ครับ จากนั้นกด Next

4. หน้าต่างจะบอกว่าใน Entity Object จะมี Attribute อะไรบ้าง มองง่ายๆก็คือชื่อ Column ใน Table CUSTOMER นั่่นเองครับ จากนั้นกด Next อีกครั้ง

5. คราวนี้ก็จะแสดงรายละเอียดของแต่ละ Attribute เช่น CustomerId ซึ่ง Map กับ Column CUSTOMER_ID ซึ่งเป็น Primary Key ของ Table และต้องมีการเก็บข้อมูลลง DB ดังนั้นจึงเป็น Persistenence เราสามารถที่จะดูรายละเอียดของ Attribute อื่่น ให้เลือกที่่ Select Attribute นะครับ

6. หน้าต่างนี้จะให้เลือกว่าจะสร้าง Java Class เพิ่มอีกหรือป่าว ส่วนนี้ผมก็ไม่ชำนาญเท่าไหร่มักจะ Default เอาไว้อย่างนี้หละครับ กด Next

7. หน้าต่างนี้จะเป็นหน้าสรุปครับ กด Finish โลดเลยครับ

สุดท้ายจะได้ดังรูปนี้ คือได้ Component เป็นรูปเกียร์ชื่อ Customers โดย Structure ของ Customers จะมีด้วยกัน 2 file คือ
1. Customers.xml เป็น configuration file xml ที่ทำการ Map Class JAVA กับ Column ใน Table ในที่นี้ และจะเก็บรายละเอียดของแต่ละ Attribute เอาไว้ด้วย เช่น Column ไหนเป็น Primary Key , Column ไหนห้ามเป็น Null (Mandatory Field)
2. CustomersImpl.java เป็น Class JAVA ที่จะมี Attribute เป็น Column ใน Table และมี method พวก Accessor เอาไว้เรียกใช้ได้ครับ

คราวหน้าผมจะมาสอนวิธีการเรียกใช้ Entity Object โดยตรงให้นะครับ ขอตัวไปทำงานก่อน ^^
บทความที่เกี่ยวข้อง
No comments:
Post a Comment