簡體   English   中英

如果查詢具有subQuery,則prepare語句不成功

[英]prepare statement is not succesful in case of query is having subQuery

我正在使用下面的簡單查詢來獲取測試結果。

    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();

一旦我執行第三行,應用程序將引發以下錯誤

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

這是由於subQuery問題引起的嗎? 該如何解決呢?

用它來執行查詢

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
}

它可能會幫助您。

qName = "select total_requests from (select 10000 as total_requests from dual)";
preStatement = connection.prepareStatement(qName);
ResultSet rs= preStatement.executeQuery();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM