Mengenal class ResultSet
Hai pada pembahasan kali ini, kita akan berkenalan lebih dalam dengan class ResultSet. ResultSet berfungsi me-maintainance cursor untuk pointing ke setiap nodes. Setiap nodes merepresentasikan baris pada sebuah table. Seperti pada gambar berikut:
Berikut contoh penggunaan single row response:
@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);
}
Jadi jika hasilnya hanya satu baris, kita cukup menggunakan if statement untuk melakukan check apakah response data dari database ada. jika ada kemudian kita tampung dalam object class.
Berikut contoh penggunaan multiple rows response:
@Override
public List<ExampleTable> findAll() throws SQLException {
List<ExampleTable> list = new ArrayList<>();
//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";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
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")
);
list.add(data);
}
resultSet.close();
statement.close();
return list;
}
Berbeda dengan single row response, jika multiple rows response kita bisa menggunakan while statement untuk melakukan check apakah pointer masih menujuk node jika masih, lanjutkan iterasi kemudian simpan dalam object list.
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!