ဒီနေရာမှာ Database ကနေ JPA ရဲ့ Entity Class တွေကို Generate လုပ်တဲ့ နည်းကို အသုံးပြုသွားပါမယ်။ တစ်ခုသတိပြုရာမှာက Rest ကို သုံးပြီး XML ဒါမှမဟုတ် JSON ကို ပြောင်းတဲ့အခါမှာ Bidirectional Relationship တွေကို ရေးထားမယ်ဆိုရင် ပြဿနာတက်တတ်ပါတယ်။ ဖြေရှင်းတဲ့နည်း မရှိဘူးတော့မဟုတ်ပါဘူး။ Annotation ကို သုံးပြီးရေထားရင် ပြဿနာမရှိပါဘူး။ ဒါပေမယ့် ဒီတစ်ခေါက်တော့ အချိန်သိပ်ပြီး မယူချင်တဲ့အတွက် Unidirectional Relationship ကို ပဲသုံးပြီး ရေးသွားပါမယ်။ တစ်ခါတစ်လေ ပြန်ပြီး Reference လုပ်လိုတဲ့အခါကျမှ လော့ဂျစ်သုံးပြီး ရေးပါတော့မယ်။
လုပ်ရမယ့်အဆင့်တွေကတော့ အောက်ပါအတိုင်း ဖြစ်ပါတယ်။
- CDI, JPA ရယ် jax-rs ကို သုံးလို့ရမယ့် Project တစ်ခု ဆောက်ပါမယ်။
- ပြီးရင် Eclipse ရဲ့ Function ကို သုံးပြီး JPA Entity Class တွေကို Create လုပ်ပါမယ်။
- နောက်ဆုံး အခြေခံ CRUD လုပ်မယ့် Dao Class တစ်ခုကို Generics သုံးပြီး ရေးပါမယ်။
တကယ်ဆို SQL မှာလုပ်လို့ရတဲ့ API တစ်ခုကို ရေးချင်တာပါ။ ဒါပေမယ့် ဒီတစ်ခေါက်တော့ ရိုးရိုး CRUD ပဲလုပ်လို့ရတာကိုပဲ ရေးလိုက်ပါမယ်။ နောက်အခေါက်တွေမှပဲ API တစ်ခု ရေးပါတော့မယ်။
Creating Server Site Project
ကျွှန်တော်တို့ View နဲ့ ERD ရေးပြီးသွားတဲ့အခါ Server Site မှာရှိတဲ့ အပလီကို ရေးပါမယ်။ ကျွှန်တော်တို့ JPA ကို အသုံးပြုတဲ့ WebService Application တစ်ခုကိုရေးပါမယ်။ အဲ့ဒီမှာ Transaction ကို CDI ကို သုံးပြီးထိမ်းပါမယ်။
အဲ့ဒီအတွက် JDC, CDI နဲ့ jax-rs ကို အသုံးပြုမယ့် Dynamic Web Project တစ်ခု ကိုရေးပါမယ်။ Server အနေနဲ့ Glassfish 4.0 ကို သုံးပါမယ်။
Project ကို တည်ဆောက်မယ့် အစီအစဉ်ကတော့
အဲ့ဒီအတွက် JDC, CDI နဲ့ jax-rs ကို အသုံးပြုမယ့် Dynamic Web Project တစ်ခု ကိုရေးပါမယ်။ Server အနေနဲ့ Glassfish 4.0 ကို သုံးပါမယ်။
Project ကို တည်ဆောက်မယ့် အစီအစဉ်ကတော့
- Dynamic Web Project တစ်ခုကို ဆောက်ပါမယ်
- Project Facet ကို JPA, jax-rs ကို အသုံးပြုနိုင်အောင် ပြုပြင်ပါမယ်
- Glassfish Server အပေါ်မှာ Resource ကို Create လုပ်ပါမယ်
- persistence.xml ကို ပြုပြင်ရေးသားပါမယ်
Project Facets ကတော့ အောက်ပါအတိုင်း ဖြစ်ပါတယ်။
ပြီးတဲ့အခါမှာ Glassfish Admin Console ကနေပြီးတော့ Server ပေါ်မှာအသုံးပြုနိုင်တဲ့ Resource ကို Create လုပ်ပါမယ်။
အထက်ပါအတိုင်း အသုံးပြုမည့် Database ကို ဆက်သွယ်နိုင်တဲ့ JDBC Connection Pool ကို အရင်ဆောက်ပြီး၊ ၎င်းအား အသုံးပြုသော JDBC Resource အား ဆောက်လုပ်ထားပါသည်။ ဤနေရာတွင် တည်ဆောက်ထားသော JDBC Resource Name အား JPA ၏ persistence.xml တွင် အသုံးပြုမည် ဖြစ်သည်။
Creating JPA Entity by Eclipse
အရင်ဦးဆုံး Entity အတွက် Package တစ်ခုကို ဆောက်ပါတယ်။ src folder အပေါ်မှာ right click ထောက်ပြီး New > Package ကိုရွေးပါတယ်။
အဲ့ဒီနောက်မှာ com.solt.jdc.entity လို့ Package Name မှာဖြည့်ပြီး Finish ကို နှိပ်ပါတယ်။
ထို့နောက် ဆောက်ထားတဲ့ Package အပေါ် Right Click ထောက်ပြီး New > JPA Entities from Tables ကို ရွေးပါတယ်။
အောက်ဖော်ပြပါအတိုင်း Connection ကို ရွေးပြီး၊ Connect လုပ်ပေးလိုက်ရင် Database ထဲမှာရှိတဲ့ Tables တွေကို တွေ့ရပါလိမ့်မယ်။ အဲ့ဒါတွေကို Select လုပ်ပေးရပါမယ်။ Connection ကို တော့ အရင်ဆောက်ထားဖို့လိုပါတယ်။
ပြီးရင် Next Button ကို နှိပ်ပါမယ်။ Relation တွေကို ရွေးမယ့်စာမျက်နှာကို တွေ့ရပါမယ်။ Select လုပ်ရတာလွယ်အောင် Bi-Directional Relation ကိုပဲထားပါမယ်။ လိုအပ်ပါမှ XML Binding နေရာမှာ ပြန်ပြင်ပါမယ်။
ပြီးရင် Next ကို ဆက်နှိပ်ပြီး Key Generation ကို ရွေးချယ်ပါမယ်။ MySQL Tables တွေမှာ Key အတော်များများကို Auto Increase လုပ်ထားတဲ့အတွက် Identity ကို ရွေးပြီး Next ကို နှိပ်ပါမယ်။
Entity တစ်ခုဆီကို Customize လုပ်တဲ့ စာမျက်နှာမှာ Auto Increase မလုပ်မယ့် student_jdc ကို ရွေးပြီး Key Generator ကို none ကို ရွေးပြီး Finish ကို နှိပ်ပါမယ်။ ဒါဆိုရင် လိုအပ်တဲ့ Entity တွေကို အလိုအလျှောက် တည်ဆောက်သွားပါလိမ့်မယ်။
အောက်ပါအတိုင်း Entities တွေကို တည်ဆောက်ပြီး ဖြစ်နေတာကို တွေ့ရပါမယ်။
ဒီနေ့တော့ ဒီလောက်ပါပဲ။ နောက်ရက်များမှပဲ Dao Class ကို ရေးသားပါတော့မယ်။
အဲ့ဒီနောက်မှာ com.solt.jdc.entity လို့ Package Name မှာဖြည့်ပြီး Finish ကို နှိပ်ပါတယ်။
ထို့နောက် ဆောက်ထားတဲ့ Package အပေါ် Right Click ထောက်ပြီး New > JPA Entities from Tables ကို ရွေးပါတယ်။
အောက်ဖော်ပြပါအတိုင်း Connection ကို ရွေးပြီး၊ Connect လုပ်ပေးလိုက်ရင် Database ထဲမှာရှိတဲ့ Tables တွေကို တွေ့ရပါလိမ့်မယ်။ အဲ့ဒါတွေကို Select လုပ်ပေးရပါမယ်။ Connection ကို တော့ အရင်ဆောက်ထားဖို့လိုပါတယ်။
ပြီးရင် Next Button ကို နှိပ်ပါမယ်။ Relation တွေကို ရွေးမယ့်စာမျက်နှာကို တွေ့ရပါမယ်။ Select လုပ်ရတာလွယ်အောင် Bi-Directional Relation ကိုပဲထားပါမယ်။ လိုအပ်ပါမှ XML Binding နေရာမှာ ပြန်ပြင်ပါမယ်။
ပြီးရင် Next ကို ဆက်နှိပ်ပြီး Key Generation ကို ရွေးချယ်ပါမယ်။ MySQL Tables တွေမှာ Key အတော်များများကို Auto Increase လုပ်ထားတဲ့အတွက် Identity ကို ရွေးပြီး Next ကို နှိပ်ပါမယ်။
Entity တစ်ခုဆီကို Customize လုပ်တဲ့ စာမျက်နှာမှာ Auto Increase မလုပ်မယ့် student_jdc ကို ရွေးပြီး Key Generator ကို none ကို ရွေးပြီး Finish ကို နှိပ်ပါမယ်။ ဒါဆိုရင် လိုအပ်တဲ့ Entity တွေကို အလိုအလျှောက် တည်ဆောက်သွားပါလိမ့်မယ်။
အောက်ပါအတိုင်း Entities တွေကို တည်ဆောက်ပြီး ဖြစ်နေတာကို တွေ့ရပါမယ်။
ဒီနေ့တော့ ဒီလောက်ပါပဲ။ နောက်ရက်များမှပဲ Dao Class ကို ရေးသားပါတော့မယ်။
ဆက်ပါဦးမည်။ လေးစားစွာဖြင့်။
မင်းလွင်
No comments:
Post a Comment