java - 如何批量传递参数到oracle sql查询

时间:2017-09-02 10:50:49

标签: java sql oracle parameters

我和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查询中使用参数?

1 个答案:

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