6

例えば:

select name from person where id=2;

この行が存在するかどうかを知りたいのですが、その存在に応じて特定のタスクを実行します。jdbcを使用してこれを行いたいです。

4

4 に答える 4

16

PreparedStatementこの選択クエリを呼び出すために使用します。

インスタンスが返されるクエリの実行が成功した後、true を返すかどうかResultSetを呼び出して確認できます。これは、選択された行があったことを意味します。next()

if(resultSet.next()){
   //yes exist
}
于 2012-07-02T06:15:03.223 に答える
4
   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

于 2012-07-02T06:19:15.933 に答える
4

ResultSetにはhasNext()メソッドはありません。next()メソッドはカーソルを次の行に移動し、行がある場合は true を返します。

if(resultSet.next()){
  //do something

}
else{
  //no next row found

}
于 2012-07-02T06:20:07.020 に答える