Anda di halaman 1dari 24

MAKALAH

PEMROGRAMAN WEB (JAVA)


JAVA PERSISTANCE API ( JPA )
Disusun oleh :
Dodik Murdiono
Agung Susilo
Khastholani
Desyka Prihantara
07.41.2362
07.41.2330
07.41.23!
07.41.23!7
P"#$"AM : D%P&#MA'%%%
()")SA* : D3+K( , A
STIMIK AMIKOM YOGYAKARTA
JURUSAN TEKNIK INFORMATIKA
YOGYAKARA
2008
JPA (Java Pe!"!#a$%e API)
I & K'$!e(
Menurut -iki.edia/ (a0a .ersistan1e AP%/ dise2ut 3uga (PA/ 4eru.akan
2ahasa .e4rogra4an 3a0a 5ra4e-ork yang 4e4ungkinkan de0elo.er untuk
4engelola relasi data di .lat5or4 (a0a Standard 6dition 732S68 dan (a0a Plat5or4
6nter.rise 6dition732668. (PA 2erasal dari 2agian (S" 220 69.ert $rou..
Persistan1e terdiri dari tiga 2agian:
: AP% 2erada dala4 .a1kage 3a0a9..ersisten1e
: Persistan1e ;uery language
: #23ek < relasional 4etadata
Dala4 Doku4entasi J2SE 7Deskto. a..li1ation8/ diterangkan 2ah-a
s.esi5ikasi (S" 220 4ende5inisikan 6nter.rise (a0a=eans 3/0 . Salah satu tu3uan
uta4a adalah untuk 4enyederhanakan .e42uatan/ 4ana3e4en/ dan
4enyi4.an entitas. Dala4 4en1a.ai tu3uan terse2ut/ Sun Mi1rosyste4s dan
ko4unitas .enge42ang a.likasi 4e42uat .rogra4 antar4uka 7AP%8 yang
4e4ungkinkan anda 4enggunakan >.lain la4a (a-a o23ek> atau P#(#s
se2agai .ersista2le entities. (a0a .ersistan1e AP% 4e45asilitasi .enggunaan
P#(#s se2agai entitas 2ean dan se1ara signi5ikan 4engurangi keru4itan dala4
4e42uat deskri.tor saat de.loy4ent dan 4enda.at 2antuan 2ean ta42ahan .
Selain itu/ 2ahkan da.at 4enggunakan AP% dala4 a.likasi deskto..
Anda akan 4ene4ukan 2anyak alasan untuk 4enggunakan .ersistan1e
AP% yang 2aru/ disini hanya 2e2era.a:
Anda tidak .erlu 4e42uat 1o4.le9 data a11ess o23e1ts 7DA#8.
AP% 4e42antu 4engelola transaksi.
Penulisan standar'kode yang 2erinteraksi dengan data2ase relasional/
le.as dari ;uery data2ase yang digunakan.
Anda da.at 4enghindari S?& .enulisan 2ahasa ;uery yang
4engunakan na4a kelas dan .ro.erti.
Anda da.at 4enggunakan dan 4engelola P#(#s.
Anda 3uga da.at 4enggunakan 3a0a .ersistan1e AP% untuk a.likasi
deskto..
Persisten1e di (a0a 4asuk dala4 (a0a Persisten1e A.i atau (PA. (PA
4e4.unyai ke4a4.uan yang 1uku. he2at yaitu .ro3e1t 2enar'2enar tidak
2erurusan dengan data2ase. ta2lenya akan di2uatkan sendiri oleh (PA.
=e2era.a hal yang .erlu di.erhatikan :
1. Kita hanya .erlu .aha4 .endekatan #23e1t #riented
2. +a2le dala4 data2ase akan di generate oto4atis 2edasarkan entity 1lass
yang kita 2uat.
3. Ada 2e2era.a li2rary (PA yang 2isa digunakan antara lain +o.&ink dan
@i2ernate.
Pengertian lain dari (PA adalah salah satu Java framework yang
4enggunakan .endekatan #23e1t'relational 4a..ing 7#"M8. &ahirnya #"M
dilatar2elakangi oleh 1ara .andang ##P dala4 dunia nyata untuk 4elihat
siste4/ ter4asuk ke dala4 siste4 2asis data.
Aara ker3a #"M ini adalah 4e4etakan o23ek ke dala4 data2ase. #23ek yang
di4asukkan akan di2a1a oleh #"M terse2ut dan diu2ah ke dala4 sintaks S?&.
selan3utnya 2aru ke4udian di3alankan di 2asis data relasional dan hasilnya
ke42ali ke #"M. =er2agai 4a1a4 teknologi yang 4enggunakan .endekatan ini
se.erti 6ntity =eans 2.9/ +o.link/ @i2ernate/ (D#/ (D=A dengan DA#.
Dengan 2anyaknya .ilihan teknologi/ 4e42uat .akar (ABA 66 terins.irasi
dengan 4e42uat suatu 5ra4e-ork yang dikenal dengan (a0a Persisten1e AP%
7(PA8.
(PA 4eru.akan 5itur 2aru yang dita42ahkan 4ulai dari (a0a 66 ! dan
4eru.akan su2's.esi5ikasi dari 6(= 3. Selain untuk (a0a 66/ (PA 3uga da.at
di.ergunakan untuk 4e42angun a.likasi 2er2asis (a0a S6 .
Java Pe!"!#a$%e FA)
+: Menga.a 3a0a .ersistan1e AP% di4asukan dala4 2agian .lat5or4 (a0a 66 !C
(: Ada 2 alasan ka4i 4e4asukkan (a0a .ersistan1e AP% untuk .lat5or4 (a0a.
Perta4a/ AP% 2aru ini akan 4enyederhanakan .enge42angan (a0a 66 dan
(a0a S6 4engunakan data .ersistan1e. Kedua/ ka4i ingin seluruh 4asyarakat
3a0a di 2ernaung dala4 satu standar .ersistan1e AP%.
+: A.akah keuntungan dari 3a0a .ersistan1e AP%C
(: (a0a .ersistan1e AP% didasarkan .ada teknologi .ersistan1e ter2aik se.erti
hi2ernate/ +o.&ink/ dan (D#. Pelanggan sekarang tidak lagi 4enghada.i ketidak
sesuaian 4enentukan non'standar 4odel .ersistan1e untuk #23e1t'"elational
Ma..ing. Selain itu/ (a0a .ersistan1e AP% da.at digunakan 2aik di dala4
lingkungan (a-a S6 serta (a0a 66/ yang 4e4ungkinkan .enge42ang untuk
4enga42il 2anyak keuntungan dari standar .ersistan1e AP%.
+: A.a yang 4en3adi 5itur uta4a dari (a0a Persistan1e AP%C
(: 3a0a .ersistan1e AP% adalah P#(#7Plain #ld (a0a #23e1t8 .ersistan1e AP%
untuk untuk #23e1t'"elational Ma..ing. Dang .enuh 2erisi s.esi5ikasi #23e1t'
"elational Ma..ing 4endukung .enggunaan 3a0a 4etadata annotation dan EM&
des1ri.tors dala4 4enentukan .e4etaan antara o23e1t 3a0a dan o23ek data2ase
relasional. Kayan dengan 2ahasa S?&/ se.erti ;uery7yang 4eru.akan e9tensi
signi5ikan atas 6(= ?&8 statis dan dina4is. %a 3uga 4endukung .enggunaan
.lugga2le .ersistan1e dari .ro0ider tertentu.
+: Menga.a (a0a Persistan1e AP% dike42angkan se2agai 2agian dari (S"'220
76(= 3/08C
(: (a-a .ersistan1e AP% aslinya 2erasal dari 2agian (S" 220 69.ert $rou. untuk
4enyederhanakan 6(= AMP entitas 2eans. segera 4en3adi 3elas e9.ert gru./
na4un/ .enyederhanaan 6(= AMP tidak 1uku./ dan itulah 4enga.a yang
di.erlukan adalah .ersistan1e P#(# se3alan dengan kerangka lain # < "
.e4etaan teknologi yang tersedia di industri. Setelah Konse. 6(= 3/0 ter4asuk
3a0a .ersistan1e AP% ini dirilis/ (S"'220 69.ert $rou. 4eneri4a 2anyak
.er4intaan dari 4asyarakat akan tersedia hanya di luar ruang lingku. 6(=.
+: Menga.a tidak Anda 4e4e1ah (a0a .ersistan1e AP% agar 2isa 4asuk ke
dala4 (S"C
(: Ka4i .er1aya 2ah-a .enda5taran dala4 konteks (S"'220 akan
4e4ini4alkan risiko dan 4e42erikan hasil yang 2erkualitas 3adi le2ih 1e.at.
&e2ih lan3ut/ 4engintegrasikan AP% ini dengan lan1ar dan konsisten dengan
si4.li5i1ations ke 6(= 3/0 AP%. @al itu na4.aknya ter2aik untuk 4e4.erluas
.royek ini 2erlangsung/ dan 4endatangkan ahli ta42ahan ke dala4 (S"'220
se2agai gru. yang .erker3aannya di.erluas.
+: Menga.a tidak Anda 4engado.si hi2ernate atau (D# se2agai .ersistan1e
AP%C
(: Ka4i 4e4ilih untuk 4engga2ungkan ide'ide ter2aik dari 2anyak su42er ke
dala4 .ersistan1e AP% yang 2aru dan 4e42uatnya le2ih .raktis/ 4udah untuk
4enggunakan AP% dala4 4e4enuhi ke2utuhan ko4unitas 3a0a 66 dan 3a0a S6.
(a0a .ersistan1e AP% tidak 2erdasar .ada satu .ersistan1e 5ra4e-ork teta.i 3uga
4en1aku. ' dan 4eningkatkan ' ide kontri2usi dari 2er2agai 5ra4e-ork .o.uler/
ter4asuk hi2ernate/ +o.&ink/ (D#/ dan lain'lain.
+: =agai4ana 3ika saya ingin 4enggunakan 3a0a .ersistan1e AP% diluar dari
.lat5or4 (a0a 66C
(: s.esi5ikasi/ "%/ dan +AK 4e4astikan 2ah-a 3a0a .ersistan1e AP% 2eker3a
dengan (a0a S6 serta (a0a 66. Mele-ati +AK untuk 2agian (a0a S6
4e4ungkinkan 0endor lain ko4.ati2el dengan (a0a .ersistan1e AP% tan.a (a0a
66 serti5ikasi.
+: A.a yang akan ter3adi dengan data .ersistan1e AP% yang lain ketika sekarang
(a0a .ersistan1e AP% tersediaC
(: (a0a .ersistan1e AP% sekarang adalah standarisasi untuk .ersistan1e dan
o23ek < .e4etaan relasional untuk .lat5or4 (a0a 66. Bersi AP% se2elu4nya tentu
sa3a tidak akan ditinggalkan.
+: =agai4ana (a0a .ersistan1e AP% 2erke42ang sekarang (S" 220 yang telah
selesaiC
(: Ka4i 2erhara. 2ah-a .er3alan dari (a0a .ersistan1e AP% untuk e0olusi (S"
4asa de.an. %ni 2erarti/ 0ersi dari (a0a .ersistan1e AP% tidak akan terikat untuk
4asa de.an 6(= (S"s. Ka4i 2erhara. da.at terus 4enarik keahlian dari
su42er yang 2eraga4/ 2isa'2isa ter4asuk 2anyak dari anggota dari (S" 220
69.ert $rou. yang 4e42antu 4enentukan (a-a .ersistan1e AP%.
+: A.akah (a0a .ersistan1e AP% 4en3adi 2agian dari (a-a S6C
(: +idak ada ren1ana untuk 4e4asukkan 3a0a .ersistan1e AP% kedala4 3a0a S6.
Se.erti .erke42angan (a0a .ersistan1e AP%/ ke4ungkinan 2ah-a 4asalah ini
akan di.erti42angkan oleh ahli (a0a S6 di4asa yang akan datang.
+: A.akah .eru2ahan yang di.erlukan untuk 4e42uat a.likasi 6(= AMPC
(: Adanya a.likasi 6(= AMP tidak akan 4eru2ah keadaan/ dan teknologi 6(=
AMP akan terus didukung. +idak .erlu a.likasi untuk 2er4igrasi ke 3a0a
.ersistan1e AP%. &e2ih lan3ut/ ke4ungkinan adanya .enga2ungan a.likasi yang
sa4a untuk 4elan3utkan .enggunaan 6(= AMP entitas dengan 2ean dengan
ko4.onen 2aru 6(= yang 4enggunakan (a0a .ersistan1e AP%.
Caa Ke*a JPA&
Se.erti @i2ernate/ (PA 4enggunakan annotation untuk 4elakukan
4a..ing o23ek'o23ek ke dala4 2asis data relasional. #23ek ini sering dise2ut
dengan entitas. 6ntitas (PA adalah Plain #ld (a0a #23e1t 7P#(#8 yang tidak
4eng'e9tend 2er2agai kelas atau 4eng'i4.le4ent 2er2agai inter5a1e.
Salah satu kele2ihan dari sini/ kita tidak .erlu 4e42uat EM& des1ri.tor
untuk 4elakukan 4a..ing. (ika kita lihat doku4entasi AP%/ (PA di2uat dengan
4enggunakan sedikit kelas dan inter5a1e. Se2agian 2esar .a1kage
3a0a9..ersisten1e adalah annotation.
Sa+(,e A(,"-a!" Pe!"!#a$%e
Aontoh di2a-ah ini adalah salah satu .enera.an (PA dala4 4odel sederhana
a.likasi 64.loyee/ untuk 4enyi4.an data e4.loyee ke dala4 data2ase.
A.likasi yang digunakan %D6 *et2ean / data2ase 4ys;l.
&ogin ke 4ys;l dan 2uat se2uah data2ase e4.loyee
Pada *et2eans
=uat Pro3e1t =aru 7AtrlFShi5tF*8
Pilih kategori (a0a dan Pro3e1t (a0a A..li1ation/ *e9t
Pro3e1t na4e: 64.loyee/ un1he1k Areate 4ain 1lass. Ahe1k Set as Main
Pro3e1t. Ginish
+a42ahkan li2rary MyS?& .ada .ro3e1t. Klik kanan .ada &i2raries 'H Add
&i2rary
Aari MyS?& (D=A Dri0er/ dan klik Add &i2rary
Sekarang/ kita 2uat 6ntity Alass 64.loyee
Klik kanan .ada Sour1e Pa1kages/ .ilih *e- 'H 6ntity Alass
Pada *e- 6ntity Alass
Alass *a4e: 64.loyee
Pa1kage: 4odel
Pri4ary Key: &ong
Klik Areate Persisten1e )nit.
Persisten1e )nit *a4e: 64.loyeeP)
Persisten1e &i2rary :+o.link
Data2ase Aonne1tion: *e- Data2ase Aonne1tionI
Pada *e- Data2ase Aonne1tion
*a4e: MyS?& 7Aonne1tor<( dri0er8
Data2ase )"&: 3d21:4ys;l:<<lo1alhost:3306<e4.loyee
)ser *a4e: root
Pass-ord: ::::::::::
Aentang "e4e42er .ass-ord
Klik #k
Ke42ali .ada Areate Persisten1e )nit
Pilih o.tion Areate .ada +a2le $eneration Strategy/ hal ini agar ta2el
di2uat se1ara oto4atis oleh (PA. Ke4udian klik Areate dan klik Ginish.
*et2eans se1ara oto4atis 4e42uat .a1kage M6+A'%*G dan 4enggenerate
5ile .ersisten1e.94l yang 2erisikan in5or4asi se.erti data2ase yang akan
digunakan/ dri0er (D=A yang akan digunakan/ 3uga .ro0ider dan 2er2agai
4a1a4 .ro.erties lainnya.
persistence.xml
Pada 64.loyee.3a0a ta42ahkan attri2ut se.erti na4e/ de.art4ent/ 3o2Jtitle
2eserta setter dan getter 4ethod.
Employee.java
Ke42ali .ada kode diatas/ terda.at 2e2era.a aturan yang harus diikuti/
yaitu :
@arus didenti5ikasikan se2agai entity dengan 4enggunakan
K3a0a9..ersisten1e.6ntity atau disingkat dengan K6ntity annotation.
@arus ada attri2ute yang 2ertugas se2agai identi5ier 7%d8 yang
dianotasikan dengan K3a0a9..ersisten1e.%d
Sedangkan K3a0a9..ersisten1e.$eneratedBalue adalah annotation yang
akan 4e42uat (PA akan 4enggenerate .ri4ary key auto in1re4ent. Ada 4
4a1a4 strategy yang digunakan/ yaitu:
A)+# 7de5ault8/ 4e42iarkan .ro0ider 7dala4 hal ini to.link8 yang
4enentukan 3 dari strategy di2a-ah ini.
S6?)6*A6/ 4enggunakan S?& Se;uen1e untuk 4enda.atkan
.ri4ary key
+A=&6/ to.link akan se1ara oto4atis 4e42uat satu ta2le S6?)6*A6
dengan dua kolo4: na4a se;uen1e dan nilainya 7to.link de5ault
strategy8
%D6*+%+D/ 4enggunakan identity generator/ se.erti kolo4 yang di set
autoJin1re4ent .ada MyS?&
Sekarang 4ari kita 2uat 4ain 1lass
Klik kanan .ada Sour1e Pa1kages 'H *e- 'H (a0a Main Alass
Pada *e- (a0a Main Alass
Alass *a4e: Main64.loyee
Pa1kage: 4ain
Klik Ginish
MainEmployee.java
"un Main 1lass/ lalu 2uka 1onsole MyS?&
=isa dilihat 2ah-a (PA 4e42uat ta2el se1ara oto4atis dan
4enginsert o23ek'o23ek ke dala4 ta2el/ .ada 1ontoh diatas kita sa4a
sekali tidak 4enggunakan s;l 1o44and .
II. (a0a Persisten1e in the (a0a 66 ! Plat5or4
Melalui .e42ahasan ini/ akan 4e4.ela3ari dasar'dasar .enge42angan
-e2 4enggunakan a.likasi (a0a L Persistan1e. (a0a .ersistan1e AP%
di.erkenalkan se2agai 2agian dari .lat5or4 (a0a 66 !. Dala4 tutorial ini akan
4e42uat se2uah .royek a.likasi -e2 sederhana. Dala4 .royek ini
4enggunakan .ersistan1e/ (a0a .ersistan1e AP% 4e4ungkinkan untuk
4enggunakan .ersistan1e tan.a .erlu 4e42uat se2uah 4odul 6(=.
Menggunakan (a0a .ersistan1e dise2uah .ro3e1t sangat 4e4udahkan
dala4 .enge42angan a.likasi dengan 4engkon5igurasi .enye2aran des1ri.tors
untuk 4enyediakan in5or4asi o23e1t'relational 4a..ing untuk .ersistan1e 5ield
atau .ro.ertis. Se2agai gantinya/ Anda da.at 4enggunakan annotation untuk
4enentukan .ro.erti se1ara langsung di 1lass (a0a .
6ntitas .ersistan1e dikelola oleh 6ntityManager AP%. 6ntityManager AP%
4enangani 1onteks/ dan setia. isi .ersistan1e adalah sekelo4.ok entitas
%nstan1e. Saat 4enge42angkan a.likasi/ da.at 4enggunakan annotation
didala4 1lass untuk 4e42edakan isi .ersistan1e instan1e dari entity instan1e .
siklus dari entitas instan1e ke4udian ditangani oleh 1ontainer.
Pe42ahasan ini 4engunakan %D6 net2ean !.!
*ote: %D6 net2ean ter2aru adalah 6.1 3ika 4engunakan %D6 6.0 atau 6.1 lihat di
3a0a .ersistan1e di .lat5or4 3a0a 66 !
Pa!.aa#
Dala4 .e42ahasan ini .e42a1a diasu4sikan 4e4iliki dasar .engetahuan/ atau
.engala4an dengan .e4rogra4an dengan a.likasi 2erikut:
: Pe4rogra4an (a0a
: *et=eans %D6
Pea$/-a# ,0$a- .a$/ 1"(e,0-a$ 0$#0- T0#'"a,
)ntuk tutorial ini Anda .erlu 4e4iliki 2e2era.a .erangkat lunak yang diinstal
.ada ko4.uter:
*et=eans %D6 !.!
(a0a Standard De0elo.4ent Kit 7(DK8 0ersion !.0 or 0ersion 6.0
7do-nload8
Sun (a0a Syste4 A..li1ation Ser0er Plat5or4 6dition 7do-nload8
)ntuk tutorial ini di.erlukan register di se2uah lo1al instan1e dari Sun (a0a
Ser0er dengan a.likasi %D6.
T0#'"a, La#"2a$ 3
: Setting Proyek a.likasi -e2
: Me42uat .ersistan1e )nit
: Me42uat 6nti 1lass
: Me42uat Me2 %nter5a1e
: Men3alankan Proyek
: Pe4e1ahan 4asalah
Se##"$/ 4e5 a(,"-a!"
+u3uan dari latihan ini adalah untuk 4en1i.takan a.likasi -e2 NooA...
A.likasi ini akan 4e4an5aatkan 5itur 2aru dari 4odel 3a0a .ersistan1e. Salah
satu 5iturnya adalah entitas o23ek da.at di2uat sederhana dengan 1lass 3a0a/
sehingga 4ereka tidak lagi .erlu dite4.atkan di se2uah 6(= 4odul dan di
si4.an dala4 5ile 6A". 2erarti entitas kelas da.at langsung di2uat dala4
a.likasi -e2.
1. Pilih GileH *e- Pro3e1t 7Atrl'Shi5t'*8. Pilih a.likasi Me2 dari Me2 kategori dan
klik *e9t.
2. *a4a .royek NooA../set ser0er ke Sun (a0a Syste4 A..li1ation Ser0er / set
0ersi (a0a 66 ke (a0a 66 !/ dan klik *e9t.
3. Pilih (a0aSer0er 1entang dan klik Ginish.
"ingkasan
Dala4 latihan ini telah 4e42uat se2uah a.likasi -e2 (a0a 66 ! yang akan 2erisi
entiti 1lass.
Me+50a# Pe!"!#a$%e U$"#
Dala4 latihan ini/ 4en1o2a 4e42uat se2uah .ersistan1e unit yang akan
4e42eritahukan 1ontainer/ entiti 1lass 4ana yang akan di4anage oleh entiti
4anager/ dan 3uga su42er data yang digunakan oleh entitas terse2ut.
Me42uat .ersistan1e unit yang di2uat dala4 4odule -e2 dengan
4ende5inisikan .ro.ertinya di .ersisten1e.94l . Setelah 4eneta.kan na4a
.ersistan1e unit/ lalu akan 4enentukan persistance provider/ 2erisi 1otainer AP%
yang digunakan untuk 4engelola entitas instan1e. .erlu ditentukan 3uga su42er
data dan ta2el. Men1o2a 4e42uat .ersistan1e unit dengan 4enggunakan New
Persistance Unit Wizard.
N'#e3 anda da.at 4e42uat .ersistan1e unit di *e- 6ntitas 1lass MiOard. Ketika
4e42uat se2uah entitas 1lass/ -iOard akan 4e4inta untuk 4e42uat se2uah
.ersistan1e unit 3ika tidak ada yang lain.
Me42uat Persistan1e )nit :
1. Klik kanan a.likasi -e2 NooA.. dala4 -indo-s dan .ilih *e-H Gile < Golder
=aru
untuk 4e42uka ne- 5ile -iOard.
2. Dari kategori .ersistan1e/ .ilih Persistan1e )nit dan klik *e9t.
3. A2aikan na4a Persistan1e )nit.
4. )ntuk Persistan1e .ro0ider/ .ilih +o.&ink 7standar8.
De5ault .ro0ider adalah +o.&ink 6ssential.3ar. +o.&ink 6ssential.3ar 2erisi
li2rary
.ersistan1e untuk (a0a. 6ntitas 4ana3er terletak di +o.&ink 6ssential.3ar.
!. )ntuk Su42er data/ 4enggunakan standar 3d21 3d21<sa4.le.
De5ault 3d21<sa4.le digunakan untuk 4enghu2ungkan ke 3a0a D= data2ase
yang
telah disediakan 3a0a ser0er.
6. Pastikan .ersistan1e unit 4enggunakan 3a0a +ransa1tion AP% dan 2ah-a
+a2el =uat
sehingga ta2el 2erdasarkan 1lass entitas di2uat 2ila a.likasi terse2ut
dide.loy.
7. Klik Selesai.
Me$%"(#a-a$ e$#"#a! %,a!!
Dala4 latihan ini akan di2uat dua entitas kelas/ Animal.java dan
Pavilion.java/ yang 4e-akili ta2el dala4 data2ase relasional. +entukan
2e2era.a 5ield dala4 1lass yang 4ere.resentasikan data. (a0a .ersistan1e
4e4ungkinkan untuk 4enggunakan annotasi untuk untuk 4e42erikan
in5or4asu ke.ada 1ontainer tentang 5ield/ se.erti #"M.
Me+50a# e$#"#" %,a!! A$"+a,
Perta4a/ kita akan 4en1i.takan entitas 1lass Ani4al. Alass ini 4e-akili
ta2le A*%MA& dala4 data2ase. Ketika 4en1i.takan entitas 1lass/ %D6
4ena42ahkan anotasi @Entity se2agai .enanda 1lass terse2ut se2agai entitas
1lass. Setelah 4e42uat 1lass/ 2uatlah 5ield dala4 1lass untuk 4e.resentasikan
data yang di2utuhkan dala4 ta2el / gunakan annotasi untuk 4e4.er3elas
in5or4asi 5ield
Setia. entitas 1lass harus 4e4iliki kun1i uta4a 7.ri4ary key8. Ketika
4en1i.takan entitas kelas/ %D6 4ena42ahkan anotasi K%d yang 4enyatakan
5ield yang digunakan se2agai .ri4ary key. %D6 3uga 4ena42ahkan anotasi
K$enerated untuk 4eneta.kan kun1i general se2agai primary id.
)ntuk 4en1i.takan 1lass Ani4al/ lakukan hal 2erikut:
1. Klik kanan NooA.. dan 4e4ilih *e-H Gile < Golder.
2. Dari katagori .ersistan1e/ .ilih 6ntity 1lass dan klik *e9t.
3. *a4a 1lass tulis Ani4al/ entity untuk .a1kage/ a2aikan .ri4ary key 2erti.e
&ong .
Klik Ginish.
=ila sudah diklik Ginish/ entity 1lass Ani4al.3a0a ter2uka di 6ditor. di 6ditor/
ta42ahkan hal 2erikut:
1. +a42ahkan deklarasi 2erikut dala4 1lasss:
String na4eP
String kindP
String -eightP
Pa0ilion .a0ilionP
2. Klik kanan dala4 editor .ilih "e5a1torH 6n1a.sulate 5ield untuk 4enghasilkan
getters dan setter . Dala4 kotak dialog 6n1a.sulate Gield/ .astikan 2ah-a
1hek2o9 ter .ilih se4ua dala4 getter dan setter.
3. Klik *e9t di kotak dialog 6n1a.sulate Gield dan ke4udian klik Do "e5a1toring
di ta2 "e5a1toring.
4. Sekarang 4en1o2a 4engu2ah na4a salah satu kolo4 yang di2uat dala4
ta2elAni4al. Dala4 1olo4 name di2eri na4a animalName.
KAolu4n7na4eQ>ani4al*a4e>8
.ri0ate String na4eP
!. lan3utkan dengan 4engetik :
KMany+o#ne
.ri0ate Pa0ilion .a0ilionP
6. +ekan Alt'Shi5t'G untuk 4engenerate state4ent i4.or yang di2utuhkan.
7. Si4.an .eru2ahan Anda.
Pada langkah selan3utnya kita akan 4en1i.takan Pa0ilion 6ntity Alass.
Me+50a# Pav","'$ E$#"#. C,a!!3
Me42uat entitas 1las Pa0ilion 4e-akili ta2el PAB%&%#* dala4 data2ase.
ke42ali 4enggunakan annotasi di 1lass untuk 4enentukan #"M dari 2e2era.a
kolo4. )ntuk 4en1i.takan Pa0ilion 1lass/ lakukan hal 2erikut:
1. Klik kanan /NooA.. dan .ilih *e-H Gile < Golder.
2. Dari katagori .ersistan1e/ .ilih 6ntity 1lass dan klik *e9t.
3. *a4a 1lass : Pa0ilion/ entitas untuk .a1kage/ dan a2aikan .ri4ary key 2erti.e
&ong
Klik Ginish.
=ila anda klik Selesai/ 2aru kelas entitas Pa0ilion.3a0a Su42er ter2uka di 6ditor.
Su42er di 6ditor/ 4elakukan hal 2erikut:
1. +a42ahkan deklarasi 2erikut dala4 1lasss:
String na4eP
String addressP
Aolle1tion RAni4alH ani4alsP
2. Pilih "e5a1torH 6n1a.sulate Gield untuk 4enghasilkan yang getters dan setter
untuk 4asing' 4asing 5ield.
3. +a42ahkan anotasi 2erikut di atas na4a deklarasi untuk 4engu2ah na4a
kolo4 yang dihasilkan:
KAolu4n7na4eQ>.a0ilion*a4e>8
.ri0ate String na4eP
4. +a42ahkan annotasi 2erikut di atas ani4al 1olle1tion untuk 4eneta.kan
hu2ungan satu'ke'=anyak untuk entitas:
K#ne+oMany74a..ed=yQ>.a0ilion>8
.ri0ate Aolle1tion RAni4alH ani4alsP
!. +ekan Alt'Shi5t'G untuk 4engenerate state4ent i4.or yang di2utuhkan.
6. Si4.an .eru2ahan Anda.
"ingkasan
Dala4 latihan ini/ Anda 4en1i.takan dua entitas 1lass dan 4enentukan 5ield.
(uga 4engunakan annotasi untuk 4enentukan .ro.ertis dari 4asing kolo4
didala4 ta2le ta2el yang akan dihasilkan ketika 4ende.loy a.likasi.
Me+50a# 4e5 "$#e6a%e
1. Pilih GileH *e- dari 4enu uta4a. Pilih (SG .ages dari 6ntitas 1las
kategori
.ersistan1e dan klik *e9t.
2. di @ala4an (SG dari 6ntitas 1lass -iOard/ klik +a42ah Se4ua dua
entitas
1lass dan klik *e9t.
3. =iarkan 5older @ala4an (SG te9t 5ield nya kosong untuk 4enyi4.an 5ile
(SG
di lokasi de5ault.
4. +eta.kan se2agai entitas .a1kage untuk kelas dihasilkan dan klik
Selesai.
Me$*a,a$-a$ ('*e%#
Selan3utnya de.loy NooA.. dan test a.likasi terse2ut
1. start 3a0a D= data2ase / .ilih toolsH3a0a D= data2aseH start 3a0a
D= ser0er
2. 2. klik kanan .ro3e1t NooA.. dan .ilih "un Pro3e1t .
=ila "un di3alankan/ se2uah hala4an -e2 akan ter2uka di 2ro-ser /4enu
yang 4e4ungkinkan untuk 4elihat da5tar .a0ilions dan Ani4al.
"ingkasan :
Dala4 latihan ini/ telah ter2angun se2uah a.likasi -e2 NooA.. .
7a6#a P0!#a-a
htt.:<<3a0a.sun.1o4<3a0aee<o0er0ie-<5a;<.ersisten1e.3s.
htt.:<<3a0a.sun.1o4<de0elo.er<te1hni1alArti1les<(2S6<Deskto.<.ersisten1ea.i<
htt.:<<2log.ra2.-e2.id<general<e.isode'1'3a0a'.ersisten1e'a.i'3.a'dengan'to.link'
dan'4ys;l<
htt.:<<en.-iki.edia.org<-iki<(a0aJPersisten1eJAP%
htt.:<<3asoet.-ord.ress.1o4<200S<11<10<.ersisten1e'sederhana'dengan'
net2eans'2<
htt.:<<---.net2eans.org<k2<!!<-e2<1usto4er'2ook.ht4l

Anda mungkin juga menyukai