首页 > 解决方案 > 我可以将 setMaxRows() 与 try-with-resources 一起使用吗?

问题描述

我正在尝试编写一个方法,在员工数据库中选择 2 个条目并删除它们(基于薪水字段),我目前正在使用计数器来完成此操作,但是我尝试使用 setMaxRows() 所以我的结果集只有两个条目,从而消除了对计数器的需要。我正在使用 try-with-resources 来创建我的语句,这似乎导致了一个问题。

public void downSize(Connection con) {

    String sql = "SELECT * FROM " + schemaName + "."+tableName+" WHERE EMPLOYEE_SALARY>200000";

    try (
            PreparedStatement statement = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            ResultSet rs = statement.executeQuery();
            )
        { 

            int counter = 0;
            System.out.println("Now pruning workforce...");
            while(rs.next() && counter<2) {

                String name = rs.getString("EMPLOYEE_NAME");
                    rs.deleteRow();
                    counter++;
                System.out.println(name+" was laid off.");
                }



        } catch(Exception e) {

    e.printStackTrace();
    System.out.print("Sql exception happened");
        } 
}

标签: javasqltry-with-resources

解决方案


推荐阅读