
Hibernate ORM (Hibernate in short) is an object-relational mapping framework for the Java language. It provides aframework for mapping an object-oriented domain model to a relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.
Hibernate is free software that is distributed under the GNU Lesser General Public License 2.1.
sumber : wiki
Hari ini kita belajar koneksi ke database postgreSQL menggunakan hibernate ORM dan apache maven untuk manajemen projeknya. Artikel kali ini kita beri judul:
Apache Maven Hibernate PostgreSQL
Mari kita mulai belajar Apache Maven Hibernate PostgreSQL, berikut langkah-langkahnya:
1). Buat project maven dengan nama “Belajar Apache Maven Hibernate PostgreSQL” baca Apache Maven Hello World untuk mengikuti langkah-langkahnya
2). Buka file “pom.xml” dan tambahkan dependency seperti dibawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<dependencies> <!-- Hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.5.Final</version> </dependency> <!-- Database Postgres --> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency> </dependencies> |
3). Create class “Mahasiswa” simpan di package “com.wijaksana.belajar.db”, penampakan class seperti ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
@Entity @Table(name = "mahasiswa") public class Mahasiswa { private String kode; private String nama; private String alamat; private String nohp; private int umur; public Mahasiswa() { } @Id @Column(name = "kode") public String getKode() { return kode; } public void setKode(String kode) { this.kode = kode; } @Column(name = "nama") public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } @Column(name = "alamat") public String getAlamat() { return alamat; } public void setAlamat(String alamat) { this.alamat = alamat; } @Column(name = "nohp") public String getNohp() { return nohp; } public void setNohp(String nohp) { this.nohp = nohp; } @Column(name = "umur") public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } } |
class mahasiswa diatas diambil dari artikel Apache Velocity Generate DAO kita modifikasi menggunakan annotation untuk mapping ke tabel mahasiswa.
4). Create file “hibernate.cfg.xml” simpan di folder “resources”, penampakan seperi ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="connection.driver_class">org.postgresql.Driver</property> <property name="connection.url">jdbc:postgresql://localhost:5432/wijaksana</property> <property name="connection.username">wijaksana</property> <property name="connection.password">wijaksana</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">false</property> <property name="format_sql">true</property> <mapping class="com.wijaksana.belajar.db.Mahasiswa" /> </session-factory> </hibernate-configuration> |
5). Terakhir kita membuat class “MavenHibernate” jangan lupa centang void main, berikut penampakannya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
public static void main(String[] args) { Configuration cfg = new Configuration(); cfg.configure("hibernate.cfg.xml"); ServiceRegistryBuilder srb = new ServiceRegistryBuilder(); srb.applySettings(cfg.getProperties()); ServiceRegistry sr = srb.buildServiceRegistry(); SessionFactory factory = cfg.buildSessionFactory(sr); Session session = factory.openSession(); Query query = session.createQuery("FROM Mahasiswa"); List<Mahasiswa> mahasiswas = query.list(); System.out.println("===== LIST ====="); for (Mahasiswa mahasiswa : mahasiswas) { System.out.println(mahasiswa.getKode() + " : " + mahasiswa.getNama() + " : " + mahasiswa.getAlamat() + " : " + mahasiswa.getNohp() + " : " + mahasiswa.getUmur()); } System.out.println(); Transaction trx = session.beginTransaction(); try { Mahasiswa newMahasiswa = new Mahasiswa(); newMahasiswa.setKode("1234"); newMahasiswa.setNama("Wijaksana"); newMahasiswa.setAlamat("Solo"); newMahasiswa.setNohp("9889"); newMahasiswa.setUmur(10); System.out.println("===== INSERT ====="); session.save(newMahasiswa); System.out.println(newMahasiswa.getKode() + " : " + newMahasiswa.getNama()); System.out.println(); trx.commit(); } catch (Exception e) { e.printStackTrace(); trx.rollback(); } mahasiswas = query.list(); System.out.println("===== LIST ====="); for (Mahasiswa mahasiswa : mahasiswas) { System.out.println(mahasiswa.getKode() + " : " + mahasiswa.getNama() + " : " + mahasiswa.getAlamat() + " : " + mahasiswa.getNohp() + " : " + mahasiswa.getUmur()); } System.out.println(); session.clear(); trx = session.beginTransaction(); try { Mahasiswa newMahasiswa = new Mahasiswa(); newMahasiswa.setKode("1234"); newMahasiswa.setNama("Yulianto"); newMahasiswa.setAlamat("solo"); newMahasiswa.setNohp("9889"); newMahasiswa.setUmur(10); System.out.println("===== UPDATE ====="); session.update(newMahasiswa); System.out.println(newMahasiswa.getKode() + " : " + newMahasiswa.getNama()); System.out.println(); trx.commit(); } catch (Exception e) { e.printStackTrace(); trx.rollback(); } mahasiswas = query.list(); System.out.println("===== LIST ====="); for (Mahasiswa mahasiswa : mahasiswas) { System.out.println(mahasiswa.getKode() + " : " + mahasiswa.getNama() + " : " + mahasiswa.getAlamat() + " : " + mahasiswa.getNohp() + " : " + mahasiswa.getUmur()); } System.out.println(); session.clear(); trx = session.beginTransaction(); Mahasiswa newMahasiswa = new Mahasiswa(); newMahasiswa.setKode("1234"); newMahasiswa.setNama("Yulianto"); newMahasiswa.setAlamat("solo"); newMahasiswa.setNohp("9889"); newMahasiswa.setUmur(10); System.out.println("===== DELETE ====="); session.delete(newMahasiswa); System.out.println(newMahasiswa.getKode() + " : " + newMahasiswa.getNama()); System.out.println(); trx.commit(); mahasiswas = query.list(); System.out.println("===== LIST ====="); for (Mahasiswa mahasiswa : mahasiswas) { System.out.println(mahasiswa.getKode() + " : " + mahasiswa.getNama() + " : " + mahasiswa.getAlamat() + " : " + mahasiswa.getNohp() + " : " + mahasiswa.getUmur()); } System.out.println(); session.close(); } |
6). Run & Output:
===== LIST =====
1 : DKI : Pilkada : 87098 : 1
2 : Aman : Jakarta : 080980 : 1
3 : Damai : Jakarta : 88799 : 1===== INSERT =====
1234 : Wijaksana===== LIST =====
1 : DKI : Pilkada : 87098 : 1
2 : Aman : Jakarta : 080980 : 1
3 : Damai : Jakarta : 88799 : 1
1234 : Wijaksana : Solo : 9889 : 10===== UPDATE =====
1234 : Yulianto===== LIST =====
1 : DKI : Pilkada : 87098 : 1
2 : Aman : Jakarta : 080980 : 1
3 : Damai : Jakarta : 88799 : 1
1234 : Yulianto : solo : 9889 : 10===== DELETE =====
1234 : Yulianto===== LIST =====
1 : DKI : Pilkada : 87098 : 1
2 : Aman : Jakarta : 080980 : 1
3 : Damai : Jakarta : 88799 : 1
Semoga Membantu,
Salam berbagi,
Yulianto Wijaksana