jdbc - 如何在一个字符串中选择查询

时间:2013-05-14 15:14:59

标签: java database jdbc

我正在尝试在一个字符串中获取选择查询。这就是我要的。我尝试了不同的方法,但无法解决。这是我的代码:

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这样的东西。

1 个答案:

答案 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

注意:我建议您使用参数化语句,这些语句可以更安全地处理数据库,更具人性化和高效性。