SQL中的动态绑定

con*_*ner 1 java sql jdbc

我试图在我的SQL查询中动态绑定变量,我试图通过java执行.

为此,我使用数据绑定成功构建了以下查询:

select HOST,PORT, VIRTUAL_HOST, CLUSTER from XYZ where TYPE='abc' and NAME=?
Run Code Online (Sandbox Code Playgroud)

但对于以下查询:

select HOST, PORT, VIRTUAL_HOST, CLUSTER from PQR where TYPE='abc' and NAME IN (?)
Run Code Online (Sandbox Code Playgroud)

如何为IN语句使用动态绑定?我在这里绑定变量的值是一个带有逗号分隔值的字符串,例如NAME IN(I,J,K)

我已经有一个参数:String temp ="I,J,K".

JB *_*zet 5

每个元素需要一个问号,ad无法绕过它(除非使用像Spring一样的包装API为你做这个):

String sql = "select HOST, PORT, VIRTUAL_HOST, CLUSTER"
             + " from PQR where TYPE='abc' and NAME IN (?, ?, ?)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, "I");
stmt.setString(2, "J");
stmt.setString(3, "K");
Run Code Online (Sandbox Code Playgroud)