ninja.cero.sqltemplate.core.BatchArgsBuilder Maven / Gradle / Ivy
package ninja.cero.sqltemplate.core;
import ninja.cero.sqltemplate.core.mapper.MapperBuilder;
import ninja.cero.sqltemplate.core.parameter.BeanParameter;
import ninja.cero.sqltemplate.core.parameter.MapParameter;
import ninja.cero.sqltemplate.core.parameter.ParamBuilder;
import ninja.cero.sqltemplate.core.template.TemplateEngine;
import ninja.cero.sqltemplate.core.util.TypeUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class BatchArgsBuilder {
protected JdbcTemplate jdbcTemplate;
protected NamedParameterJdbcTemplate namedJdbcTemplate;
protected ParamBuilder paramBuilder;
protected MapperBuilder mapperBuilder;
protected TemplateEngine templateEngine;
protected String template;
public BatchArgsBuilder(JdbcTemplate jdbcTemplate, NamedParameterJdbcTemplate namedJdbcTemplate, ParamBuilder paramBuilder, MapperBuilder mapperBuilder, TemplateEngine templateEngine, String template) {
this.jdbcTemplate = jdbcTemplate;
this.namedJdbcTemplate = namedJdbcTemplate;
this.paramBuilder = paramBuilder;
this.mapperBuilder = mapperBuilder;
this.templateEngine = templateEngine;
this.template = template;
}
public BatchArrayArgsBuilder addParams(Object... args) {
return new BatchArrayArgsBuilder(args);
}
public BatchEntityArgsBuilder addParam(Object entity) {
return new BatchEntityArgsBuilder(entity);
}
public BatchMapArgsBuilder addParam(Map map) {
return new BatchMapArgsBuilder(map);
}
public int[] execute() {
String sql = templateEngine.get(template);
return jdbcTemplate.batchUpdate(sql);
}
public class BatchArrayArgsBuilder {
private List