如何有一个从MYSQL(Java)检索的计数器

时间:2016-01-23 12:39:37

标签: java mysql arraylist

目前我要做的是制作一个ArrayList<String>,其中包含我数据库中的房间号码。所以目前每行数据都有一个房间号,例如1001,1002,1003。所以我需要做的是将这些值存储到ArrayList<String>中,但问题是我不想在内部重复相同的房间号。那么当我运行循环来读取数据库中的所有数据时,如何在没有重复的情况下创建ArrayList<String>

目前这就是我所拥有的,我确信逻辑是错误的。

ResultSet rs1;
    ArrayList<String> roomNumberList=new ArrayList<String>();
    try {
        PreparedStatement statement2 = so.getPreparedStatementWithKey("SELECT room FROM et_elderly ");
        rs1 = statement2.executeQuery();

        while(rs1.next()){
            String num=Integer.toString(rs1.getInt("room"));
            roomNumberList.add(num);
            if(num!=Integer.toString(rs1.getInt("room"))){
                roomNumberList.add(Integer.toString(rs1.getInt("room")));
                num=Integer.toString(rs1.getInt("room"));
            }
        }

    } catch (SQLException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

解决此问题的两种方法:

  1. 更改您的SQL以选择不同的房间号码,如:

     PreparedStatement statement2 = so.getPreparedStatementWithKey("SELECT DISTINCT room FROM et_elderly");
    
  2. 使用Set代替List,如:

    Set<String> roomNumbers=new HashSet<String>();
    
  3. 注意除了比较字符串之外,不要使用!=而是使用带有否定方法的equals