package se.unlogic.standardutils.dao; import java.sql.PreparedStatement; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * This class represents a SQL query and is used together with the {@link AnnotatedDAO} class.<p> * * A low level query lets you write the SQL and set any parameters in contrast to the {@link HighLevelQuery}.<p> * * The SQL query is written like a normal prepared statement with '?' chars representing the parameters to be set.<p> * * The parameters will be set on the prepared statement using the "class -> method mapping" in the {@link PreparedStatementQueryMethods} class.<br> * Basically this means that any parameter that has a set method matching it's type in the {@link PreparedStatement} interface will work.<p> * * * @author Robert "Unlogic" Olofsson (unlogic@unlogic.se) */ public class LowLevelQuery extends RelationQuery{ private String sql; private List<Object> parameters; public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } public List<Object> getParameters() { return parameters; } public void setParameters(List<Object> parameters) { this.parameters = parameters; } public void addParameter(Object parameter){ if(this.parameters == null){ this.parameters = new ArrayList<Object>(); } this.parameters.add(parameter); } public void addParameters(Object... parameters){ if(this.parameters == null){ this.parameters = new ArrayList<Object>(); } this.parameters.addAll(Arrays.asList(parameters)); } public void addParameters(List<?> parameters){ if(this.parameters == null){ this.parameters = new ArrayList<Object>(); } this.parameters.addAll(parameters); } }