我不确定如何编写它,查询将采用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;
答案 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)
}