Java Database programming
Batch Processing Untuk meningkatkan performa, dapat digunakan batch update untuk memproses nonselect SQL command Batch update terdiri dari deretan sql statement (nonselect) yang akan diproses ke database secara bersama-sama Untuk menambahkan perintah ke batch gunakan method addBatch() Setelah semua perintah dimasukkan ke batch, gunakan executeBatch() untuk mengirim batch ke database untuk dieksekusi
Batch Processing Statement statement = connection.createStatement(); // tambahkan perintah SQL ke batch statement.addBatch("create table T (C1 integer, C2 varchar(15))"); statement.addBatch("insert into T values (100, 'Smith')"); statement.addBatch("insert into T values (200, 'Jones')"); int count[] = statement.executeBatch(); executeBatch() mengembalikan nilai array untuk count berupa row/baris yg terpengaruh/affected dari masing-masing perintah dalam batch
Advanced Result Set JDBC 1 hanya mendukung sequential forward reading (pembacaan resultset secara berurutan dari awal) JDBC 2 mendukung pembacaan result set secara lebih fleksibel, tabel row dapat dibaca maju maupun mundur dan cursor dapat dipindahkan ke lokasi tertentu menggunakan method first(),last(),next(),previous(),absolute() dan relative() selain itu result set juga dapat dimanipulasi dengan perintah insert,delete dan update dan hasilnya secara langsung dapat berpengaruh terhadap database
Advanced Result Set Untuk membuat advanced result set, buat statement dengan tipe yg sesuai dan mode concurency Untuk static statement Statement statement = connection.createStatement (int resultSetType, int resultSetConcurrency); Untuk prepared statement PreparedStatement statement = connection.prepareStatement (String sql, int resultSetType, int resultSetConcurrency);
Advanced Result Set Nilai yg dapat dipilih untuk resultSetType: - TYPE_FORWARD_ONLY : result set diakses secara sekuensial dari awal - TYPE_SCROLL_INSENSITIVE: result set dapat discroll, tapi tidak sensitif terhadap perubahan dalam database - TYPE_SCROLL_SENSITIVE: result set dapat discroll, dan sensitif terhadap perubahan dari database (updateable result set) Nilai yg dapat dipilih untuk resultSetConcurrency: - CONCUR_READ_ONLY: result set tidak dapat digunakan mengupdate DB - CONCUR_UPDATEABLE: result set dapat digunakan mengupdate DB Contoh: untuk membuat result set dapat discroll dan updateable, gunakan: Statement statement = connection.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATEABLE) kemudian ….. ResultSet resultSet = statement.executeQuery(query);
Advanced Result Set Result set yg scrollable dapat menggunakan method first(),last(),previous(),dan next() untuk memindahkan kursor ke baris awal, baris akhir,baris sebelumnya dan baris berikutnya absolute(int row) digunakan utk memindahkan kursor ke baris yg ditunjuk Method insertRow(),deleteRow(),dan updateRow() digunakan untuk memasukkan , menghapus dan mengupdate baris (current row) , tapi sebelumnya didahului dengan method update (String column index, Xx value) //perintah berikut utk mengupdate field phone pada baris kedua dalam result set dengan nilai 912921111 resultSet.absolute(2); // pindahkan kursor ke baris kedua dalam result set resultSet.updateString("phone", "912921111"); // updates column resultSet.updateRow(); // updates baris dalam data source
Advanced Result Set Updateable result set objek mempunyai baris khusus untuk menangani record baru yg akan dimasukkan resultSet.moveToInsertRow(); // Move cursor to the insert row resultSet.updateString("lastName", “hein"); // Update the lastName resultSet.updateString("firstName", "An"); // Update the firstName resultSet.insertRow(); // Insert the row resultSet.moveToCurrentRow(); // Move the cursor to the current row
RowSet RowSet (JDBC2) merupakan subinterface dari resultset yang dapat digunakan untuk menyederhanakan database programming RowSet mengkombinasikan connection,Statement dan resultset dalam satu interface RowSet mengandung java beans property
RowSet ada 2 objek RowSet yaitu connected dan disconected Connected RowSet menjaga koneksi tidak terputus sepanjang lifecycle dari applikasi Disconected Rowset memutuskan koneksi kedatabase apabila suatu query selesai dikerjakan dan membangun koneksi kembali apabila ada permintaan Interface RowSet mengandung property java beans untuk proses get dan set methodnya