Pessimistic VS Optimistic Locking


guys, malam ini saya mau bagi2 daging (baca: ilmu) nih, seputar database, pessimistic dan optimistic locking.

#PessimisticLocking

langsung aja ke contoh kasus:
– ada sebuah aplikasi inventory, dimana bisa diakses oleh beberapa user secara bersamaan
– misal saat ini sedang diakses oleh 2 user, user A dan user B

mereka berdua melakukan hal ini secara bersamaan :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

A refresh data barang, yang didapat Dodol Subang 😦
B refresh data barang, yang didapat Dodol Subang 😀

kasus diatas dinamakan pessimistic locking, yang artinya siapa yang terakhir mengubah data barang, maka dia yang menang! #yeah!!!

apakah ada yang salah? sebenarnya gak ada yang salah, cuma secara kode etik (alah ngomong apa sih) sebenarnya bermasalah, ketika sebelum si B mengubah nama barang menjadi Dodol Subang, dia seharusnya tahu kalo nama barang telah berubah ke Dodol Garut, dengan begitu ada kemungkinan dia tidak akan jadi mengubah data nama barang tersebut.

#OptimisticLocking

berbeda dengan pessimistic locking, di Optimistic Locking, siapa yang mengubah pertama kali, maka dialah yang menang, yang terakhir mengubah, dia harus tahu dulu kalo sudah terjadi perubahan.

Jadi jika menggunakan Optimistic Locking kejadiannya akan seperti ini :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

B mendapatkan error, dan diberitahu kalo data sudah berubah
A senang 😀

#Contoh
berikut adalah contoh framework yang support optimistic locking :
– Hibernate Framework
– Java Persistence API
– …. silahkan sebutkan di komentar 😀

Iklan

Menampilkan Data Bertingkat ke JTree Menggunakan Hibernate | StripBandunk


Artikel sebelumnya kami telah membahas tentang cara menampilkan data dari database ke JTree menggunakan Hibernate. Kali ini kami akan membahas tentang cara menampilkan data bertingkat ke JTree menggunakan Hibernate. Sengaja menggunakan Hibernate, hal ini dikarenakan kemudahan yang dapat kita gunakan dibandingkan manual menggunakan JDBC. Alternatif lainnya selain menggunakan Hibernate, Anda dapat menggunakan Java Persistence API.

Membuat Entitas

Untuk membuat JTree bertingkat, maka Anda juga perlu membuat entitas bertingkat, contoh sederhana yang akan kita gunakan adalah Category yang terdapat di wordpress. Kita database membuat kategori seperti ini :

Menampilkan Data Bertingkat ke JTree Menggunakan Hibernate | StripBandunk.

Menggunakan Hibernate di NetBeans Platform


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9
  3. Hibernate Framework 3.x

Kemarin ada yang bertanya bagaimana cara menggunakan Hibernate Framework di NetBeans Platform. Memang secara default NetBeans Platform itu gak memiliki fasilitas editor untuk Hibernate, gak memiliki fasilitas editor bukan berarti gak bisa 😀 , bisa hanya agak sedikit tricki untuk menggunakannya. Berbeda dengan JDBC yang konfigurasinya dilakukan di coding, biasanya Hibernate melakukan konfigurasinya pada file hibernate.properties atau hibernate.cfg.xml, dan sayangnya jika kita membuat project NetBeans Platform, tidak ada menu untuk membuat file hibernate.cfg.xml, berbeda dengan project Java biasa. Baca lebih lanjut

Pengenalan Data Access Object {4} Implementasi dalam Hibernate


artikel sebelumnya saya bahas tentang implementasi dao dalam java persistence api, dan pada artikel sekarang ini saya akan bahas tentang implementasi dao pada hibernate annotation. kenapa hibernate annotation? kenapa tidak hibernate core saja?

alasa utama saya menggunakan hibernate annotation dibandingkan dengan hibernate core adalah karena menggunakan @annotation yang menurut saya lebih mudah dan lebih elegan dibandingkan kita harus membuat file XML untuk mapping kelas dan tabel

ok, kita langsung saja masuk ke inti masalah. dan masalahnya sama seperti masalah sebelum-sebelumnya yaitu membuat sistem informasi universitas, dan kalo ini menggunakan hibernate annotation. dan seperti biasa pula, saya hanya akan membahas tentang dao untuk entitas fakultas, sedangkan untuk entitas lainnya bisa anda buat sendiri 😀

Baca lebih lanjut

Video Tutorial Membuat Form Login Menggunakan Java Swing dan Hibernate


LoginForm in Action

Ini adalah tutorial tentang cara membuat Form Login aplikasi Desktop. Pada video tutorial ini saya menggunakan Java Swing dan Hibernate. Dalam video ini saya menggunakan Netbeans sebagai IDE. Baca lebih lanjut

Video Tutorial Membuat GuestBook Menggunakan JSF, Hibernate dan Spring Framework (30 menit)


VIdeo tutorial [bisu] ini meruapakan video tutorial yang membahas tentang pembuatan GuestBook (Buku Tamu) berbasis website menggunakan teknologi java yaitu Java Server Faces, Hibernate dan Spring Framework.

Video tutorial ini berdurasi sekitar setengah Jam yang terdiri dari 6 video tutorial yang berisikan tahapan pembuatan GuestBook dari awal sampai akhir. Baca lebih lanjut

Download Combro1, Project Sederhana [Swing-Hibernate-Spring]


ini lanjutan dari artikel sebelumnya tentang Project Combro1 -> LIAT DISINI

silahkan download projeknya disini :

DOWNLOAD

enkripsi data kolom di hibernate menggunakan jasypt


kalo kita pake JDBC, iBatis gampang sekali jika kita mau membaut sebuah kolom yang hasil save ke databasenya itu di enkripsi, tinggal kasih funsi PASSWORD(value) di perintah INSERT nya aja (itu kalo di MySQL. Tapi berbeda dengan di Hibernate, kalo kita akan mengenkripsi hasil data di database agak triki untuk melakukannya.

cara pertama mungkin kita enkripsi di class Entity yang kita buat dan cara yang kedua adalah kita membaut UserType sendiri. Dan sekarang gw mo kasih tutorial tentang cara enkripsi data kolom menggunakan UserType. UserType itu adalah tipe kolom yang bisa kita buat jika memang hibernate tidak memiliki kemampuan yang kita inginkan, di contoh ini adalah enkripsi data 😀 Baca lebih lanjut