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 ေတြလို
လြယ္လြယ္ကူကူ သံုးႏိိုင္ပါတယ္။

About Yin Nyine Nway

Yin Nyine Nway has written 358 post in this Website..

I m web developer