条件に一致するデータを取り出す前に、件数のみ取得したい場合があります。
このような場合、setRequestメソッドの返信要求件数(requestCount)に0を指定し、件数のみを取得します。
条件に一致するXML文書の件数を取得する場合の流れについて、以下の図に示します。
図K.3 条件に一致するXML文書の件数を取得する場合の流れ
記述例
以下に、StudioまたはApworksの対話形式のウィザードで作成されたShunsakuアクセスクラスを使ったビジネスクラスの記述例と、ビジネスクラスで使用しているShunsakuアクセスクラスのひな形を示します。
ビジネスクラス
ShunConnection con = new ShunConnection(); ShunsakuAccessController controller = new ShunsakuAccessController(con); controller.search(key); int hitCount = controller.getHitCount(); controller.close(); con.close(); |
ShunPreparedStatementオブジェクト
public class ShunsakuAccessController { : private ShunPreparedStatement pstmt; : } |
Shunsakuアクセスクラスのsearchメソッド
public void search(java.lang.String keys) throws ShunException { : queryString = "/document/base/prefecture == ’ " + keys + "’"; (a) |
対話形式のウィザードで定義します。複雑な検索式も対話形式のウィザードで作成することができます。
XML文書全体を取り出す“/”が指定されます。
ShunsakuアクセスクラスのgetHitCountメソッド
public int getHitCount() throws ShunException { : resultSet = getResultSet(ShunsakuAccessController.SORT_NONE, 1, 0); : hitCount = resultSet.getHitCount(); (4) pstmt.setRequest(position, requestCount); (2) |
Shunsakuアクセスクラスのcloseメソッド
public void close() throws ShunException { : pstmt.close(); (5) |
ShunPreparedStatementオブジェクトは、prepareSearchメソッドのパラメタに検索式とリターン式を指定して作成します。
検索式およびリターン式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。
setRequestメソッドに返信開始番号と返信要求件数を指定します。返信要求件数に0を指定して、件数のみ取得します。
検索の実行はexecuteSearchメソッドを使用します。検索した結果としてShunResultSetオブジェクトが作成されます。
getHitCountメソッドで、検索条件に一致するXML文書の件数を取得します。
ShunResultSetオブジェクトとShunPreparedStatementオブジェクトは、使用後にそれぞれのcloseメソッドで必ず解放します。