executeQuery(String sql)
SQLクエリの結果がゼロ行の場合は何が返されますか?オブジェクトを返す場合ResultSet
、SQLクエリが何も返さなかったことをどのように検出しますか。
SQLクエリをSELECT
ステートメントと想定します。
executeQuery(String sql)
SQLクエリの結果がゼロ行の場合は何が返されますか?オブジェクトを返す場合ResultSet
、SQLクエリが何も返さなかったことをどのように検出しますか。
SQLクエリをSELECT
ステートメントと想定します。
ResultSet の次のメソッドを確認しましたか。最初に、ResultSet のカーソルは最初の行の前を指し、next() への最初の呼び出しは false を返し、ResultSet にデータがなかったことを意味します。ResultSet のサイズを取得する方法を参照してください。Java には結果セット用の直接の size() または length() メソッドがないためです。
resultSet の next() メソッドは、カーソルを次の行に移動し、データが読み取られたかどうかを示すブール値を返します。通常、while ループで使用されます。
while (myresultset.next()){
//some statement;
}
あなたの場合、クエリに一致するデータがない場合、次のメソッドの最初の呼び出しは false を返します。
ResultSet を返します。使用する
boolean hasResult = rs.next();
結果行があるかどうかを調べます。
ゼロ行の空の結果セット、つまりresultSet.next()
false を返します。
ResultSet
クエリが0レコードをフェッチすると、空が返されます。最初、カーソルは結果セットの前を指します。カーソルを呼び出すとresultset.next()
、次のカーソルに移動しresultset
(イテレータパターン)、true
結果が存在する場合は戻り、それ以外の場合は単に戻りますfalse
。この場合、next()
メソッドへの最初の呼び出しはを返しますfalse
。
返された が空の場合、この ResultSet に対するメソッドResultSet
の最初の呼び出しの出力はnext()
false を返します。
基本的に通常の手順は行の中の何かです
ResultSet rs = executeQuery("select ....");
while(rs.next()) {
//do something with the results
}
メソッドを使用できますrs.getRow()
。
if(rs.getRow() >= 1){
//Has at least 1 result
}
/**
* Retrieves the current row number. The first row is number 1, the
* second number 2, and so on.
* <p>
* <strong>Note:</strong>Support for the <code>getRow</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
*
* @return the current row number; <code>0</code> if there is no current row
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.2
*/
int getRow() throws SQLException;