Perbedaan method executeQuery() dan executeUpdate()
Hai, Pada post sebelumnya kita udah belajar tentang Class API Statement dan PreparedStatement. Pembahasan kali ini kita akan lihat perbedaan antara method executeUpdate() dan executeQuery(). Ok yang pertama kita bahas dulu method executeUpdate()
Method executeUpdate()
Method executeUpdate() biasanya digunakan untuk meng-eksekusi perintah insert, update, delete, alter, create initinya query yang melakukan penambahan, perubahan pada struktur atau data.
Contoh penggunaanya seperti berikut:
@Override
public Boolean removeById(String value) throws SQLException {
//language=PostgreSQL
String query = "delete from example_table where id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, value);
int rows = preparedStatement.executeUpdate();
preparedStatement.close();
return true;
}
Method executeUpdate() hanya mengembalikan jumlah row/object yang terpengaruh, kenapa saya bilang object, karena tidak cuman data tapi juga bisa berbentuk table, sequance, dan lain-lain.
Method executeQuery()
Pada method executeQuery() biasanya digunakan untuk meng-eksekusi perintah select, function atau perintah sql yang mengembalikan data.
Contoh penggunaanya seperti berikut:
@Override
public Optional<ExampleTable> findById(String value) throws SQLException {
//language=PostgreSQL
String query = "select id as id,\n" +
" name as name,\n" +
" created_date as createdDate,\n" +
" created_time as createdTime,\n" +
" is_active as active,\n" +
" counter as counter,\n" +
" currency as currency,\n" +
" description as description,\n" +
" floating as floating\n" +
"from example_table\n" +
"where id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, value);
ResultSet resultSet = preparedStatement.executeQuery();
if (!resultSet.next()) {
preparedStatement.close();
return Optional.empty();
}
ExampleTable data = new ExampleTable(
resultSet.getString("id"),
resultSet.getString("name"),
resultSet.getDate("createdDate"),
resultSet.getTimestamp("createdTime"),
resultSet.getObject("active", Boolean.class),
resultSet.getLong("counter"),
resultSet.getBigDecimal("currency"),
resultSet.getString("description"),
resultSet.getFloat("floating")
);
resultSet.close();
preparedStatement.close();
return Optional.of(data);
}
Ketika preparedStatement.executeQuery() di eksekusi maka menghasilkan class API ResultSet. API Class ResultSet adalah sebuah Pointer / Nodes / Array dimana data ditampung pada Class tersebut.
Untuk mengambil datanya kita bisa menggunakan loop atau selection tergantung dari jumlah baris yang di keluarkan. Jika data yang dihasilkan hanya 1 baris kita cukup menggunakan if statement seperti contoh di atas dan jika data terdapat lebih dari 1 baris kita bisa menggunakan loop iterator seperti pada contoh sebelumnya.
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!