使用Query中的ArrayList从MySQL中检索ResultSet

时间:2014-05-05 16:03:01

标签: java jdbc

我不确定如何编写它,查询将采用excludeRooms中存储的所有值并在查询中使用它然后将结果添加到tableRoomsData向量

代码:

    List<String> excludeRooms = new ArrayList<String>();
    Vector<String> tableRoomsData = new Vector<String>();

    m.dbConnect(); 

    PreparedStatement stmt = m.getCon().prepareStatement("SELECT * FROM room_view
                WHERE room_num != ?");
    //get all data where room_num is not equal to the room numbers stored in excludeRooms


    result = stmt.executeQuery();

    while (result.next()) {
    d.add(result.getString("room_num");
    d.add(result.getString("room_type");
    }

PS。 我是Java的新手,正在尝试创建一个程序,同时自学。这也是我第一次在这里发帖提问,所以我希望你能在我的格式上忍受我。全部感谢y&#39;

2 个答案:

答案 0 :(得分:0)

您必须使用WHERE NOT IN子句才能完成此操作。

所以你的查询应该是这样的, SELECT * FROM room_view WHERE room_num NOT IN(&#34; r1&#34;,&#34; r2&#34;,&#34; r3&#34;); 其中r1,r2,r3是存储在excludeRooms中的房间号;

在Java部分,您可以编写一个循环来将这些值放入stmt;

如果不清楚,请告诉我。

答案 1 :(得分:0)

首先 - 将ps.setString(1, roomNumber)设置为参数

其次 - 在While循环中 - 启动VO(值对象),然后将其添加为列表。

只需返回excludeRooms列表。

试试这个

while (result.next()) {
VOObject vo=new VOObject();
    VOObject.setRootNum(result.getString("room_num");
    VOObject.setRootType(result.getString("room_type");
excludeRooms.add(VOObject)
    }