Membangun Aplikasi CRUD Java Swing Menggunakan Konsep Model-View-Controller Ruby on Rails Bagian 2


Artikel sebelumnya “Membangun Aplikasi CRUD Java Swing Menggunakan Konsep Model-View-Controller Ruby on Rails” sudah selesai. Namun ada beberapa masalah yang seperti dituliskan pada bagian akhir artikel sebelumnya itu, yaitu :

  1. Harusnya saat di klik INSERT, setelah data sukses dimasukkan ke database dan tabel, harusnya data di form jadi clear.
  2. Harusnya saat baris tabel terseleksi, data langsung ada di form, jadi kalo mau Update gampang πŸ˜€

Jadi dari sini diperlukan sebuah aksi RESET ya itu aksi yang menghapuskan seluruh text form sehingga kosong, dan juga aksi SELECT ROW, yang menampilkan data baris tabel yang terseleksi ke form. Dari sini perlu kita tambahkan 2 buah aksi dalam Controller-nya, yaitu aksi reset() dan aksi selectRow() :

    public void reset(){
	view.getTextFirstName().setText(null);
	view.getTextLastName().setText(null);
    }

    public void selectRow() {
	// dapatkan baris yang terseleksi
	int index = view.getTablePerson().getSelectedRow();
	// jika ada yang terseleksi
	if (index != -1) {
	    // ambil data person dari tablemodel
	    Person person = view.getTableModelPerson().select(index);
	    // tampilkan di form
	    view.getTextFirstName().setText(person.getFirstName());
	    view.getTextLastName().setText(person.getLastName());
	}
    }

Dan selain itu kita perlu mengubah aksi tombol buttonInsert menjadi :

    private void buttonInsertActionPerformed(java.awt.event.ActionEvent evt) {
	// TODO add your handling code here:
	controller.insert();
	controller.reset();
    }

Dan juga perlu menambahkan aksi saat tabel terseleksi, sehingga kita harus mengubah konstruktor PersonView menjadi seperti dibawah ini :

public class PersonView extends javax.swing.JFrame {

    private TableModelPerson tableModelPerson;

    private PersonController controller;

    /** Creates new form PersonView */
    public PersonView() {
	initComponents();

	tableModelPerson = new TableModelPerson();
	tablePerson.setModel(tableModelPerson);

	controller = new PersonController(this);
	controller.select();

	tablePerson.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

	    public void valueChanged(ListSelectionEvent e) {
		controller.selectRow();
	    }
	});
    }

Dan sekarang selesai, tinggal kita jalankan aplikasinya πŸ˜€

Download SourceCode

Silahkan download sourcecodenya –> disini <–

Iklan

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8


Mau melakukan migrasi dari pure JDBC ke JPA?

Mungkin suatu saat kita akan melakukan migrasi dari aplikasi yang menggunakan JDBC ke JPA, namun yang menjadi permasalahan adalah, tabel-tabel sudah ada di database, dan tidak mungkin membuat ulang tabel-tablenya. Kalaupun mau, paling kita harus membuat entity-entity class nya secara manual, dan mapping nya harus sama dengan tabel yang ada di database. No problem selama banyak tabelnya dibawah 20 :D, tapi bagaiman jika total tabel nya ada 50? 😦 #capekkayaknya

Jika kita menggunakan NetBeans IDE, ini bukan masalah πŸ˜€ Kenapa? Karena NetBeans punya fitur otomatis pembuat class entity dari tabel yang ada di database, jadi kita tidak perlu membuatnya secara manual πŸ˜€ Keren kan!

Bagaimana caranya? Gampang Kok πŸ˜€

Membuat Project Baru

Untuk membuat project baru di NetBeans caranya cukup mudah, tingal lewat menu File -> New Project, maka tinggal kita pilih mau membuat project apa πŸ˜€

Saya anggap anda telah membuat sebuah project baru, atau sebenarnya project yang lama pun tidak mengapa πŸ˜€

Membuat Entity Class Otomatis

Untuk membuat class-class entity secara otomatis, caranya lewat menu File -> New File , atau Ctrl + N. Setelah itu akan muncul dialog, dan pada bagian Categories, pilih Persistence dan pada bagian File Types, pilih Entity Classes from Database :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next untuk melanjutkan, maka akan keluar dialog untuk Database Table, pilihlah koneksi yang akan digunakan pada bagian Database Connection, jika belum tersedia silahkan membuat dulu koneksinya :

Tambahkan tabel-tabel yang sekiranya akan dibuatkan sebuah entity class, misal saya tambahkan semua tabelnya :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next, dan sekarang saatnya di mapping dengan entity class. Ubahlah bagian Class Name dengan nama kelas yang kita inginkan :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

dan jika terdapat warning “The project does not have persistence unit…“, maka klik tombol Create Persistence Unit :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Beri nama persistence unitnya lalu klik tombol Create untuk membuat persistence unit tersebut. Dan sekarang tidak ada warning lagi πŸ˜€ :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Next dan sekarang kita harus melakukan konfigurasi relasi antar entitas. Ubah Assosiation Fetch dan Collection Type sesuai dengan yang kita inginkan, misal saya menggunakan fetch dan java.util.List :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Setelah itu klik tombol Finish, dan tunggu sampai selesai :

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Sekarang semua Tabel sudah menjadi Entity Class,

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

Membuat Entity Class JPA dari Database Secara Otomatis Menggunakan NetBeans IDE 6.8

mudah bukan, bahkan kita tidak perlu coding sedikitpun πŸ˜€

“Jangan membeli rumah di lingkungan keputusasaan. Harapan masih ada. Jangan pergi menuju kegelapan. Ada cahaya.”, Jallaludi Rumi.

Java Enterprise 6 in Preview


sekarang Java Enterprise 6 dah mulai di release versi Previewnya, hmm sepertinya detik-detik releasenya JEE6 dah didepan mata nih πŸ˜€

kalo mo coba download versi Previewnya silahkan kesini :

Java Enterprise Edition 6

di JEE6 ini bakal banyak yang baru seperti :

  • EJB 3.1
  • WebBeans
  • JSF 2
  • JPA 2
  • Servlet 3

and many more, silahkan coba sendiri πŸ˜€

apapun framework-nya, minumnya tetep pake Spring Framework


hehe, gak nyambung nih judulnya πŸ˜€

gak papa lah yang penting disini gw mo ngasih tau tentang kehebatan Spring Framework dalam manajemen transaksi. maksudnya?

yup, selama ini blum pernah ada framework yang dibuat untuk manajemen transaksi, biasanya hanya untuk persistence, seperti Hibernate, Java Persistence API, TopLink, EclipseLink, iBatis dan lain-lain. Dan kalo kita pake framework2 yang tadi gw sebutin, mau gak mau, kita harus manajemen transaksinya sendiri, artinya kita harus memanage persistence tersebut THREAD SAFE. Baca lebih lanjut

extVal, JSF validator injection lebih keren dari Seam dan Spring


extval_logo tadi malem gw search tentang info-info terbaru seputar JSF. kenapa JSF, soalnya gw lebih tertarik ama ini dibandingkan ama framework yang lain kayak Struts, SpringMVC, Tapestry, WIcket, and manymore!!!

kenapa gw milih JSF, soalnya support dari vendor lain bejibun, contohnya dari Apache (ASF), kayak MyFaces ama anak-anaknya, termasuk yang bakal gw bahas sekarang yaitu extVal yang merupakan anak dari project MyFaces, trus ada ZK, IceFaces, RichFaces, ADF, wah pokoknya saking banyaknya gw ampe gak tau semua, hahahah πŸ˜€

kembali lagi ke extVal, framework ini dibuat untuk proses Validasi dalam ManageBean di JSF, extVal tuh menggantikan konfigurasi validasi di JSP menjadi @annotation, hmm, keren kan?

Baca lebih lanjut