package com.megatim.fdxcommons.tools.database.queries; import com.megatim.fdxcommons.tools.database.contrat.DefaultPreparedStatementProcessor; import com.megatim.fdxcommons.tools.database.contrat.QueryMetaData; import com.megatim.fdxcommons.tools.database.queries.metadata.QueryCriterion; import com.megatim.fdxcommons.tools.database.queries.metadata.WhereQueryParameters; import java.sql.Connection; import java.sql.PreparedStatement; /** * * @author Gabuntu */ public class DeleteTableDataQuery implements QueryMetaData { private final String tableName; private final Connection connection; private final QueryCriterion queryCriterion; public DeleteTableDataQuery(String tableName, Connection connection, QueryCriterion queryCriterion) { this.tableName = tableName; this.connection = connection; this.queryCriterion = queryCriterion; } @Override public Void execute() throws Exception { System.out.println("<-------------------------------------------------------------------------->"); System.out.println("DELETE FROM " + tableName); System.out.println("<-------------------------------------------------------------------------->"); try ( PreparedStatement statement = connection.prepareStatement(deleteString())) { new DefaultPreparedStatementProcessor().process(statement, new WhereQueryParameters(queryCriterion).parameters()); statement.executeUpdate(); return null; } } private String deleteString() { StringBuilder query = new StringBuilder("DELETE FROM "); query .append(tableName) .append(new WhereQueryString(queryCriterion).query()); return query.toString(); } }