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<Void> {
|
|
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();
|
}
|
}
|