Mengatur
Kumpulan koleksi adalah koleksi Java yang tidak mengandung elemen duplikat. Lebih formal, Set tidak mengandung elemen apa pun pada E1 dan E2, sedemikian rupa sehingga E1.Equals (E2), dan paling banyak satu elemen kosong. Jadi sedang ditambahkan ke satu set objek harus mengimplementasikan metode Equals () dan HashCode () sehingga Java dapat menentukan apakah dua elemen/objek yang sama.
Set dipetakan ke elemen <set> dalam tabel peta dan diinisialisasi dalam java.util.hashset. Anda dapat menggunakan set koleksi untuk memiliki elemen dalam koleksi yang tidak perlu diulang saat menggunakan kelas.
Tentukan tabel RDBMS:
Pertimbangkan kasus di mana kami membutuhkan catatan karyawan kami untuk disimpan di tabel karyawan, dengan struktur berikut:
Buat tabel karyawan (id int not null auto_increment, first_name varchar (20) default null, last_name varchar (20) default null, gaji int default null, kunci utama (id));
Selain itu, diasumsikan bahwa setiap karyawan dapat memiliki satu atau lebih sertifikat yang terkait dengannya. Oleh karena itu, kami menyimpan informasi yang relevan dari sertifikat dalam tabel terpisah dengan struktur berikut:
Buat Sertifikat Tabel (id int not null auto_increment, sertifikat_name varchar (30) nol default, karyawan intrault null, kunci utama (id));
Akan ada hubungan antara seorang karyawan ke banyak dan objek sertifikat:
Tentukan Kelas Pojo:
Mari kita terapkan staf kelas Pojo kami akan digunakan untuk memegang koleksi objek di tabel karyawan dan variabel set yang kredensial.
impor java.util.*; karyawan kelas publik {private int id; Private String FirstName; Private String LastName; gaji int pribadi; sertifikat set pribadi; pegawai publik () {} pegawai publik (string fname, string lname, int gaji) {this.firstname = fname; this.lastname = lname; this.salary = gaji; } public int getId () {return id; } public void setid (int id) {this.id = id; } public String getFirstName () {return firstName; } public void setFirstName (String first_name) {this.firstname = first_name; } public String getLastName () {return lastName; } public void setLastName (string last_name) {this.lastname = last_name; } public int getSalary () {return gaji; } public void setSalary (int gaji) {this.salary = gaji; } set publik getCertificates () {sertifikat pengembalian; } public void setCertificates (set sertifikat) {this.certificates = sertifikat; }} Sekarang mari kita tentukan sertifikat kelas poJo lain yang sesuai dengan tabel, objek sertifikat seperti itu dapat menyimpan dan mengambil tabel sertifikat. Kelas ini juga harus mengimplementasikan metode Equals () dan HashCode () secara bersamaan, sehingga Java dapat menentukan apakah ada dua elemen/objek yang sama.
sertifikat kelas publik {private int id; nama string pribadi; sertifikat publik () {} sertifikat publik (nama string) {this.name = name; } public int getId () {return id; } public void setid (int id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } public boolean sama (objek obj) {if (obj == null) mengembalikan false; if (! this.getClass (). Equals (obj.getClass ())) Return false; Sertifikat obj2 = (sertifikat) obj; if ((this.id == obj2.getid ()) && (this.name.equals (obj2.getname ()))) {return true; } return false; } public int hashCode () {int tmp = 0; tmp = (nama id +) .hashCode (); mengembalikan tmp; }} Tentukan file pemetaan hibernate:
Mari kita kembangkan file pemetaan yang menentukan bagaimana Hibernate mendefinisikan file pemetaan yang memetakan ke tabel basis data. Elemen <Set> akan digunakan untuk menentukan aturan yang digunakan untuk mengatur koleksi.
<? XML Versi = "1.0" encoding = "utf-8"?> <! Doctype hibernate-mapping public "-// hibernate/hibernate pemetaan dtd // en" "http://www.hibernate.org/dtd/hibernate-papping-3.0 <meta attribute = "class-description"> Kelas ini berisi detail karyawan. </meta> <id name = "id" type = "int" column = "id"> <generator/> </d> <set name = "sertifikat" cascade = "all"> <key column = "employee_id"/> <one-to-ymer name = "a name =" firstname "columne" first_name "firstName =" "a name =" firstName "columne =" first_name "" "" "" "" "name =" firstname "columne =" first_name "firste" fireme = "colum =" "a name =" firstName "COLMOLM =" First_Name "" "" "" "" "" "" name = "firstName" column "first_name first_name" firstName = "" FIRECE = "" FIRETNAME " type = "string"/> <properti name = "gaji" kolom = "gaji" type = "int"/> </slass> <class name = "sertifikat" Table = "sertifikat"> <meta atribut = "class-description"> Kelas ini berisi catatan sertifikat. </meta> <id name = "id" type = "int" column = "id"> <generator/> </d> <properti name = "name" column = "Certificate_name" type = "string"/> </class> </hibernate-mapping>
Format <ClassName> .hbm.xml dalam file pemetaan yang harus disimpan. Simpan file karyawan.hbm.xml dalam file pemetaan. Sudah terbiasa dengan sebagian besar detail pemetaan, memetakan semua elemen dalam file:
Dokumen yang dipetakan adalah dokumen XML dengan <hibernate-Mapping> sebagai elemen root yang sesuai dengan setiap kelas yang berisi 2 elemen <slass>.
Elemen <slass> digunakan untuk menentukan pemetaan spesifik tabel basis data dari kelas Java. Nama Kelas Java Menentukan atribut nama elemen kelas dan Table Attribute Database Table Name ditentukan.
Elemen <meta> adalah elemen opsional yang dapat digunakan untuk membuat deskripsi kelas.
Elemen <d> memetakan atribut ID unik di kelas ke kunci utama tabel database. Atribut nama elemen ID mengacu pada kelas atribut dan atribut kolom mengacu pada kolom dalam tabel database. Atribut Type menyimpan tipe pemetaan hibernate, yang akan dikonversi dari Java ke tipe data SQL.
Elemen <Genator> dalam elemen ID digunakan untuk secara otomatis menghasilkan nilai kunci utama. Atur atribut kelas dari elemen yang dihasilkan ke yang asli untuk membiarkan hibernate mengambilnya, baik identitas, urutan atau algoritma Hilo untuk membuat kunci primer sesuai dengan kemampuan dukungan dari database yang mendasarinya.
Elemen <property> digunakan untuk memetakan properti kelas Java ke kolom dalam tabel database. Atribut nama elemen mengacu pada kelas atribut dan atribut kolom mengacu pada kolom dalam tabel database. Atribut Type menyimpan tipe pemetaan hibernate, yang akan dikonversi dari Java ke tipe data SQL.
Elemen <Set> baru dan telah diperkenalkan untuk menetapkan hubungan antara sertifikat dan kelas karyawan. Kami menggunakan elemen <Set> dalam atribut Cascade untuk memberi tahu Hibernate untuk menyimpan objek sertifikat dan objek karyawan. Atribut nama diatur untuk mengatur variabel dalam definisi di kelas induk, dalam kasus kami adalah sertifikat. Untuk setiap set variabel, kita perlu menentukan satu set elemen terpisah dalam file pemetaan.
Elemen <yyy> adalah objek induk yang berisi kunci asing, yaitu kolom dalam tabel sertifikat. Karyawan meja.
Elemen <-satu-ke-banyak> menunjukkan bahwa objek karyawan melibatkan banyak sertifikat, dan oleh karena itu, objek sertifikat harus terkait dengan karyawan induk. Anda dapat menggunakan elemen apa pun dan <-satu-ke-satu>, <nan-to-one> atau <noter-to-my-my-my banyak sesuai kebutuhan.
Buat kelas aplikasi:
Akhirnya, kami akan membuat metode utama () dari kelas aplikasi untuk menjalankan aplikasi. Kami akan menggunakan aplikasi ini untuk menyimpan beberapa catatan karyawan bersama dengan kredensial, dan kemudian kami akan mengajukan catatan pada operasi CRUD.
impor java.util.*; impor org.hibernate.hibernateException; impor org.hibernate.Session; Impor org.hibernate.transaction; impor org.hibernate.SessionFactory; impor org.hibernate.cfg.configuration; Public Class ManagementAmployee {Private Static Session Factory; public static void main (string [] args) {try {factory = new configuration (). configure (). buildSessionFactory (); } catch (Throwable ex) {System.err.println ("Gagal membuat objek SesionFactory." + Ex); Lempar pengecualian baruinitializerError (EX); } Manajemen Me = Manajemen baru (); / * Mari kita memiliki serangkaian sertifikat untuk karyawan pertama */ hashset set1 = hashset baru (); set1.add (sertifikat baru ("MCA")); set1.add (sertifikat baru ("MBA")); set1.add (sertifikat baru ("MBA")); set1.add (sertifikat baru ("PMP")); / * Tambahkan catatan karyawan dalam database */ integer empid1 = me.addemployee ("manoj", "kumar", 4000, set1); / * Set sertifikat lain untuk karyawan kedua */ hashset set2 = hashset baru (); set2.add (sertifikat baru ("BCA")); set2.add (sertifikat baru ("BA")); / * Tambahkan catatan karyawan lain dalam database */ integer empid2 = me.addemployee ("dilip", "kumar", 3000, set2); / * Daftar semua karyawan */ me.listemployee (); / * Perbarui catatan gaji karyawan */ me.updateemployee (empid1, 5000); / * Hapus seorang karyawan dari database */ me.deleTeeMarder (empid2); / * Daftar semua karyawan */ me.listemployee (); } / * Metode untuk menambahkan catatan karyawan dalam database * / addemployee integer publik (string fname, string lname, int gaji, setel sertifikat) {session session = factory.opensession (); Transaksi tx = null; Integer Pegawai = NULL; coba {tx = session.begintransaction (); Karyawan Karyawan = Karyawan Baru (nama, lname, gaji); karyawan.setCertificates (cert); karyawan = (integer) session.save (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); } mengembalikan karyawan; } / * Metode untuk mencantumkan semua detail karyawan * / public void listeMiryees () {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Daftar karyawan = session.createqueery ("dari karyawan"). Daftar (); untuk (iterator iterator1 = karyawan.iterator (); iterator1.hasnext ();) {karyawan karyawan = (karyawan) iterator1.next (); System.out.print ("Nama Depan:" + karyawan.getFirstName ()); System.out.print ("Nama Belakang:" + karyawan.getLastName ()); System.out.println ("Gaji:" + karyawan.getSalary ()); Setel sertifikat = usaha.getCertificates (); untuk (iterator iterator2 = sertifikat.iterator (); iterator2.hasnext ();) {sertifikat sertifikat = (sertifikat) iterator2.next (); System.out.println ("Sertifikat:" + certname.getName ()); }} tx.Commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }} / * Metode untuk memperbarui gaji untuk karyawan * / public void updateMireee (integer employeeid, int gaji) {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Pegawai Karyawan = (karyawan) sesi. karyawan.setsalary (gaji); session.update (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }} / * Metode untuk menghapus karyawan dari catatan * / public void deleteEmployee (integer usaha) {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Pegawai Karyawan = (karyawan) sesi. session.delete (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }}} Kompilasi dan jalankan:
Berikut adalah langkah -langkah untuk mengkompilasi dan menjalankan aplikasi di atas. Pastikan jalur dan classpath diatur dengan tepat sebelum menyusun dan mengeksekusi.
Hasil berikut akan diperoleh di layar dan catatan akan dibuat di tabel karyawan dan sertifikat.
$ java manajemen
.....VARIOUS LOG MESSAGES WILL DISPLAY HERE.........First Name: Manoj Last Name: Kumar Salary: 4000Certificate: MBACertificate: PMPCertificate: MCAFirst Name: Dilip Last Name: Kumar Salary: 3000Certificate: BCACertificate: BAFirst Name: Manoj Last Name: Kumar Salary: 5000Certificate: MBACertificate: PMPCertificate: MCA
Jika Anda memeriksa formulir karyawan dan sertifikat, Anda harus merekamnya:
mysql> pilih * dari karyawan;
+----------------------------+----------+| ID | first_name | last_name | Gaji |+------------------------------------+------------+-----------+| 1 | Manoj | Kumar | 5000 |+--------------------------------+---------+1 baris di set (0,00 detik)
mysql> pilih * dari sertifikat;
+----+------------------+-------------+| ID | sertifikat_name | PEKERJA_ID |+----+------------------+-------------+| 1 | MBA | 1 || 2 | PMP | 1 || 3 | MCA | 1 |+----+------------------+-------------+3 baris dalam set (0,00 detik)
mysql>
Sortedset
Sortedset adalah koleksi Java yang tidak mengandung elemen dan elemen duplikat yang digunakan memberikan urutan alami mereka, atau diurutkan oleh pembanding.
Peta sortedset, diinisialisasi dalam elemen tabel pemetaan <Set> dan java.util.treeset. Atribut penyortiran dapat diatur ke pembanding atau urutan alami. Jika urutan alami digunakan, maka iteratornya melintasi elemen yang ditetapkan yang diatur dalam urutan menaik.
Kami masih menggunakan tabel RDBMS yang ditentukan dalam contoh di atas, dan akan ada hubungan antara beberapa karyawan dan objek sertifikat, dan kelas POJO juga ditentukan di atas.
Mari kita terapkan karyawan kelas POJO akan digunakan untuk memegang koleksi objek di tabel karyawan dan variabel sortedset yang disertifikasi.
Sekarang mari kita tentukan sertifikat untuk kelas POJO lain yang sesuai dengan tabel sertifikat, objek sertifikat seperti itu dapat menyimpan dan mengambil tabel sertifikat. Kelas ini juga harus mengimplementasikan antarmuka yang sebanding dan metode CompareTo akan digunakan untuk mengatur sort = "alami" dalam kasus pemetaan file (lihat file peta di bawah), elemen diurutkan.
sertifikat kelas publik mengimplementasikan yang sebanding dengan <sertificate> {private int id; nama string pribadi; sertifikat publik () {} sertifikat publik (nama string) {this.name = name; } public int getId () {return id; } public void setid (int id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } public int compareto (sertifikat itu) {final int sebelum = -1; int final setelah = 1; if (itu == null) {return sebelumnya; } Sebanding inicertificate = this.getName (); Sebanding thatcertificate = that.getName (); if (inicertificate == null) {return setelah; } else if (thatcertificate == null) {return sebelumnya; } else {return thiscertificate.compareto (thatcertificate); }}} Tentukan file pemetaan hibernate:
Mari kita kembangkan file pemetaan yang menentukan bagaimana Hibernate mendefinisikan file pemetaan yang memetakan ke tabel basis data. Elemen <Set> akan digunakan untuk menentukan aturan untuk koleksi sortedset yang digunakan.
<? XML Versi = "1.0" encoding = "utf-8"?> <! Doctype hibernate-mapping public "-// hibernate/hibernate pemetaan dtd // en" "http://www.hibernate.org/dtd/hibernate-papping-3.0 <meta attribute = "class-description"> Kelas ini berisi detail karyawan. </meta> <id name = "id" type = "int" column = "id"> <generator/> </d> <set name = "sertifikat" cascade = "all" sort = "myclass"> <Key column = "oomeeree_id"/> <One-to-Many/</set> <Property name = "firstName" first "first" first "first" firste "=" "" "" "a name" firstName "firstName"/"FirstNOME =" kolom = "last_name" type = "string"/> <properti name = "gaji" kolom = "gaji" type = "int"/> </class> <class name = "sertifikat" tabel = "sertifikat"> <meta atribut = "kelas-deskripsi"> kelas ini berisi catatan sertifikat. </meta> <id name = "id" type = "int" column = "id"> <generator/> </d> <properti name = "name" column = "Certificate_name" type = "string"/> </class> </hibernate-mapping>
Format <smelasname> .hbm.xml di file peta, simpan file karyawan.hbm.xml di file peta. Saya sudah terbiasa dengan sebagian besar detail pemetaan, tetapi mari kita lihat semua elemen dalam file pemetaan:
Dokumen yang dipetakan adalah dokumen XML dengan <hibernate-Mapping> sebagai elemen root yang sesuai dengan setiap kelas yang berisi 2 elemen <slass>.
Elemen <slass> digunakan untuk menentukan pemetaan spesifik tabel basis data dari kelas Java. Nama Kelas Java Menentukan atribut nama elemen kelas dan Table Attribute Database Table Name ditentukan.
Elemen <meta> adalah elemen opsional yang dapat digunakan untuk membuat deskripsi kelas.
Elemen <d> memetakan atribut ID unik di kelas ke kunci utama tabel database. Atribut nama elemen ID mengacu pada kelas atribut dan atribut kolom mengacu pada kolom dalam tabel database. Atribut Type menyimpan tipe pemetaan hibernate, yang akan dikonversi dari Java ke tipe data SQL.
Elemen <Genator> dalam elemen ID digunakan untuk secara otomatis menghasilkan nilai kunci utama. Atur atribut kelas dari elemen yang dihasilkan untuk secara alami membiarkan hibernasi mengambil algoritma dalam identitas, urutan, atau hilo untuk membuat kunci primer sesuai dengan kemampuan dukungan dari database yang mendasarinya.
Elemen <property> digunakan untuk memetakan properti kelas Java ke kolom dalam tabel database. Atribut nama elemen mengacu pada kelas atribut dan atribut kolom mengacu pada kolom dalam tabel database. Atribut Type menyimpan tipe pemetaan hibernate, yang akan dikonversi dari Java ke tipe data SQL.
Elemen <Set> digunakan untuk mengatur hubungan antara sertifikat dan kelas karyawan. Kami menggunakan elemen <Set> dalam atribut Cascade untuk memberi tahu Hibernate untuk menyimpan objek sertifikat, dan juga ke objek karyawan. Atribut nama diatur ke variabel dari sortedset yang ditentukan dalam kelas induk, dalam kasus kami adalah sertifikat. Properti penyortiran dapat diatur ke penyortiran alami, atau dapat diatur ke implementasi kelas khusus sebagai java.util.c.c.parkorator. Kami telah menggunakan kelas myClass yang mengimplementasikannya sebagai java.util.
Elemen <yyy> adalah objek induk yang berisi kunci asing, yaitu kolom dalam tabel sertifikat. Karyawan meja.
Elemen <-satu-ke-banyak> menunjukkan bahwa objek karyawan melibatkan banyak objek sertifikat, dan oleh karena itu, objek sertifikat harus terkait dengan karyawan induk. Anda dapat menggunakan elemen apa pun dan <-satu-ke-satu>, <nan-to-one> atau <noter-to-my-my-my banyak sesuai kebutuhan.
Jika Anda menggunakan pengaturan sort = "alami", Anda tidak perlu membuat kelas terpisah, karena kelas sertifikat telah menerapkan antarmuka yang sebanding dan hibernate akan menggunakan compareto (didefinisikan sebagai nama sertifikat perbandingan di kelas sertifikat). Namun, kami menggunakan kelas pembanding kustom MyClass di file pemetaan kami, jadi kami harus membuat kelas ini berdasarkan algoritma penyortiran. Gunakan kelas ini untuk memilah urutan menurun.
Impor java.util.comparator; kelas publik myclass mengimplementasikan pembanding <certificate> {public int perbandingan (sertifikat O1, sertifikat O2) {final int sebelum = -1; int final setelah = 1; / * Untuk membalikkan urutan penyortiran, beberapa dengan -1 */ if (o2 == null) {return sebelum * -1; } Sebanding inicertificate = o1.getName (); Sebanding thatcertificate = o2.getName (); if (inicertificate == null) {return setelah * 1; } else if (thatcertificate == null) {return sebelum * -1; } else {return thiscertificate.compareto (thatcertificate) * -1; }}} Buat kelas aplikasi:
Akhirnya, kami akan membuat metode utama () dari kelas aplikasi untuk menjalankan aplikasi. Kami akan menggunakan aplikasi ini untuk menyimpan beberapa catatan karyawan bersama dengan sertifikat, dan kemudian kami akan mengajukan catatan pada operasi CRUD.
impor java.util.*; impor org.hibernate.hibernateException; impor org.hibernate.Session; Impor org.hibernate.transaction; impor org.hibernate.SessionFactory; impor org.hibernate.cfg.configuration; Public Class ManagementAmployee {Private Static Session Factory; public static void main (string [] args) {try {factory = new configuration (). configure (). buildSessionFactory (); } catch (Throwable ex) {System.err.println ("Gagal membuat objek SesionFactory." + Ex); Lempar pengecualian baruinitializerError (EX); } Manajemen Me = Manajemen baru (); / * Mari kita memiliki serangkaian sertifikat untuk karyawan pertama */ Treeset set1 = TreeSet baru (); set1.add (sertifikat baru ("MCA")); set1.add (sertifikat baru ("MBA")); set1.add (sertifikat baru ("MBA")); set1.add (sertifikat baru ("PMP")); / * Tambahkan catatan karyawan dalam database */ integer empid1 = me.addemployee ("manoj", "kumar", 4000, set1); / * Set sertifikat lain untuk karyawan kedua */ treeset set2 = TreeSet baru (); set2.add (sertifikat baru ("BCA")); set2.add (sertifikat baru ("BA")); / * Tambahkan catatan karyawan lain dalam database */ integer empid2 = me.addemployee ("dilip", "kumar", 3000, set2); / * Daftar semua karyawan */ me.listemployee (); / * Perbarui catatan gaji karyawan */ me.updateemployee (empid1, 5000); / * Hapus seorang karyawan dari database */ me.deleTeeMarder (empid2); / * Daftar semua karyawan */ me.listemployee (); } / * Metode untuk menambahkan catatan karyawan dalam database * / addemployee integer publik (string fname, string lname, int gaji, sortedset sertifikat) {session session = factory.opensession (); Transaksi tx = null; Integer Pegawai = NULL; coba {tx = session.begintransaction (); Karyawan Karyawan = Karyawan Baru (nama, lname, gaji); karyawan.setCertificates (cert); karyawan = (integer) session.save (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); } mengembalikan karyawan; } / * Metode untuk mencantumkan semua detail karyawan * / public void listeMiryees () {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Daftar karyawan = session.createqueery ("dari karyawan"). Daftar (); untuk (iterator iterator1 = karyawan.iterator (); iterator1.hasnext ();) {karyawan karyawan = (karyawan) iterator1.next (); System.out.print ("Nama Depan:" + karyawan.getFirstName ()); System.out.print ("Nama Belakang:" + karyawan.getLastName ()); System.out.println ("Gaji:" + karyawan.getSalary ()); SortedSet Certificates = usaha.getCertificates (); untuk (iterator iterator2 = sertifikat.iterator (); iterator2.hasnext ();) {sertifikat sertifikat = (sertifikat) iterator2.next (); System.out.println ("Sertifikat:" + certname.getName ()); }} tx.Commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }} / * Metode untuk memperbarui gaji untuk karyawan * / public void updateMireee (integer employeeid, int gaji) {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Pegawai Karyawan = (karyawan) sesi. karyawan.setsalary (gaji); session.update (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }} / * Metode untuk menghapus karyawan dari catatan * / public void deleteEmployee (integer usaha) {session session = factory.opensession (); Transaksi tx = null; coba {tx = session.begintransaction (); Pegawai Karyawan = (karyawan) sesi. session.delete (karyawan); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); e.printstacktrace (); } akhirnya {session.close (); }}}Setelah menyusun dan mengeksekusi, hasil berikut diperoleh di layar, dan catatan dibuat dalam tabel karyawan dan sertifikat. Anda dapat melihat bahwa sertifikat telah diurutkan dalam urutan yang berlawanan. Anda dapat mencobanya dengan mengubah file pemetaan, cukup atur sort = "natural" dan jalankan program, dan bandingkan hasilnya.
$ java manajemen
.....VARIOUS LOG MESSAGES WILL DISPLAY HERE.........First Name: Manoj Last Name: Kumar Salary: 4000Certificate: PMPCertificate: MCACertificate: MBAFirst Name: Dilip Last Name: Kumar Salary: 3000Certificate: BCACertificate: BAFirst Name: Manoj Last Name: Kumar Salary: 5000Certificate: PMPCertificate: MCACertificate: MBA
Jika Anda memeriksa formulir karyawan dan sertifikat, Anda harus merekamnya:
mysql> pilih * dari karyawan;
+----------------------------+----------+| ID | first_name | last_name | Gaji |+------------------------------------+------------+-----------+| 1 | Manoj | Kumar | 5000 |+--------------------------------+---------+1 baris di set (0,00 detik)
mysql> pilih * dari sertifikat;
+----+------------------+-------------+| ID | sertifikat_name | PEKERJA_ID |+----+------------------+-------------+| 1 | MBA | 1 || 2 | PMP | 1 || 3 | MCA | 1 |+----+------------------+-------------+3 baris dalam set (0,00 detik)