Spring boot Hibernate Basic 1 CRUD Menggunakan database H2

    Spring boot merupakan salah satu web framework Java yang cukup populer saat ini. Mengakselarasi konfigurasi dari Spring yang sudah ada. Dilansir dari artikel synk Spring boot menjadi terpopuler dan menyentuh share di 40% untuk penggunaan web framework di Java. Pada artikel terkait juga Hibernate merupakan Framework ORM (Object Relational Mapper) yang paling banyak digunakan. 

    Salah satu task populer dari sebuah adalah kemampuan CRUD (Create - Read - Update - Delete) ke dalam database. Oleh karena itu pada artikel kali ini saya akan membagikan bagaimana melakukan CRUD di Spring boot Hibernate Data JPA dengan menggunakan database H2. Untuk memudahkan integrasi kita akan menggunakan Spring Data JPA ditambah dengan Spring Web. Dari artikel ini diharapkan bisa belajar dan berdiskusi bersama bagaimana Hibernate, Spring Data JPA, dan Spring boot digunakan untuk melakukan CRUD pada database di IDE Spring Tool Suite (STS) atau Eclipse.

Tools dan Spesifikasi :

  • Spring boot framework
    • V. 3.2.5
  • IDE Eclipse / STS (Spring Tool Suite) / Intellij idea
    • penulis menggunakan STS yang merupakan turunan dari Eclipse tapi fokus ke penggunaan Spring framework.
  • Java 17
    • penulis menyarankan penggunaan Java 17 atas, mengikuti default di spring initializr (per tanggal 27 April 2024)
  • Maven Project
    • untuk software project management menggunakan Maven.

Tutorial

Pembuatan Maven Project

Subbab ini kita berfokus untuk membuat project maven sampai project berhasil di running tanpa masuk ke bahasan database dll.

  1. Buat project spring boot menggunakan spring initializr di https://start.spring.io/. disini menggunakan dependencies : 
    • H2 Database, 
    • Spring Data JPA, 
    • Spring Web, 
    • Spring Boot DevTools.(cek gambar)
  2. Lalu pilih generate

  3. File akan terdownload sesuai dengan name di isian project metadata (learn_hibernate). Extract folder zip hasil generate.
  4. Import maven project yang sudah didownload tadi ke dalam STS / Eclipse workspace dengan cara:
    • Pilih file terus pilih import, terus pilih maven > existing maven project,

    • Pada root directory browse ke path folder extract tadi sampai folder .mvn dan src terlihat lalu pilih select folder,

    • Checklist file pom.xml lalu pilih finish,

    • Tunggu sampe proses download package dan preparasi selesai. proses ini membutuhkan koneksi internet,

    • Jika step proses download package dan prerparasi sudah selesai, pada project explorer buka src/main/java > com.sufyan97.learn_hibernate > LearnHibernateApplication.java. lalu klik kanan pilih run as > java application. Atau double klik file .java tadi kemudian di layar editor tekan alt + shif +x lalu j.

H2 Database dan Konfigurasi di Application.properties 

    Sekilas tentang H2 database, H2 adalah relational database yang ditulis menggunakan bahasa pemrograman Java dan bisa bersifat embeded. Simpelnya kita tidak perlu melakukan proses install secara terpisah untuk menjalankan database ini. Pada spring boot package H2 Database yang berada pada pom.xml bagian <artifactId>h2</artifactId> dependency sudah diatur sedemikian rupa sehingga bisa langsung digunakan.

    Setelah prosess konfigurasi maven di proses sebelumnya selesai. Jika kita perhatikan pada log console maka akan muncul HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:d2a06419-ed54-41ca-90ef-edfbd4961921 user=SA. Tidak selalu d2a06419 ... edfbd4961921 bisa juga bernilai lain. Jika kita buka http://localhost:8080/h2-console/login.jsp. Lalu pada bagian JDBC URL kita isikan jdbc:h2:mem:d2a06419-ed54-41ca-90ef-edfbd4961921, setelah itu usernamenya diisikan SA dan kita test connection maka akan success. (perhatikan gambar di bawah)

    Masalah akan muncul jika kita terus-terusan melakukan reload aplikasi, mem:d2a06419... nilainya akan selalu berubah. Untuk mengatasi hal demikian, kita bisa melakukan konfigurasi pada application.properties. Untuk masuk ke dalam application.properties buka project explorer cari src/main/resources atau kita bisa cari file menggunakan alt+shift+r terus ketikan application.properties.
tambahkan konfigurasi berikut:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
    jika sudah lakukan save kemudian stop program lalu Run as Java lagi untuk LearnHibernateApplication.java. Buka kembali console H2 melalu link http://localhost:8080/h2-console/login.jsp lalu isikan sesuai konfig application.properties termasuk password.

Spring data JPA & Hibernate

    Style saya dalam folder Spring Boot adalah per fitur. Jadi semisal fitur itu bernama barang maka Model, Repository, Service, dan yang terkait akan ada dalam 1 folder. Ada juga style dimana dipisah per fungsi misalkan per repository, per service dsbnya.
  1. Membuat model Barang.java  
    hal yang perlu pertama dibuat adalah Model yang merepresentasikan tabel barang. File model bernama Barang.java. Anda bisa melihat pada code berikut:

  2. Membuat repository
    Lalu buat BarangRepository yang akan menjadi repository untuk tabel dan model Barang.

  3. Membuat service
    Lalu buat BarangService yang akan menghandle service untuk keperluan object Barang. Repository akan diakses lewat service ini.

  4. Lakukan test
    Setelah itu buka LearnHibernateApplication.java. Pada file ini kita akan memanggil BarangService. Codenya adalah seperti berikut:

    1. insert
      perhatikan pada baris mulai dari comment //INSERT BARANG BARU sampai //INSERT BARANG LAGI. Pada baris tersebut kita membuat object Barang bernama sampoBaru. Kemudian disimpan ke database. berikut hasilnya:
    2. update
      lalu pada baris code yang dimulai dari //INSERT BARANG LAGI sampai barangService.update(tepungTerigu);. Object tepungTerigu yang sudah dibuat kemudian disimpan ke database, lalu megubah hargaSatuan dari 35000 ke 36000. Kemudian, check database:
    3. read
      Pada baris selanjutnya kita akan membaca sampoBaru. Simpan hasilnya ke object readSampo. Lalu dicetak melalui System.out.println. Hasilnya:
    4. delete
      Kemudian lakukan delete baris readSampo tadi melalui method destroy pada service barangService. Sehingga hasil akhir pada tabel di database adalah sebagai berikut:
  5. Tips untuk menjalankan ini, anda bisa comment atau delete baris code yang tidak perlu pada  LearnHibernateApplication.java

Anda bisa mengakses source codenya di github ini.

Referensi


Posting Komentar untuk "Spring boot Hibernate Basic 1 CRUD Menggunakan database H2"