2008/11/6 Adelwin Handoyo <[EMAIL PROTECTED]>:
> menurut gua hibernate baru kliatan guna nya kalo lu ngembangin product yang
> portable antar database..
> kalo project yang dari awal udah fix DB nya udah berkurang nilai plusnya
> hibernate..

SQL Dialect hanya salah satu fitur saja.
Walaupun fitur signifikan, tapi tetap hanya salah satu fitur.

Fitur lain yang juga penting adalah Object-Relational Mapping.
Siapapun yang pernah pakai teknik ini:
http://dhiku.wordpress.com/2007/12/17/10-langkah-membuat-generic-dao-dengan-spring-25-hibernate/
Pasti akan merasakan peningkatan produktifitas yang signifikan.
Cukup dengan copy paste satu class, kita tidak perlu menulis
insert/update/delete/select by id untuk setiap tabel.



> selama ini juga gua gak pernah involve di project yang bisa gonta ganti DB
> tuh..
> kalo user requirement yang segitu rumit ajah bisa di fix.. kenapa DB ajah
> gak bisa di fix..
> justru itu malah yang dari awal udah di tentuin..

> iBatis?
> HARUS.. pake iBatis?
> kata sapahhhh

Tidak ada orang yang mewajibkan penggunaan framework sendiri.
Kalau ada, pasti sudah keluar undang2nya tho ;p

Pemilihan framework itu dilakukan berdasarkan banyak hal.
Produktifitas, performance, konsistensi, dsb.
Tapi mari kita lihat satu aspek yang dipertimbangkan dalam pemilihan
teknologi,  yaitu workflow.
Bagaimana sikus kita dalam develop aplikasi.

Saya dalam mengembangkan aplikasi biasanya menggunakan JUnit dan DBUnit.
Setiap kali test dijalankan, semua tabel akan ditruncate dan diisi
dengan data sample.
Pengguna DBUnit mungkin sudah familiar dengan
DatabaseOperation.CLEAN_INSERT.execute();

Semua kode akses database akan ditest dengan mekanisme ini, sehingga
kegiatan coding saya biasanya :
1. bikin/edit model Hibernate
2. bikin/edit query
3. bikin/edit sample data
4. bikin/edit test code (JUnit + DBUnit)
5. run
6. repeat dari 1 sampai selesai

Dengan siklus seperti ini, aplikasi yang dihasilkan akan stabil dan
konsisten kualitasnya.
Jika mau pindah database, tinggal ganti konfigurasi hibernate, lalu
re-run semua testnya.
Nanti akan kelihatan mana yang gak kompatibel dengan merek database baru.

However, workflow seperti ini bukannya tanpa kelemahan.

Ada beberapa 'tantangan' dalam implementasinya, misalnya:
1. test code dan test data harus dijaga up to date
kalau ada perubahan requirement, ini juga harus mengikuti

2. database engine harus ringan dan cepat.
kalau tidak, truncate table, insert, dan run test akan berjalan lama sekali

Nah, berdasarkan plus minus ini, pakai Hibernate cocok buat saya.
Karena bisa jalankan local test di laptop dengan hsqldb, mysql, atau
yang ringan2 lainnya.
Setelah udah OK, baru execute test di server dengan database mahal
macam Oracle atau DB2.

> emang google pake apa?
> walopun mungkin gak pake java.. tapi i doubt google make any fancy ORM tuh..

Untuk aplikasi yang sehari-hari saya dan mungkin sebagian besar member
di sini bikin,
kayaknya gak perlu sampe membandingkan sama google.

Aplikasi google, amazon, ebay, linkedin itu sudah benar2 raksasa,
sehingga hukum yang berlaku juga berbeda.
Kalau mau ikut arsitektur linkedin misalnya, maka kita tidak akan
pakai database server, karena semua data diload di memori.
Kalo mau ikut arsitektur google, jangankan database layer atau
library, power supply PC aja dibikin sendiri ;p.


> gak ada yang mutlak... inget ituh...
> tergantung kebutuhan..
> kalo semua bilang HARUS pake hibernate.. iBatis gak laku dong?
> tapi ternyata masi banyak banget yang pake iBatis kok
> gak kalah juga jumlah nya yang pake JDBC biasa...


Kesimpulannya, tidak ada yang mengharuskan pemakaian bahasa, tools,
IDE, library tertentu.
Sesuaikan dengan workflow, requirement, dan situasi yang dihadapi.
Akan tetapi, kalau sudah memutuskan pakai Hibernate atau JPA, hindari
native SQL sebisa mungkin.
Gunakan HQL atau Criteria Query

Kalau memang banyak kebutuhan untuk execute native SQL, pertimbangkan
menggunakan iBatis, Spring-JDBC, atau JDBC murni.


-- 
Endy Muhardin
http://endy.artivisi.com
Y! : endymuhardin
-- life learn contribute --

Kirim email ke