Build Hibernate Session Factory
Sama halnya dengan menggunakan JDBC, untuk menggunakan Hibernate kita harus setup dulu connectionnya. Untuk menghubungkan antara Database <-> Hibernate
kita membutuhkan hibernate configurasi yaitu dengan cara membuat file hibernate.cfg.xml
dalam classpath karena kita menggunakan Apache Maven jadi kita simpan file tersebut di src/main/resources
.
Setup hibernate.cfg.xml
Meng-konfigurasi hibernate sebenarnya ada 2 cara yaitu dengan Java Konfigurasi dan juga XML seperti yang sebelumnya saya sebutkan. nah kali ini saya mau menggunakan konfigurasi XML karena pada kenyataannya konfigurasi XML itu mudah untuk di baca tetapi jujur saja saya sih lebih prepare ke Java Konfigurasi karena sekarang XML udah mulai ditinggalkan orang-orang. tapi gak apa-apa, khan namanya belajar kita harus mulai dari yang paling mudah dulu.
Buat file hibernate.cfg.xml
dalam folder src/main/resources
seperti berikut:
*Developer Notes:
- Ada beberapa property yang harus temen-temen sesuaikan seperti username, password, url database dll
- Selebihnya nanti akan kita bahas di materi selanjutnya :)
Build Session Factory
SessionFactory ini pada dasarnya sama seperti objek Connection
atau DataSource
, jadi untuk mengeceknya kita harus membuatnya dulu. SessionFactory ini mengambil property settingnya yang ada pada file hibernate.cfg.xml
jadi alurnya kita harus load file hibernate.cfg.xml
tersebut dengan perintah seperti berikut, buat kelas baru dengan nama HibernateConfiguration
pada package com.maryanto.dimas.bootcamp.example.config
seperti berikut:
Untuk melakukan testing open connection ke database kita akan membuat Unit Testing menggunakan JUnit sebagai berikut:
Buat class dalam folder src/test/java
kemudian buatlah package com.maryanto.dimas.bootcamp.test
dan nama classnya yaitu TestOpeningConnectionHibernate
seperti berikut:
Sekarang kita coba run test nya dengan perintah
berikut hasilnya
com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.maryanto.dimas.bootcamp.test.TestOpeningConnectionHibernate
[main] INFO com.maryanto.dimas.bootcamp.test.TestOpeningConnectionHibernate - init hibernate session
Nov 21, 2020 12:57:48 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate ORM core version 5.4.22.Final
Nov 21, 2020 12:57:48 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator instantiateC3p0Provider
WARN: HHH000022: c3p0 properties were encountered, but the c3p0 provider class was not found on the classpath; these properties are going to be ignored.
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/hibernate_core]
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {password=****, autocommit=false, user=bootcamp}
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Nov 21, 2020 12:57:48 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 10 (min=1)
Nov 21, 2020 12:57:49 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect
Nov 21, 2020 12:57:49 PM org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 6.1.6.Final
Nov 21, 2020 12:57:49 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@48df4071] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
Nov 21, 2020 12:57:49 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
[main] INFO com.maryanto.dimas.bootcamp.test.TestOpeningConnectionHibernate - destroy hibernate session!
[main] INFO com.maryanto.dimas.bootcamp.test.TestOpeningConnectionHibernate - init hibernate session
[main] INFO com.maryanto.dimas.bootcamp.test.TestOpeningConnectionHibernate - destroy hibernate session!
Process finished with exit code 0
Karena dari hasil testnya success atau tidak ada error maka kita udah bisa konek ke database lewat Hibernate Framework.
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!