我正在尝试使用SELECT mac, stop_name from behaviour where mac = ?获取此查询executeQuery的受影响记录的数量。如何获得受影响的行数?

码:

if (behaviourExist.next()) {
    PreparedStatement prepared = con
            .prepareStatement("SELECT mac, stop_name from behaviour where mac = ?");
    prepared.setString(1, macD);
    ResultSet rsBehav = prepared.executeQuery();
    ArrayList<String> stopNameList = new ArrayList<String>();
    while (rsBehav.next()) {
        //int numberOfRows = rsBehav.getInt(1);
        String stNa = rsBehav.getString("stop_name");
        if (stNa.equals(nameShortestDistance)) {
            stopNameList.add(stNa);

        }

    }
}

最佳答案

这是读取操作,因此不会影响任何行。如果要获取返回的行数,则可以执行以下操作之一


使用计数器变量并在循环while (rsBehav.next())中对其进行递增
使用可滚动的结果集

PreparedStatement prepared = con.prepareStatement(
        "SELECT mac, stop_name from behaviour where mac = ?",
        ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rsBehav = prepared.executeQuery();
rsBehav.afterLast();
int numRow = rsBehav.getRow();
rsBehav.beforeFirst();



在这里numRow将为您提供返回的数字或行,

关于java - 获取受影响的行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30962751/

10-11 01:27