【问题标题】:Java : SQL delete with "IN" condition [duplicate]Java:带有“IN”条件的SQL删除[重复]
【发布时间】:2020-07-03 03:28:52
【问题描述】:

我想执行这个查询:

    String query = "delete from table_a where id_table_a = ? and id_entity in ()";
    PreparedStatement prepare = db_connection.prepareStatement(query);
    prepare.setInt(1, var_a);

在 SQL 查询中,我试图在括号之间放置对象(定义为“实体”)的属性(定义为“id”)。对象“实体”包含在 ArrayList 中。

我的目标是将所有“Entity.id”用逗号分隔的字符串放入一个字符串中。然后我将把这个字符串放在我的查询中的括号之间。

我想得到建议,因为我不知道这是否是实现它的更好方法......

【问题讨论】:

标签: java sql


【解决方案1】:

试试这个:

List<String> idEntities = new ArrayList<>();

// Create an array of idEntities
Array arrIdEntities = db_connection.createArrayOf("string", idEntities.toArray());

// Added a placeholder '?' in the IN clause.
String query = "delete from table_a where id_table_a = ? and id_entity in (?)";
PreparedStatement prepare = db_connection.prepareStatement(query);
prepare.setInt(1, var_a);
prepare.setArray(2, arrIdEntities); // Assign the array of entities to the 2nd parameter.

return result;

请参阅 cmets 中的说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2018-11-25
    相关资源
    最近更新 更多