From 2c8476fbec4a59a540e6a6bf6e81587861f224f2 Mon Sep 17 00:00:00 2001 From: Marco Zanon Date: Tue, 10 Dec 2013 15:36:59 +0000 Subject: [PATCH] Implemented method deleteRecords() in class MSqlTable. --- .../com/marcozanon/macaco/sql/MSqlTable.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/java/com/marcozanon/macaco/sql/MSqlTable.java b/src/java/com/marcozanon/macaco/sql/MSqlTable.java index b921d14..bf7ad51 100644 --- a/src/java/com/marcozanon/macaco/sql/MSqlTable.java +++ b/src/java/com/marcozanon/macaco/sql/MSqlTable.java @@ -9,6 +9,7 @@ package com.marcozanon.macaco.sql; import com.marcozanon.macaco.MObject; import com.marcozanon.macaco.text.MText; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.LinkedList; public class MSqlTable extends MObject { @@ -134,4 +135,20 @@ public class MSqlTable extends MObject { p); } + public MSqlStatementResults deleteRecords(LinkedHashSet idSet) throws MStatementSqlException { + if (null == idSet) { + throw new IllegalArgumentException("Invalid 'idSet': null."); + } + // + StringBuilder whereClause = new StringBuilder("(0)"); + LinkedList p = new LinkedList(); + for (Object id: idSet) { + whereClause.append(" OR (\"" + this.getTable() + "\".\"" + this.getPrimaryKey() + "\" = ?)"); + p.add(id); + } + return this.getConnectionReference().executePreparedStatement(" DELETE FROM \"" + this.getTable() + "\"" + + " WHERE (" + whereClause + ")", + p); + } + } -- 2.30.2