0

テスト目的で結果を取得するために、以下の簡単なクエリを使用しています。

    qName = "select total_requests from (select 10000 as total_requests from dual)"; //this can be dynamic query
    preStatement = connection.prepareStatement(qName);
    ParameterMetaData pmd = preStatement.getParameterMetaData();

    int stmtCount = pmd.getParameterCount();
    int paramsCount = params == null ? 0 : params.length;

    for (int i = 0; i < params.length; i++) {
        if (params[i] != null) {
            preStatement.setObject(i + 1, params[i]);
        } else {
            int sqlType = Types.VARCHAR;
            if (!paramValid) {
                try {
                    sqlType = pmd.getParameterType(i + 1);
                } catch (SQLException e) {
                    paramValid = true;
                }
            }
            preStatement.setNull(i + 1, sqlType);
        }
    }

 ResultSet   rs = preStatement.executeQuery();

3行目を実行すると、アプリケーションによって以下のエラーがスローされます

Caused by: java.lang.AbstractMethodError: com.inet.pool.b.getParameterMetaData()Ljava/sql/ParameterMetaData;
        at com.core.admin.util.AnalyzeHelper.fillQuery(AnalyzeHelper.java:61)

これはサブクエリの問題によるものですか? これを解決するには?

4

2 に答える 2

1

これを使用してクエリを実行します

preStatement.executeQuery();

表示するには結果セットが必要です

ResultSet rs=preStatement.executeQuery();
while(rs.next())
{
rs.getString(1);// I assume that first column is a String.If it is an INT then use rs.getInt(1);

//similarly for other columns
}
于 2013-09-20T07:13:36.233 に答える
0

それはあなたを助けるかもしれません。

qName = "select total_requests from (select 10000 as total_requests from dual)";
preStatement = connection.prepareStatement(qName);
ResultSet rs= preStatement.executeQuery();
于 2013-09-20T07:18:31.703 に答える