01.ORM Introduction
ORM
අපි එදිනෙදා ජිවිතේ data සමග තමා ගණදෙනු
කරන්නේ. OOP concept(Inheritance , Polymorphism
,Abstraction, Encapsulation) එක බවිතා වන java ,C# වගේ
language එකක් බාවිතා කරමින්අපි Application නිර්මයනය කිරීමේදී
මෙම data කුමන හෝ ආකාරයකට store කරන්න ඕනේ.එක Excel, වෙන විදිහකට record කිරීමක්
විදිහට උනත්
ගබඩා කල හැක.නමුත් ඕනෙම Application
එකක් හරහා
මුලිකවම වෙන්නේ එදිනෙදා බාවිතා වන data ඊට වඩා පහසු ලෙස manage කරගැනීමක්.එහිදී data store කෙරීම,data read කිරීම,පවතින data update කිරීම, data delete කෙරීම වගේ operations data සමග
සිදුවෙනවා(CRUD operation).ඉතින් මෙම CRUD operation හොදින් effective ලෙස කරගැනීම ඕනෙම Application එකක ඉතා වැදගත්ම දෙයක්.ඉතින් මෙම CRUD operation හොදින් කරගැනීමට විවිද database වර්ග programming වලදී බාවිතා කරනවා(SQL-oracle, MySQL, NOSQL-mongoDB).
Database වලදී පවතින්නේ relational database (data table, data table අතර relation ගොඩනගමින් database එක නිර්මාණය කරගෙන තියෙනවා).නමුත් OOP concept එක බාවිතා වනjava, C# වැනි language එකනින් Application නිර්මාණය කිරීමාදී data program එකේදී handle වෙන්නේ object විදිහට.නමුත් මේවා store කරන්න ඕනේ
relational database වල. Program එකේදී data object,නමුත් store කරන්න ඕනේ relational database වල.normal me වැඩේ java වල
නම් කරගන්නේ JDBC (java database connectivity) කියන concept එක මගින්. මෙහිදී database object relational database එකකට යවන්නනම් SQL query එකකට එම data bind කරලා තමා යවන්නේ, ඒ
වගේම data fetch(ගනිද්දී) එම data අපිට, අප විසින්න්ම data object වලට හැරවීමට
සිදුවෙනවා මොකද program එකේදී data වැඩරන්නේ object විදිහට නිසා.මේක ටිකක් කරදර වැඩක්
වගේම java object සහ data table අතර පවතින සම්බන්දය අවබෝද කරගත්තොත් මේකට object සහ relational map කරන්න පුලුවන් concept එකක් කියන්න පුළුවන්.ඒ විදිහට තියන
සම්බන්දය අනුව ඉදිරිපත් කරලා තියෙන concept එකක් තමා ORM tool concept කියලා කියන්නේ.මොකද්ද මේ ORM concept එක,
හිතමු අපිට employee කියලා database table එකෙක් තියෙනවා මේ තියෙන attribute එක්ක.
නමුත් program එකතුල ඔය employee අපි code කරන්නේ class එකක් විදිහට.මෙන්න මේ වගේ table එකට ගැලපෙන class එකට තමා කියන්නේ entity class කියලා.අපි හිතමු මේ example එකේ ඒ entity class එකේ නමත් Employee කියලා.(එක ඕන නමක් වෙන්න පුළුවන්.එත් ඒනමට ගැලපෙන table එක මොකද්ද කියලා annotation වගේ බාවිතා කරලා (@)අපි configure කරනවා entity classඑක තුලම).
මෙදී Employee class object එකක් යනු, එක Employee කෙනෙක්.එහෙම නැත්තන් employee කියන table එකේ එක row එකක්(tuple එකක් කියලත් කියනවා ඒක).ඉතාකොට row එකක් යනු එක object එකක් සහ table එකේ එක column එකක් යනු class එකේ attribute එකක්(name column එකට අනුරුප class එකේ attribute(variable) එක තමා string name කියන්නේ.Class එකේදී ඒ නම name විය යුතුම නෑ.අපිට string anyName එකක් දාලා එකට දෙන string value එක table එකේ name කියන column එකට Employee object එකක් thought යන්වන්න පුළුවන්.එත් ඒ නම table එකේ මොන column name එකටද map වෙන්නේ කියලත් අපි annotation වගේ බාවිතා කරලා configureකරන්න ඕනේ.)
සරලව ගත්තොත් programe එකේ object එකක් table එකේ row එකක් වෙන අතර class attribute table එකේ columnවෙනවා.මෙන්න මේ
සම්බන්දය හා එක map කරගන්න විදිහ OBJECT RELATIONAL
MAPPING (ORM) Concept එක හරහා
කියනවා.ඒ වගේම table table අතර තියන සම්බන්දයන්ද class වලින් වෙන
විදිහ concept එකක් විදිහට කියනවා(oops concept relational table සමග map වෙන විදිහ).නමුත් concept එක විතරක් program කරන්න වැඩක් නැ.එක implement කරලා තියෙන්න
ඕනේ අපිට JDBC එකට වඩා පහසුවෙන් එම
implementation එක බාවිතා කරලා database එක්ක පහසුවෙන් වැඩකරන්න.ඉතින් එහෙම ORM එක implement කරලා තියෙන්න
විදි කීපයක් තමා පහතින් තියෙන්නේ,
·
JPA
·
HIBERNATE
·
TOPLINK
Comments
Post a Comment