我和oracle有这样的联系:
Connection con=getConnection();
String query="select ?, ? from my_table";
PreparedStatement p=con.prepareStatement(query);
p.setString(1, "id");
p.setString(2, "lastName ");
ResultSet rs=p.executeQuery();
这里的一切都还可以,但我想知道当你没有选择固定数量的参数时如何做到这一点。
例如,在上面,我只想选择' id'和' lastName'。但是这些参数取自不同的Java方法,并且取决于方法可以返回不同数量的参数的情况,我想将这些参数传递给我的SQL select。
我事先不知道这些参数,所以一旦我只能得到' id'和' lastName'但下次' id',' firstName','地址'和' city'。然后我想将它们传递给SQL查询。 在这种情况下,谁能告诉我如何在sql查询中使用参数?
答案 0 :(得分:1)
当您不知道您需要多少参数时。然后创建一个接受String数组/列表的程序,然后加入它们逗号分隔符。这应该可以解决你的问题。
e.g。
String paramsList = new String[]{"id", "first_name", "last_name"};
如果您使用的是Java8,则可以使用String.join
,如:
String params = String.join(",", paramsList);
然后编写你的sql语句,如
String query="select " + params + " from my_table";