import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
Connection conn = getConnection();
Statement st = conn
.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
st.executeUpdate("create table survey (id int,name varchar(30));");
st.executeUpdate("insert into survey (id,name ) values (1,'nameValue')");
st.executeUpdate("insert into survey (id,name ) values (2,null)");
st.executeUpdate("insert into survey (id,name ) values (3,'Tom')");
ResultSet rs = st.executeQuery("SELECT * FROM survey");
// Move cursor forward
while (rs.next()) {
// Get data at cursor
String id = rs.getString(1);
String name = rs.getString(2);
}
// Move cursor backward
while (rs.previous()) {
// Get data at cursor
String id = rs.getString(1);
String name = rs.getString(2);
}
// Move cursor to the first row
rs.first();
// Move cursor to the last row
rs.last();
// Move cursor to the end, after the last row
rs.afterLast();
// Move cursor to the beginning, before the first row.
// cursor position is 0.
rs.beforeFirst();
// Move cursor to the second row
rs.absolute(2);
// Move cursor to the last row
rs.absolute(-1);
// Move cursor to the second-to-last row
rs.absolute(-2);
// Move cursor down 5 rows from the current row. If this moves
// cursor beyond the last row, cursor is put after the last row
rs.relative(5);
// Move cursor up 3 rows from the current row. If this moves
// cursor beyond the first row, cursor is put before the first row
rs.relative(-3);
rs.close();
st.close();
conn.close();
}
private static Connection getConnection() throws Exception {
Class.forName("org.hsqldb.jdbcDriver");
String url = "jdbc:hsqldb:mem:data/tutorial";
return DriverManager.getConnection(url, "sa", "");
}
}