Struts မွာ Databaseကို ဘယ္လို ခ်ိတ္ဆက္မလဲ


Struts မွာ Databaseကို ဘယ္လို ခ်ိတ္ဆက္မလဲ

Developer မ်ားေသာအားျဖင့္က databaseကို ခ်ိတ္ဆက္တယ္ access လုပ္တယ္ဆိုတာကို application ရဲ ႔ အဆံုးသက္တစ္ခုလို႔ ေတြးေတာတတ္ၾကပါတယ္။ ဒါေပမယ့္ database ကို ခ်ိတ္ဆက္ဖို႔ access လုပ္ဖို႔အတြက္ ခ်ိတ္ဆက္တာမဟုတ္ပါဘူး။ database ကို မ်ားျပားတဲ့ စီးပြားဆိုင္ရာ အခ်က္အလက္ data အသြားအလာ(transaction)ေတြအတြက္ ခ်ိ္တ္ဆက္ပါတယ္။ ဒါဆိုရင္ Framewrok ရဲ ႔ business logic ေတြကို ခ်ိတ္ဆက္တာ access လုပ္တာကေနစေျပာရေအာင္။ Action ကိုသံုးပါ။

အေကာင္းဆံုးကေတာ့ Action ေတြကို web/presentation-tier နဲ႔ business classes ၾကားမွာ thin adaptor တစ္ခုအေနနဲ႔ သံုးတာပါပဲ။ ဒါ့ေၾကာင့္ ပထမဆံုးက ႐ိုး႐ိုး java classes ကို သံုးျပီး business API တစ္ခုကို ပံုစံဆြဲပါ။ ျပီးေတာ့ ႐ိုး႐ိုးjava type တစ္ခုကို ယူတဲ့ object ကို သံုးပီး JavaBean ဒါမွမဟုတ္ JavaBean အစုေတြကို return ျပန္ယူတဲ့ နည္းက အေကာင္းဆံုးပါပဲ။ Action ကအဲဒီ object ကို call ျပီး ေနာက္ ရလာတဲ့ result ကို web/presentation-tier ကုိ ေပးျပီးျပခိုင္းႏိုင္ပါတယ္။

ေယဘူယ် ခ်ဥ္းကပ္နည္းက business transaction တစ္ခုစီအတြက္ Action တစ္ခုစီျပဳလုပ္တာပါပဲ။ သာမန္ CRUD application တစ္ခုမွာ CreateAction, RetrieveAction, UpdateAction, DeleteAction ဆိုျပီး ရွိႏိုင္ပါတယ္။ Action တစ္ခုစီျပီးေျမာက္ဖို႔အတြက္ Action ေတြက လိုအပ္တဲ့ business logic class ေတြကို ေခၚယူပါမယ္။

Databaseနဲ႔ခ်ိတ္ဆက္တဲ့ access code ေတြကbusinessAPIclassesမွာ encapsulatedျဖစ္ေနရပါမယ္။ ဒါမွ Framework ကကိုယ္ဘာကိုသံုးေနတယ္ဆိုတာကို မသိႏိုင္မွာျဖစ္ပါတယ္။ ဒီလိုနဲ႔ Framework ကေန ရွာခ်င္တဲ့ key ဒါမွမဟုတ္ရင္ string ကို ေပးလိုက္ျပီး bean ဒါမွမဟုတ္ collection of beans ကို ျပန္ယူပါတယ္။ ဒီလို လုပ္ခ်င္းအားျဖင့္ တူညီတဲ့ BusinessAPIclasses ကို အျခားမွာ ျပန္အသံုးခ်ႏိုင္ပါတယ္။ ျပီးေတာ့ web framework နဲ႔ ပတ္သက္စရာမလိုပဲ testing သီးသန႔္လုပ္ႏိုင္ပါတယ္။ သာမန္java
class တစ္ခုလို Test လုပ္ရတာ လြယ္ကူသြားပါလိမ့္မယ္။

DAO pattern ကိုသံုးပါ။
မ်ားေသာအားျဖင့္သံုးၾကတာက DAO(Data Access Object)pattern ကို သံုးၾကပါတယ္။ DAO interface ကို create လုပ္ျပီး Action
ကေနေခၚသံုးၾကပါတယ္။ database access ကို framework ရဲ ႔ class ေတြကို မထိပဲ လိုသလို ျပဳျပင္သံုးဆြဲႏိုင္သြားပါမယ္။
စစခ်င္းမွာေတာ့ 1:1 အခ်ိဳးနဲ႔ use case တစ္ခုအတြက္ Action တစ္ခု၊ Business API class တစ္ခု ေဆာက္ျပီး သံုးၾကည္႔ပါ။ အေတြ႔အၾကံဳေတြ ရလာတာနဲ႔ Action class ေတြကို DispathAction သံုးျပီး ဘယ္လိုေပါင္းလို႔ရတယ္ ဆိုတဲ့ နည္းလမ္းေတြသိလာမွာပါ။ Action တစ္ခုတည္းကို သံုးျပီး business class ေတြအားလံုးကို ေခၚသံုးတဲ့ နည္းေတြကိုေတာင္ သိလာႏိုင္ပါတယ္။

Action class ေတြကို နည္းနည္းပဲ သံုးႏိုင္ဖို႔အတြက္ Struts နဲ႔ MVC framework ေတြက ဘယ္လို အလုပ္လုပ္တယ္ ဆိုတာကို ႏႈိက္ႏိႈက္ခၽြတ္ခၽြတ္သိမွ အဆင္ေျပပါမယ္။ ဒါ့ေၾကာင့္ ပထမ အစမွာ action class ေတြ အမ်ားၾကီး ေရးရမွာကို ရွက္ရြံမေနပါနဲ႔။ Configuration file ထဲကေန action class ေတြကို လြယ္လြယ္ကူကူ ထိန္းႏိုင္ပါတယ္။

DataSource ကို သံုးပါ။
DAO approach ကို သံုးျပီဆိုရင္ database access ေတြက business interface ေနာက္မွာ ကြယ္၀ွက္ေနပါလိမ့္မယ္။ business class ေတြက ခ်ိတ္ဆက္မႈေတြကိုပါ ထိန္းခ်ဳပ္ေပးရပါမယ္။ Rule တစ္ခုအေနနဲ႔ database ခ်ိတ္ဆက္ဖို႔ connection pool ကို သံုးရပါမယ္။
ဒီေန႔ေခတ္မွာေတာ့ DataSource interface က သံုးသင့္တဲ့နည္းတစ္ခုပါပဲ။ database စနစ္အေတာ္မ်ားမ်ားက DataSource ကို support လုပ္ေပးႏိုင္ပါတယ္။

DataSource ကို configuration file ထဲကေန လြယ္လြယ္ကူကူ ဖန္တီးယူလို႔ရပါတယ္။

Dynamic Result set ကို သံုးပါ။
Query က result က ActionForm မွာသံုးထားတဲ့ properties ေတြနဲ႔ map ျဖစ္ေနတတ္လုိ႔ resultset ကိုပဲ ActionForm ရဲ ႔ collection အျဖစ္သံုးႏိုင္ပါတယ္။ ဒါေပမယ့္ တခါတေလ map မျဖစ္ပဲ ရွိတတ္ပါတယ္။ ဒါဆို ျပဖို႔ အတြက္ ဘယ္လို လုပ္မလဲ။
JSP tag ေတြက ဘယ္လို bean typeကိုသံုးလဲ ဂ႐ုမစိုက္ပါဘူး။ ResultSet ကို ဒီအတိုင္း output အေနနဲ႔ ထုတ္လုိက္လို႔လဲ ရပါတယ္။ ဒါေပမယ့္ ResultSet မွက database နဲ႔ ခ်ိတ္ဆက္ထားတာက တြဲက်န္ေနျပီး ဒီအတိုင္းၾကီး output ထုတ္လိုက္ရတာက အေတာ္ကိုပဲ ႐ႈတ္ေထြးတယ္လုိ႔ ဆုိႏိုင္ပါတယ္။ ဒါဆို ဘယ္လို လုပ္ၾကမလဲ။

အ႐ိုးဆံုးနည္းကေတာ့ ResultSetDynaClass ကို သံုးျပီး ResultSet ကေန DynaBeans ရဲ ႔ ArrayList ကို ေျပာင္းဖို႔လုပ္ရပါမယ္။ Struts ရဲ ႔ Custom tag ေတြက DynaBean properties ကို ႐ိုး႐ိုးJavaBean properties ေတြလို လြယ္လြယ္ကူကူ သံုးႏိိုင္ပါတယ္။

Advertisements

About KaungMyatTun(KaungGyi)

ကၽြန္ေတာ့္အေၾကာင္း အမည္ ။ ။ ေကာင္းျမတ္ထြန္း လို႔ေခၚပါတယ္။ သူငယ္ခ်င္းေတြက ေကာင္းၾကီးလို႔ေခၚပါတယ္။ ေဆြမ်ိဳးေတြက သားၾကီးလို႔ေခၚပါတယ္။ ေမြးေန႔ ။ ။ ၁၉၈၂ တတိယလ ၈ရက္ေျမာက္ေန႔ တနလၤာသားပါ။ ေမြးရပ္ ။ ။ မႏၱေလးနန္းေရွ ႔ မွာေမြးပါတယ္။ ေမြးတယ္ဆိုတာေလာက္ပါပဲ။ ေနတာကေတာ့ ရန္ကုန္မွာပါ။ ပညာအရည္အခ်င္း။ ။ ကြန္ျပဴတာဘြဲ ႔ကို KMD ေက်ာင္းကတဆင့္ London Met ကရပါတယ္။ အဂၤလိပ္စာ အေ၀းသင္လဲ ရထားတယ္။ အလုပ္အကိုင္ ။ ။ ျမန္မာဒီစီအာ လို႔ ေခၚတဲ့ ကြန္ျပဴတာစနစ္တည္ေဆာက္ေရးကုမၸဏီမွာလုပ္ပါတယ္။ အလုပ္ေတြကို ေခါင္းခံသူ အျဖစ္နဲ႔ ဆိုပါေတာ့။ တတ္ခဲ့တဲ့Stateေက်ာင္းေတြက ။ ။ မူၾကိဳကိုေတာ့ ရခုိင္ စစ္ေတြက ခရစ္ယာန္ ေက်ာင္းနဲ႔ ရန္ကုန္ေရာက္ေတာ့ ေဒၚေမၾကည္သိန္းစီမွာ တတ္ခဲ့တယ္။ သူငယ္တန္းကေန ၆ တန္းအထိ အလက(၂) ေတာင္ဥကၠလာမွာ တတ္တယ္။ ၇ တန္း ႏွစ္မွာ ေတာင္ၾကီး အထက (၂) ကို သြားတတ္တယ္။ ျပီးေတာ့ ၈ တန္းကေန ၁၀ တန္းအထိ ရန္ကုန္က အထက (၂) ကမာရြတ္မွာ တတ္တယ္။ တပိုင္တႏိုင္သိတာေလးေတြက ။ ။ OpenSource PL ထဲမွာ Java, PHP, JavaScript, Framewrok ထဲမွာ Struts2, Struts1, Peer, Lucence Proprietary PL ထဲမွာ VB.Net, C#.Net, RPG, VBA DB ထဲမွာ MySQL, MSSQL, DB2, Postgre, Server ထဲမွာ AS400, MSS2003 View all posts by KaungMyatTun(KaungGyi)

3 responses to “Struts မွာ Databaseကို ဘယ္လို ခ်ိတ္ဆက္မလဲ

  • khin

    It is very interesting!
    So cute!
    If i want to study more detail,could you help me?
    Anyways thank you so much indeed.
    Regards, khin

    • KaungGyi

      Thanks for your interest.
      It is good for you to study struts.
      I will be very happy if i could help you in your study but may be I am not sure to promise.
      Anyway, I am going to write the post concerned with struts from now on.
      Cheer!
      K

  • Ko Nyi Nyi

    access က table ႏွင့္ visual studio form ကို ခ်ိတ္ဆက္ၿပီး data အသြင္းအထုပ္ လုပ္ခ်င္ပါသည္ ၊ tutorial ေလးမ်ားရွိရင္ လမ္းညႊန္ေပးေစလိုပါသည္

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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: