Tuesday, September 14, 2004

Memanfaatkan CacheRowSet

Jika kita sering JDBC, pasti sudah familiar ResultSet. Jika Connection, atau Statement yang menghasilkan ResultSet kita close() secara otomatis ResultSet akan close dan kita tidak bisa menggunakan objek ResultSet untuk mengambil data. Begitu juga ketika object ResultSet tersebut di-overide. Hal ini terjadi karena sebenarnya suatu ResultSet hanya merupakan suatu pointer (cursor) yang merujuk pada data sebenarnya di memori, jadi ResultSet tidak menyimpan data.

Dengan CachedRowSet permasalahan itu bisa teratasi, kita bisa membawa object CachedRowSet untuk mengambil data dari hasil query walaupun Connection atau Statement telah di-close(). Bahkan kita dapat melakukan update data langsung lewat CachedRowSet. Ini memudahkan perkerjaan kita karena kita tidak perlu lagi data transfer object jika pekerjaan kita ingin lebih se

CachedRowSet adalah interface meng-extends javax.sql.RowSet, ResultSet, Joinable. Jadi jika kita sudah familiar dengan ResultSet akan mudah menggunakan CachedRowSet.

CachedRowSet mendukung event notification, sehingga kita bisa dengan mudah mengetahui jika cursor bergerak (move), atau terjadi perubahan data.

CachedRowSet yang berawal dari JSR 114, merupakan standar di JDBC 2.0 dan telah masuk dalam standar API di Java 1.5 (Tiger). Jika kita menggunakan java versi 1.4.2 kita bisa menggunakan reference implementation.

Tiga subinterface yang juga sangat bermanfaat adalah FilteredRowSet, JoinRowSet, WebRowSet. Dengan FilteredRowSet kita dapat melakukan filtering data pada RowSet yang sudah kita peroleh tanpa perlu melakukan query lagi ke database. Sedangkan JoinRowSet bermanfaat untuk melakukan penggabungan lebih dari satu RowSet dengan tipe-tipe join database yang sudah kita kenal seperti INNER JOIN, LEFT/RIGHT OUTER JOIN, INNER JOIN, FULL JOIN, CROSS JOIN. Yang terakhir WebRowSet mempermudah kita mengeluarkan output database dalam bentuk XML dan memanipulasinya.

Dokumentasi API dari interface ini cukup baik (ada contoh penggunaannya): http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/CachedRowSet.html

Tutorial JDBC dari Sun bagian CachedRowSet (ada contoh implementasi untuk distributed application/EJB)

No comments:

Followers