ElaKiri Community
Downloads
Go Back   ElaKiri Community > Computers & Internet > Web Development
Reload this Page java web development 8 කොටස - Hibernate
Reply
 
Thread Tools
(#1)
Old
J Sparrow's Avatar
J Sparrow J Sparrow is offline
Senior Member
J Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of light
 
Posts: 1,457
Join Date: Jan 2012
Location: 127.0.0.1
cool java web development 8 කොටස - Hibernate - 01-02-2016, 11:14 PM

හොඳයි! ඔන්න කලින් lesson එකෙන් promise උනා වගේ අද lesson එක කරන්නේ Hibernate ගැන.



මුලින්ම බලමු Hibernate කියන්නේ මොකද්ද කියලා.

** Hibernate කියන්නේ Framework එකක්.
** දැනට තියෙන හොඳම object/relational persistence (ORM) tool එකක් කිව්වොත් හරියටම හරි.
** java වලට වගේම .net වලටත් මේ වෙනකොට Hibernate support කරනවා.
ඉතිං දැං ඔය .net පොරවල් ටිකත් මේ පැත්තේ ආවට කාරියක් නෑ ඕං!


** මේක හරිම smooth බොලව්! relational database handling මාරම විදියට simplify කරලා තියෙන්නේ. ඒ වගේම හරිම elegant ඇන්ඩ් innovative.

කරගෙන යද්දී බොලාටම තේරෙයි! ඔන්න හැඳින්වීම ඉවරයි. අපි කරන්න යන්නේ Hibernate3.

** Web developing වලට Hibernate ඕනේම කියලා එකක් නෑ.
නමුත් හැමදාම SQL කොට කොට ඉන්නවට වඩා අළුත් දෙයක් ඉගෙන ගන්න එක හොඳා.....යි!
අහ්! තව එකක්, Hibernate කියන්නේ Web developing වලට විතරක් use වෙන framework එකක් නෙමෙයි.

Desktop application development, Middle-ware development මෙකී නොකී සියලූම database එකක් connect වෙන development "හු" යන්නවල් වලට use කරගන්න පුලුවන්.

ඔන්න වැඩේට බැස්සා.

වෙනසකටත් එක්ක Desktop application එකක් use කරගෙන මේක කරගෙන යමු.

නෑ නෑ!

වෙනසක් ඇත්තෙම නෑ! මේක මේ විදියටම Web application එකකත් use කරන්න පුළුවන් බොලව්.


1 - Database schema එක හදා ගමු!

මතක ඇතිනේ කලින් lesson එකක මේක අපි කලා? MySQL admin open කලා, අළුතෙන් database schema එක හදාගන්නවා inventory කියලා.

මේ? දැක්කනේ?




දැන් MySQL query browser එක open කරලා, මෙන්න මේ script එක run කරගන්න ඕනේ.

DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
`STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`STOCK_CODE` VARCHAR(10) NOT NULL,
`STOCK_NAME` VARCHAR(20) NOT NULL,
PRIMARY KEY (`STOCK_ID`) USING BTREE,
UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),
UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


දන්නේ නැත්තන් ඕන්න තියෙනවා කරන හැටි.



** අහ්! මතක ඇතුව අදාල schema එක select කරලා ඕක execute කරපල්ලා.


පේනවනේ, අළුතෙන් table එකක් හැදිලා තියෙනවා? ඕක execute කරන්නේ නැතුව ඉතිං අපිට manually table එකක් හදන්න තිබ්බා. ඒත් ඉතිං මොනවටද බොලව් නිකන් කාලේ කන්නේ.

2 - project එක හදමු.

ළමායි, දැං STS (Spring tool suit) open කරගමූ.

Okay?

Then... හරිම simple. Normal java project එකක් තමයි හදන්න තියෙන්නේ.

File --> New -- > Java Project



ඔන්න මම project එක name කරනවා inventory කියලා.



ඔන්න තියෙනවා project එක.



දැන් මම src folder එක ඇතුලේ com.inventory.common කියලා package එකක් හදලා, ඒ package එක ඇතුලේ class එකක් හදා ගන්නවා App කියලා.



ඔන්න basic project structure එක හදන් ඉවරායි!

3 - Dependency (jar files) add කරමු!

** මේ project එකට අපිට specially ඕනේ කරන jar files තියෙනවා පුතාලා, ආන්න එව්වා ටික හොයලා ඇඩ් කරගන්න එක බොලාලට බාරයි.

jar file එකේ නම google එකේ කොටලා ලේසියෙන්ම ඒ වැඩේ කරගන්න පුළුවන්.

කලින් මම කියලා දීලා තියෙනවානේ project එකකට jar files add කරන හැටි? දැං ඒවා සිහි කරගනිව්!

ඔන්න ළමයිනේ...
පහල දාලා තියෙන්නේ, ඕනේ කරන jar files ටිකයි, ඒවයේ version ටිකයි. බලලා හදලා බාගනිව්!


* MySQL database driver
1 - mysql-connector-java --> 5.1.9

* Hibernate framework
2 - hibernate3 --> 3.2.3.GA

* Hibernate library dependency
3 - dom4j --> 1.6.1
4 - commons-collections --> 3.2.1
5 - cglib --> 2.2
6 - jta --> 1.1

*Others
7 - asm --> 3.1

ඔන්න මම add කරගත්තා.



හරි! ඊලඟ!

4 - Hibernate Mapping file එකයි + Model class එකයි හදමු!

මතකයිනේ? අපි හැදුවා table එකක් stock කියලා? ආන්න ඒකට තමයි මේ Hibernate Mapping file එකයි Model class එකයි .

Stock.hbm.xml කියලා XML file එකක් හදලා, ඒක project එක උඩ right click කරලා, අළුතින් resources කියලා source folder එකක් හදලා, ඒ source folder එක ඇතුලේ com.inventory.common කියලා package එකක් හදලා, ඒ package එක ඇතුලට දාගන්න ඕනේ. (හම්මේ....!! ) ඒක තමයි Hibernate Mapping file එක.



තව, Stock කියලා java file එකක් හදලා, ඒක අර src folder එක ඇතුලේ කලින් හදපු com.inventory.common package එක ඇතුලට දාගන්න ඕනේ. ඒක තමයි Model class එක.
ඔන්න ඔහොමයි දැං project structure එක.



හරි! ඔන්න දැන් අර mapping xml (Stock.hbm.xml) file එක ඇතුලට මේ ටික ඔබා ගන්න ඕනේ.

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="com.inventory.common.Stock" table="stock" catalog="inventory">
<id name="stockId" type="java.lang.Integer">
<column name="STOCK_ID" />
<generator class="identity" />
</id>
<property name="stockCode" type="java.lang.String">
<column name="STOCK_CODE" length="10" not-null="true" unique="true" />
</property>
<property name="stockName" type="java.lang.String">
<column name="STOCK_NAME" length="20" not-null="true" unique="true" />
</property>
</class>
</hibernate-mapping>


බැලුවාම උඹලට තේරෙනවනේ මේ මොකද්ද කරලා තියෙන්නේ කියලා?
.
.
නෑ??
.
.
ඔය කරලා තියෙන්නේ, table එක (Stock) ගැන , JVM එකට තේරෙන බාසාවෙන් කියලා දෙන එක.
.
.
ඔව්!
.
.
table ගොඩක් තිබ්බොත්, ඒ හැම table එකටම මේ වගේ mapping file එකකුයි, Model class එකකුයි ඕනේ වෙනවා.
.
.
ඒවා කරදරයිනේ?
.
.

කරදරයි තමයි! ඒ issues වලට solutions තියෙනවා. බය නොවී හිටපල්ලා. basics ඉගෙන ගෙන එව්වා කියලා දෙන්නම්!

හරි! මෙන්න මෙහෙමයි mapping file එක



දැං Stock class (Model class) එක මෙන්න මේ විදියට code කරගන්නවා.

public class Stock implements java.io.Serializable {

private static final long serialVersionUID = 1L;

private Integer stockId;
private String stockCode;
private String stockName;

public Stock() {
}

public Stock(String stockCode, String stockName) {
this.stockCode = stockCode;
this.stockName = stockName;
}

public Integer getStockId() {
return this.stockId;
}

public void setStockId(Integer stockId) {
this.stockId = stockId;
}

public String getStockCode() {
return this.stockCode;
}

public void setStockCode(String stockCode) {
this.stockCode = stockCode;
}

public String getStockName() {
return this.stockName;
}

public void setStockName(String stockName) {
this.stockName = stockName;
}

}


5 - Hibernate Configuration file එක හදමු!

** වැදගත්ම file එකක්! Database එක ගැන විස්තර, username, password, schema එක, use කරන්න ඕනේ database driver එක ගැන විස්තර තියෙන්නේ මේ එකේ තමයි.
ඇයි? map කරලා තියෙන hbm.xml ගැන? එව්වත් declare කරලා තියෙන්නේ මේකෙම තමයි!


hibernate.cfg.xml කියලා file එකක් හදලා, ඒක කෙලින්ම resource folder එක ඇතුලට දාගන්න.
ඔව් බොලව්! අර package එකට එලියෙන්.




ආන්න ඒ විදියට!

දැන් ඒකේ මේ ටික කොටා ගන්න ඕනේ!

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer" >false</property>
<property name="hibernate.connection.driver_class">com.mysql .jdbc.Driver</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/inventory</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MyS QLDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/inventory/common/Stock.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>


ඔන්න පැහැදිලි කිරීම්!



6 - Hibernate Utility class එකක් හදමු??

මේක ඉතින් පහසුවටත්, වාසියටත් තමයි හදාගන්නේ.

Hibernate framework එක initialize කිරීමේ සිට, session retrieve කිරීම්, close කිරීම් ඇතුළු මෙකී නොකී මා දන්නා නොදන්නා හැම Hibernate හු යන්නක් සඳහාම භාවිතා වේ!

ඔන්න ඕකත් අර කලින් හදාපු src folder එකේ com.inventory.common package එක ඇතුලට ඔබාපියව්! වෙන packages හද හද ඉන්න කම්මැලියෝ!


ඔය තියෙන්නේ!



7 - Main class එක code කරමු!

කලින් හදාපු App class එක මේ විදියට code කරගනිව්!

package com.inventory.common;

import org.hibernate.Session;

public class App {

public static void main( String[] args )
{
System.out.println("Hibernate + MySQL");
Session session = HibernateUtil.getSessionFactory().openSession();

session.beginTransaction();
Stock stock = new Stock();

stock.setStockCode("4715");
stock.setStockName("GENM");

session.save(stock);
session.getTransaction().commit();
}
}




මේ class එක තමයි අපි run කරන main class එක.

ඔන්න ඉවලායි!!!

8 - Run කරපියව්!

App class එක උඩ right click කලා --> Run as --> Java Application

ඔන්න console එකේ output එක! මොකද්දෝ මන්දා SQL statement එකක් පෙන්නනවා නේ?



ඔව් ඔව්! insert එකක් වගේ?

බලමු database එක??

ඔන්න පේනවානේ?? App class එකෙන් අපි Stock table එකට set කරපු data වලට අදාලව record එකක් add වෙලා තියෙනවා.




මේක අපි කලේ desktop application එකකටනේ...
ඒ උනාට උඹලට පුලුවන් කිසිම ගින්නක් නැතුව මේක අපේ පරණ web project එකට අමුණන්න. කරන්න තියෙන්නේ ඔය package ටිකයි, class ටිකයි copy paste කරන එක විතරයි. try කරලා බලපල්ලා! ඔය File name වලට, Package name වලට, බය වෙන්න එපා.

ඔන්න උඹලට industry එකේ එන main framework එකක් කියලා දුන්නා!

මේ කියලා දුන්න ටික සාගරේකින් දිය දෝතක් වගේ බොහොම ටිකයි! දොර හැර දී ඇත! ඉතිරිය සොයා යෑම උඹලටම බාරයි ළමයිනේ!


මේකට උඹලගේ කැපවීම අනිවාර්යයි! මට පුලුවන් බොලාට මඟ පෙන්නන්න විතරයි!

එහෙනම් හැමෝටම ජය!
Reply With Quote
(#2)
Old
mldarshana's Avatar
mldarshana mldarshana is offline
Senior Member
mldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to allmldarshana is a name known to all
 
Posts: 34,920
Join Date: Apr 2007
Location: ආශ්චර්ය අභියස :nerd:
01-02-2016, 11:30 PM

good work bro
+
Reply With Quote
(#3)
Old
Harsh7046's Avatar
Harsh7046 Harsh7046 is offline
Senior Member
Harsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of lightHarsh7046 is a glorious beacon of light
 
Posts: 5,689
Join Date: Dec 2009
Location: Colombo
01-02-2016, 11:40 PM

nice work
Reply With Quote
(#4)
Old
J Sparrow's Avatar
J Sparrow J Sparrow is offline
Senior Member
J Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of light
 
Posts: 1,457
Join Date: Jan 2012
Location: 127.0.0.1
01-02-2016, 11:41 PM

Quote:
Originally Posted by mldarshana View Post
good work bro
+
Quote:
Originally Posted by Harsh7046 View Post
nice work
Thanks machanlaa
Reply With Quote
(#5)
Old
manarrow's Avatar
manarrow manarrow is offline
Senior Member
manarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of lightmanarrow is a glorious beacon of light
 
Posts: 3,070
Join Date: Jan 2015
01-02-2016, 11:41 PM

ummmmmaaaa
Reply With Quote
(#6)
Old
A. සිරියා's Avatar
A. සිරියා A. සිරියා is offline
Awrudu Games 2017 - Winners
A. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to beholdA. සිරියා is a splendid one to behold
 
Posts: 12,112
Join Date: Aug 2014
Location: වැඩි ඈතක නෙමෙයි..
01-02-2016, 11:47 PM

Ado thanks machan
Reply With Quote
(#7)
Old
J Sparrow's Avatar
J Sparrow J Sparrow is offline
Senior Member
J Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of light
 
Posts: 1,457
Join Date: Jan 2012
Location: 127.0.0.1
01-02-2016, 11:48 PM

Quote:
Originally Posted by manarrow View Post
ummmmmaaaa

උඹ මේකට ඇහැ දාගෙනමයි ඉන්නේ නේ?

හා හා! උම්මා ඉතින්!
Reply With Quote
(#8)
Old
keshara's Avatar
keshara keshara is offline
Senior Member
keshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of lightkeshara is a glorious beacon of light
 
Posts: 3,987
Join Date: Sep 2006
Location: සිංහල බෞද්ධ රටේ
01-02-2016, 11:48 PM

patta
Reply With Quote
(#9)
Old
Mal Baba's Avatar
Mal Baba Mal Baba is offline
Senior Member
Mal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud ofMal Baba has much to be proud of
 
Posts: 103,665
Join Date: Apr 2009
Location: fb/37innovate.lk
Send a message via Skype™ to Mal Baba
01-02-2016, 11:50 PM

ElaKiri Yaluwa Good Work
Reply With Quote
(#10)
Old
J Sparrow's Avatar
J Sparrow J Sparrow is offline
Senior Member
J Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of lightJ Sparrow is a glorious beacon of light
 
Posts: 1,457
Join Date: Jan 2012
Location: 127.0.0.1
01-02-2016, 11:51 PM

Quote:
Originally Posted by A. සිරියා View Post
Ado thanks machan
most welcome A. සිරියා
Reply With Quote
Reply

Bookmarks

Tags
good work, hibernate, java, jsparrow, web development, webappllication

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



Copyright © 2006 - 2011 ElaKiri™ Beta2.Evo vBulletin, vBa iBproArcade Subdreamer I-Magic MKv

Page generated in 0.06438 seconds with 9 queries