例えば:
select name from person where id=2;
この行が存在するかどうかを知りたいのですが、その存在に応じて特定のタスクを実行します。jdbcを使用してこれを行いたいです。
PreparedStatement
この選択クエリを呼び出すために使用します。
インスタンスが返されるクエリの実行が成功した後、true を返すかどうかResultSet
を呼び出して確認できます。これは、選択された行があったことを意味します。next()
if(resultSet.next()){
//yes exist
}
Connection conn = DriverManager.getConnection(url , databaseUserName, databasePassword);
Statement stmt = conn.createStatement();
ResultSet result = null;
result = stmt.executeQuery("select name from person where id=2;");
if(!result.isBeforeFirst()){
System.out.println("No Data Found"); //data not exist
}
else{
// data exist
}
isBeforeFirst() は、カーソルが最初の行の前にある場合に true を返します。カーソルが他の位置にある場合、または結果セットに行が含まれていない場合は false
ResultSetにはhasNext()メソッドはありません。next()メソッドはカーソルを次の行に移動し、行がある場合は true を返します。
if(resultSet.next()){
//do something
}
else{
//no next row found
}