Spring Boot + PostgreSQL CRUD Restful Api

 

Spring Boot + PostgreSQL + JPA/Hibernate CRUD Restful API Tutorial


Siap Belajar Spring boot ke Postrgres saya tidak akan bertele tele. langsung saja...

Requirements:

  • JDK 8
  • Spring Boot Tools 3
  • Maven 3
  • PostgreSQL
  • Postman


Siapkan 1. Database Posgtres dg Table .
    -- Table: rest

-- DROP TABLE rest;

CREATE TABLE rest
(
  id serial NOT NULL,
  key character varying(100) NOT NULL,
  value character varying(250) NOT NULL,
  rand smallint NOT NULL,
  CONSTRAINT rest_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE rest
  OWNER TO postgres;

Penampakan seperti berikut:



      2. 

Memulai project di STS

Buat project baru di STS dengan cara File > New > Spring Starter Project. Kemudian beri nama pada bagian project, description, packagce dan lain lain kemudian klik next.

· Name : spring_jdbc

· Group : com.example.jdbc

· Package : Group : com.example.jdbc

Setelah selesai, tambahkan dependency pada file pom.xml sebagai berikut :

Kemudian klik kanan pada project > maven > update project..

Konfigurasi ke database

Pada STS direktori src/main/resource buka application.properties dan ketikan :

  • examplejdbc merupakan nama db yang pada langkah awal dibuat
  • spring.datasource.url berisi nama database yang tadi dibuat. Pada dokumentasi ini nama database yang dibuat adalah examplejdbc
  • spring.datasource.username berisi username dan spring.datasource.password berisi password postgres ketika dibuat

Membuat model

Pada dokumentasi ini, kita akan membuat 2 model, yaitu model untuk input berupa Rest.java dan model untuk output berupa RestResult.java

Model pertama, Rest.java. Buat package baru dengan nama com.example.jdbc.model dan tambahkan class baru dengan nama Rest.java. isi dari class tersebut sebagai berikut :

Kemudian buat model yang kedua. Buat class baru dengan nama RestResult.java pada package model. Isi dari class tersebut sebagai berikut :

buat class baru dengan nama RestMapper.java pada package yang sama. Class ini merupakan interface dari RowMapper, digunakan untuk mengambil data dari database dengan querynya dan mengkonversikanya. Isi dari class tersebut sebagai berikut :

Kemudian buat class lagi di package yang sama dengan dengan nama RestDaoImp.java class ini merupakan implement dari interface restdao. Class ini berisi sql query dari interface dao dengan isi sebagai berikut:

  • Isi dari method getAll. Method ini bergungsi menyeleksi semua data dari table rest dan di sort secara ascending
  • Isi dari method getRestById. Method ini berisi query berupa men select data berdasarkan id
  • addRest(). Menambahkan data ke dalam database. Pada bagian akhir diinputkan data yg diambil dari method getRandomNumber
  • updateRest(). Mengupdate data ke dalam database. Data yang diupdate brupa random number, key, dan value
  • deleteRestById(). Method ini berfungsi menghapus data berdasarkan id yang diberikan
  • getRandomNumber(). Method ini berfungsi mengenerate random number untuk diinpout ke dalam database
  • lastestInput(). Method ini berfungsi agar mengetahui id teratas yang ada di database.
  • Hasil akhir dari class tersebut sebagai berikut :

Membuat service

Buat package baru dengan nama com.example.jdbc.service. kemudian buat class baru pada package tersebut dengan nama RestService.java . class ini merupakan interface yang berisi method yang dapat diakses pada controller. Isi dari class ini sebagai berikut :

Kemudian buat class dengan nama RestServiceImp.java. class ini berisi implementasi dari method yang ada di interface RestService.

Kemudian isi code dari method tersebut sebagai berikut.

  • getAll()
  • getRestById()
  • addRest()
  • updateRest()
  • deleteRestById()
  • lastestInput()

Sehingga hasil akhir dari class tersebut sebagai berikut :

Membuat controller

Buat package baru dengan nama com.example.jdbc.controller. kemudian buat class baru pada package tersebut dengan nama RestController.java . class ini merupakan controller dari aplikasi yang dibuat. Isi dari class tersebut sebagai berikut :

Method getById(). Method ini berfungsi untuk menampilkan data dari hasil yang diberikan. Method ini menggunakan http method Get

  • method getAll(). Method ini menggunakan http method get.
  • Method addRest(). Input yang dimasukan berupa key dan value sesuai model rest. Kemudian hasil outputnya berupa model dari RestResult
  • Method updateRest(). Menggunakan http method put.
  • Method delete

Hasil akhir dari class tersebut sebagai berikut :

Uji coba :

  • Get All dengan method get
  • get by id dengan method get
  • add dengan method Post
  • update dengan method put
  • delete dengan method delete

Demikian. Lain kali saya akan bahas Golang

Comments