کد زیر نحوه اجرای یک query با استفاده از JDBC بر روی پایگاه داده را نشان می دهد و اینکه چگونه می توان نتیجه query که در قالب ResultSet می آید را پردازش کرد:
Connection con = DriverManager.getConnection(
"jdbc:myDriver:myDatabase",
username,
password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
متد next کلاس ResultSet باعث می شود اشاره گر رکورد های درون ResultSet یک سطر به جلو برود در صورتی که سطر دیگری وجود نداشته باشد این متد false بر می گرداند.
اما خطای "JdbcSQLException: No data is available [2000-187]" مخصوص پایگاه داده h2 است و مشخص می کند که اشاره گر رکورد های درون ResultSet در وضعیت درستی قرار ندارد کد های زیر کاملا مشکل را مشخص می کند:
کد غلط:
ResultSet rs = stat.executeQuery("SELECT * FROM Person");
rs.getString(1);
کد صحیح:
ResultSet rs = stat.executeQuery("SELECT * FROM Person");
rs.next();
rs.getString(1);