我正在尝试在一个字符串中获取选择查询。这就是我要的。我尝试了不同的方法,但无法解决。这是我的代码:
ResultSet rs = st.executeQuery("select city_ID from user where name = '" + name + "'");
String sql = "";
while (rs.next()) {
sql += "select * from city where ID = " +rs.getInt(1) + ",";
}
sql = sql.substring(0, sql.length()-1);
PreparedStatement stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();
我这样做了,但是有错误。我该如何解决?基本上,我想在一个字符串中添加许多查询,并执行该字符串。然后我需要像resultSet这样的东西。
答案 0 :(得分:2)
我对你想要达到的目标感到困惑,但我想你需要这个:
select * from city as c inner join user as u on (c.ID = u.city_ID)
where u.name = ?;
然后你只需执行这一个查询就可以获得所需的结果。
但是,正如@dystroy所提到的,如果你想要使用你的方法,你需要首先从用户获取ID到List<Integer>
,然后创建一些List<String>
来保存你的查询或使用{{1您查询中的子句。
<强>的伪代码:强>
IN
注意:我建议您使用参数化语句,这些语句可以更安全地处理数据库,更具人性化和高效性。