Belajar Membuat CRUD Dengan SPRING

Pada kesempatan kali ini kita akan membahas tentang  framework,  sebelum masuk pada pembuatan projeknya, kita harus mengetahui dahulu itu framework. Framework atau bahasa Indonesianya kerangka kerja adalah sebuah software untuk memudahkan para programmer membuat aplikasi atau web yang isinya adalah berbagai fungsi, plugin, dan konsep sehingga membentuk suatu system tertentu. Dengan menggunakan framework, sebuah aplikasi akan tersusun dan terstruktur dengan rapi. Sekarang kita akan mulai membuat projeknya.
Sebelummasukpadapembuatanaplikasinyakitaharusmendownloadprojecterlebihdahulu Di
link http://start.spring.io/ contohnyasebagaiberikut


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0fYOljwvhSU68oQSNCiEI6DRbLTkxpQzGQtOOkiKX3_mcAp8HW-zdCo4EIUIOEtlD-JoG7OzCrMqr5gt6hV1ow1WhhhbV8Y0XzXh9RII54yed7JB_cYtzuqq4_R4rb7KDrWaK_eLpNRmU/s1600/1.PNG

Didalam project inisayamenggunakan spring boot versi 158 dan dependencies-nyasayamenggunakan WEB, MYSQL, JPA, danThymeleaf. Nama project-nyasayaberinama “Tugas_UTS” Untukmendownload file tersebutklik generate project.
Jikasudahkita Generate Project dan file berbentuk file zip. diextracdulu yah..!!!!
kemudianBukaaplikasiNetbeansdan open project
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif1su-PE31fos3cKVIgqWr2raOvJxu8oFv6r073bBQ2aCWMhNbmVKfA6ZLzWhUMRNqxdsasHV-GIAXb1n9-SP4iyQRNiRzZ2FKBEDnUSFGgHAvTLRKrGf7lZjfXdt6SYXVdcKDnEKhTl6i/s1600/2.png
SelanjutnyaPada  source package kitabuat package baru

Pada package entity kitabuat class baruyaitu class mahasiswa.java

Kemudiankitamengedit file class Mahasiswaberikutcodingannya
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
packagefadli.com.andre_uts.entity;

importjava.util.Date;
importjavax.persistence.Column;
importjavax.persistence.Entity;
importjavax.persistence.GeneratedValue;
importjavax.persistence.Id;
importjavax.persistence.Table;
importjavax.persistence.Temporal;
importjavax.persistence.TemporalType;
importorg.hibernate.annotations.GenericGenerator;

public class Mahasiwa {

  @Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String Nim;
@Column(nullable = false)
private String Nama;
@Column(name = "tanggal_lahir", nullable = false)
@Temporal(TemporalType.DATE)
private Date tanggalLahir;
@Column(nullable = false)
private String Alamat;
@Column(nullable = false)
private String No_telp;
}
Setelahitukitatekanalt+insertdankitapilih getters and setter, kemudiankitacentangsemuacolomlalu generate
Selanjutnyakitabuatclass  barudengannama buku.java. berikutadalahkodingnya
packagefadli.com.andre_uts.entity;

importjava.util.Date;
importjavax.persistence.Column;
importjavax.persistence.Entity;
importjavax.persistence.GeneratedValue;
importjavax.persistence.Id;
importjavax.persistence.Table;
importjavax.persistence.Temporal;
importjavax.persistence.TemporalType;
importorg.hibernate.annotations.GenericGenerator;


 @Entity
@Table (name ="tbl_buku")
public class buku {

           @Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@Column(nullable = false)
private String Judul_buku;
@Column(nullable = false)
private String Penerbit;
}
Setelahitukitatekanalt+insertdankitapilih getters and setter, kemudiankitacentangsemuacolomlalu generate.
Sekarangkitaakanbuat packagedaodanbuat interface mahasiswa.java dan buku.java
selanjutnyatambahkankodinganseperiberikut extend Paggingdanseterusnyalihatpadagambar

Mahasiswacontroller.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
packagefadli.com.andre_uts.controller;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
packagefadli.com.andre_uts.controller;

importfadli.com.andre_uts.dao.mahasiswaDao;
importfadli.com.andre_uts.entity.Mahasiswa;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.data.domain.Page;
importorg.springframework.data.domain.Pageable;
importorg.springframework.http.HttpStatus;
importorg.springframework.web.bind.annotation.PathVariable;
importorg.springframework.web.bind.annotation.RequestBody;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RequestMethod;
importorg.springframework.web.bind.annotation.ResponseStatus;
importorg.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("/api")
public class MahasiswaController {
   @Autowired
privatemahasiswaDaomahasiswaDao;

@RequestMapping(value = "/mahasiswa", method = RequestMethod.GET)
public Page<Mahasiswa>findAll(Pageablepageable) {
returnmahasiswaDao.findAll(pageable);
    }

@RequestMapping(value = "/mahasiswa", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void save(@RequestBodyMahasiswa m) {
mahasiswaDao.save(m);
    }

@RequestMapping(value = "/mahasiswa/{id}", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.OK)
public void edit(@PathVariable String id, @RequestBodyMahasiswa m) {
m.setid(id);
mahasiswaDao.save(m);
    }

@RequestMapping(value = "/mahasiswa/{id}", method = RequestMethod.DELETE)
@ResponseStatus(HttpStatus.OK)
public void delete(@PathVariable String id) {
Mahasiswa m = mahasiswaDao.findOne(id);
if (m != null) {
mahasiswaDao.delete(id);
        }
    }
}

Bukucontroller.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
packagefadli.com.andre_uts.controller;

importfadli.com.andre_uts.dao.bukuDao;
importfadli.com.andre_uts.entity.buku;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.data.domain.Page;
importorg.springframework.data.domain.Pageable;
importorg.springframework.http.HttpStatus;
importorg.springframework.web.bind.annotation.PathVariable;
importorg.springframework.web.bind.annotation.RequestBody;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RequestMethod;
importorg.springframework.web.bind.annotation.ResponseStatus;
importorg.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class BukuController {

@Autowired
privatebukuDaobukuDao;

@RequestMapping(value = "/Buku", method = RequestMethod.GET)
public Page<buku>findAll(Pageablepageable) {
returnbukuDao.findAll(pageable);
    }

@RequestMapping(value = "/Buku", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void save(@RequestBodybuku b) {
bukuDao.save(b);
    }

@RequestMapping(value = "/Buku/{id}", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.OK)
public void edit(@PathVariable String id, @RequestBodybuku b) {
b.setid(id);
bukuDao.save(b);
    }

@RequestMapping(value = "/Buku/{id}", method = RequestMethod.DELETE)
@ResponseStatus(HttpStatus.OK)
public void delete(@PathVariable String id) {
buku b = bukuDao.findOne(id);
if (b != null) {
bukuDao.delete(id);
        }
    }
}
Selanjutnyapada application propertis 

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DS5D-A-MPg8gPhb9uUm_GqOP5l9JKZuO8XOoIMACt8qbULoVFra_osVruzqfa6e3M3-2WMQ2pK5-GusnEsm6fhpExcs0BUR3wxhAQv3sEulP_90AW8B2cCw2wqcdxa6A5k5EeU-TZKvc/s1600/11.PNG
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DS5D-A-MPg8gPhb9uUm_GqOP5l9JKZuO8XOoIMACt8qbULoVFra_osVruzqfa6e3M3-2WMQ2pK5-GusnEsm6fhpExcs0BUR3wxhAQv3sEulP_90AW8B2cCw2wqcdxa6A5k5EeU-TZKvc/s1600/11.PNG
Isikanconectionsbgberikut

spring.datasource.url=jdbc:mysql://localhost/db_pendaftaran
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.generate-ddl=true

selanjutnyabuat database baru
dengancarabukalocalhost/phpmyadminpasstikanxampptelahaktif
dan file clean and build

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCHhjS_jafJLq0YXOshW4qipb0zbmaaow23gPfC-x0tK59B6NfCgODQndX2Kg9OzTW02n4xcqhBEwFuiT3E1NtofYeznsVxi-Vp6094ffH_zlJiur3Tu1VzQQkTFPyhVn5KNd7FOzJF693/s1600/12.PNG








Jikasuksesmakatampilannyasebagaiberikut

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_jpBPXmZoDHsCM4hsH6V3qBFL_rS9be-sXdIpsHVyqN2R8SJd2dWJcNXGQm4f19hDaJ50htHakXHy5NgyhDBtK5PBm73dw1KjJEy5Z1VSXgaQa5-scVX8rFWJguVL_iEB7UWrIL2fu3AT/s1600/13.PNG


Buat package baruMahasiswa  buat  file html, form.html dan list.html

Bottom of Form

Berikutadalah file lihat.html
Tambah.html
Berikutadalahhasilnya.
DaftarMahasiswa
nim
nama
Aksi

Tambah Data
Top of Form
nim
Pesan Error
nama
Pesan Error
Simpan



Kemudianbuat package barubuku  buat  file html, form.html dan list.htmldanberikutadalahhasilnya.

Daftarbuku
kode
nama
Aksi


Tambah Data
Top of Form
kode
Pesan Error
nama
Pesan Error
Simpan





Bottom of Form
Bottom of Form


0 komentar: