Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 -
目次 索引 前ページ次ページ

第2部 APIでのアプリケーション開発> 第9章 Java APIのアプリケーション開発> 9.3 Java APIの使用方法> 9.3.2 データの検索

9.3.2.1 条件に一致するXML文書の件数を取得する

条件に一致するデータを取り出す前に、件数のみ取得したい場合があります。

このような場合、setRequestメソッドの返信要求件数(requestCount)に0を指定し、件数のみを取得します。

条件に一致するXML文書の件数を取得する場合の流れについて、以下の図に示します。

[図:条件に一致するXML文書の件数を取得する場合の流れ]

■記述例

ShunConnection con = new ShunConnection();

String queryExpression = "/document/base/prefecture == '大阪'";
String returnExpression = "/";
ShunPreparedStatement pstmt = con.prepareSearch(queryExpression, returnExpression); (1)
pstmt.setRequest(1,0);                                                              (2)
ShunResultSet rs = pstmt.executeSearch();                                           (3)
System.out.println("[ヒット件数] = " + rs.getHitCount());                            (4)
rs.close();                                                                         (5)
pstmt.close();                                                                      (5)

con.close();

◆(1) ShunPreparedStatementオブジェクトの作成

ShunPreparedStatementオブジェクトは、prepareSearchメソッドのパラメタに検索式とリターン式を指定して作成します。

検索式およびリターン式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。

◆(2) 返信開始番号と返信要求件数の設定

setRequestメソッドに返信開始番号と返信要求件数を指定します。返信要求件数に0を指定して、件数のみ取得します。

◆(3) 検索の実行(ShunResultSetオブジェクトの作成)

検索の実行はexecuteSearchメソッドを使用します。検索した結果としてShunResultSetオブジェクトが作成されます。

◆(4) 検索条件に一致するXML文書のヒット件数の取得

getHitCountメソッドで、検索条件に一致するXML文書の件数を取得します。

◆(5) ShunResultSetオブジェクトおよびShunPreparedStatementオブジェクトの解放

ShunResultSetオブジェクトとShunPreparedStatementオブジェクトは、使用後にそれぞれのcloseメソッドで必ず解放します。

■Apworks利用時の記述例

以下に、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)
   returnString = "/";                                                                         (b)
    :
   getPreparedStatement(queryString, returnString);
    :
}

private void getPreparedStatement(String queryString, String returnString) {
    :
   pstmt = con.preparedSearch(queryString, returnString);                                      (1)
    :
}
(a)検索式
対話形式のウィザードで定義します。複雑な検索式も対話形式のウィザードで作成することができます。
(b)リターン式
XML文書全体を取り出す“/”が指定されます。

ShunsakuアクセスクラスのgetHitCountメソッド

public int getHitCount() throws ShunException {
     :
   resultSet = getResultSet(ShunsakuAccessController.SORT_NONE, 1, 0);
     :
   hitCount = resultSet.getHitCount();                                       (4)
     :
   resultSet.close();                                                        (5)
}

public ShunResultSet getResultSet(String sortString, int position, int requestCount)
                                                     throws ShunException {
     :
   pstmt.setRequest(position, requestCount);                                 (2)
     :
   return pstmt.executeSearch();                                             (3)
}

Shunsakuアクセスクラスのcloseメソッド

public void close() throws ShunException {
    :
   pstmt.close();                                                     (5)
    :
}

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006