Senin, 22 Juni 2015

Membuat Aplikasi Java Web Sederhana dengan JSF + Spring Hibernate + Maven

Pada kesempatan kali ini saya ingin berbagi tutorial mengenai pembuatan aplikasi sederhana berbasis java web menggunakan jsf, spring hibernate dan maven. Ingin tahu apa itu jsf, spring hibernate, dan maven? Bisa dilihat disini.


Oke langsung saja.

1. Buat database terlebih dahulu berisi tabel produk dan users. Database kali ini bernama supermarket.




2. Buat aplikasi java web nya. Caranya Pilih File --> New Project dari menu utama untuk membuka Project wizard. Pilih Web Application dari kategori Maven. Klik Next. Ketik supermarket untuk nama project dan tentukan lokasi untuk menyimpan project. Pilih Server (Web Server) untuk deploy project kali ini pilih Glassfish dan tentukan Java EE version. Klik Finish. Lihat gambar.

3. Integrasikan database yang dibuat dengan cara klik Services di bagian kiri samping project. kemudian pilih database. Lalu integrasikan dengan mysql kita.
4. Buat struktur project seperti gambar di bawah ini
5. Adapun ini dari file tiap project tersebut yaitu:
WEB PAGES
terdapat folder META-INF yang berisikan context.xml

terdapat folder WEB-INF yang berisikan web.xml.
terdapat folder resources yang berisikan file css untuk styling


terdapat index.xhtml. Ini merupakan implementasi aplikasi crud. Di dalam index.xhtml ini akan di tampilkan views dari aplikasi CRUD. Tampilan ini menggunakan framework JavaServer Faces. 

terdapat login.xtml. Ini merupakan views dari tampilan login. Tampilan ini juga menggunakan JSF. 

Kemudian masuk ke source packagesnya. Ini merupakan implementasi dari maven. Di sini kita akan membuat aplikasi berdasarkan prinsip MVC. Terdapat package controller, dao, entity dan util. Adapun kegunaannya adalah sebagai berikut:
  • Paket util: untuk menampung file-file program bantuan untuk menangani koneksi ke database. Nantinya di paket ini akan berisi HibernateUtil.java yang di-generate melalui wizard. Ini adalah layer model. Di dalam package util terdapat:
    • NewHibernateUtil.java (berisi pengaturan session ke dalam database)
  • Paket entity: untuk menampung file-file program ORM (Object Relational Mapping) yang mem-mapping tabel database ke java class. Nantinya di paket ini akan berisi [namaTabel].java dan [namaTabel].hbm.xml yang akan di-generate melalui wizard. Ini adalah layer model. Di dalam package entity terdapat:
    • Produk.java (berfungsi untuk integrasi dengan tabel produk ke dalam views java web)
  • Paket dao: untuk menampung file-file program Data Access Object yaitu file program yang menangani fungsi CRUD (Create Read Update Delete) data. Ini adalah layer model. Di dalam package dao terdapat:
    • EntityBase.java (berfungsi untuk menangani connect dan disconnect session)
    • IDataAccess.java (berfungsi sebagai abstract pada konsep OOP. Jadi disini berisikan method yang akan diakses pada ProdukDAO.java )
    • ProdukDAO (berfungsi untuk operasi CRUD)
  • Paket controller: untuk menampung file-file program JSF Managed Bean yang berperan sebagai dispatcher atau mengendalikan file-file user interface (web). Ini adalah layer controller. Di dalam package Controller terdapat:
    • LoginBean.java (untuk mengecek username password yang diinputkan pada saat login)
    • NavigationBean.java (berfungsi untuk mengarahkan setelah pengecekan di dalam LoginBean.java. Apabila benar, maka akan diarahkan kemana. Apabila salah akan diarahkan kemana)
    • produkController.java (berfungsi untuk mengarahkan pada CRUD pada produk. Apabila data telah ditambahkan atau di edit maka akan dikemanakan itu data)





terdapat Other Sources. Di dalam src/main/resources terdapat beberapa package. 
a. terdapat
  • hibernate.cfg.xml (berfungsi untuk pengaturan koneksi dengan database)

  • Hibernate.reveng.xml (berfungsi untuk pengaturan koneksi dengan database dan tabel)

b. entity terdapat Produk.hbm.xml yang berfungsi untuk integrasi tabel produk dalam database supermarket terdapat id, nama, dan harga

6. Karena ini maven maka kita memerlukan dependensi. Dependensi tersebut kita setting dalam pom.xml


7. Setelah dependensi terinstal maka klik kanan pada project supermarket lalu Clean and Build. 

8. Setelah build successfull maka kita run dengan cara klik kanan pada project lalu klik run. maka akan muncul aplikasi CRUD sederhana seperti gambar.



Jika kita ingin menambah produk maka klik simpan
Jika kita ingin mengubah harga produk maka klik ubah

Jika kita ingin menghapus produk maka tinggal klik hapus
Apabila kita lihat di dalam database maka terlihat bahwa Buavita dengan harga 2000000 sudah masuk dalam database

Apabila Buavita dan beberapa produk lainnya dihapus maka di dalam database juga sudah terhapus.

Apabila kita ingin logout maka tinggal klik logout disamping tulisan welcome mutia. Maka akan mucul gambar seperti ini.

Akhirnya selesai sudah aplikasi java web dengan JSF, Spring Hibernate dan Maven. Walapun aplikasi ini sangat sederhana sekali namun proses pembuatannya sangat tidak sederhana. Memerlukan beberapa pengorbanan. Dengan pembuatan aplikasi ini saya jadi mengerti betapa susahnya membuat aplikasi java yang tidak rawan sql injection karena menggunakan spring hibernate. Selain itu kita juga tidak perlu query satu- satu. Jadi lebih mudah. 



Semoga aplikasi ini dapat membantu bagi yang baru pemula untuk belajar hibernate dan maven. Oya saya beserta anak anak yang ikut mata kuliah Open Source meminta maaf sebesar besarnya kepada Pak Hasan karena kita molor- molor terus pak. Maaf kalau kita jadi bikin pak hasan emosi. Maklum pak kita anak karet. Hehehe. Oya thanks a lot buat mas toni yang udah mau bantuin disela- sela kesibukannya ngerjain TA wkwk. Yang mau nyobain game nya bisa isi quesionernya dulu disini. Yang mau kenalan bisa pm di facebooknya. Jomblo lho saudara- saudara :p Dan, project java web ini dapat dilihat di githubsaya. Terima kasih.  

3 komentar:

  1. dulu pernah belajar nih, tapi perpustakkaan online klo gak slah..

    BalasHapus
  2. Ohiya? Wah sama sama masih belajar ini. Salam kenal :)

    BalasHapus
  3. kak mau tnya itu kenapa saya buat project maven nya error ya?

    BalasHapus