
top.zeimao77.product.sql.OnlyPrintReposit Maven / Gradle / Ivy
package top.zeimao77.product.sql;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.Closeable;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
/**
* 一个仅将可执行SQL输出的SQL执行器
*/
public class OnlyPrintReposit implements Reposit, Closeable {
private static Logger logger = LoggerFactory.getLogger(OnlyPrintReposit.class);
private boolean appendEnd = true;
PrintWriter writer;
/**
* @param writer SQL输出位置
*/
public OnlyPrintReposit(PrintWriter writer){
this.writer = writer;
}
public OnlyPrintReposit(PrintWriter writer,boolean appendEnd) {
this.appendEnd = appendEnd;
this.writer = writer;
}
private void printByResolver(StatementParamResolver sql) {
sql.resolve();
String execSql = sql.getExecSql();
logger.debug(execSql);
if(writer != null) {
writer.print(execSql);
if(appendEnd)
writer.println(";");
else
writer.println();
}
}
@Override
public ArrayList selectByResolver(StatementParamResolver sql, Class clazz) {
printByResolver(sql);
return new ArrayList<>();
}
@Override
public int updateByResolver(StatementParamResolver sql) {
printByResolver(sql);
return 0;
}
@Override
public int batchUpdate(List list, BiConsumer con) {
for (Z z : list) {
SQL sql = new SQL();
con.accept(sql,z);
updateByResolver(sql);
}
return 0;
}
@Override
public int update(String sql) {
logger.debug(sql);
if(writer != null) {
writer.print(sql);
if(appendEnd)
writer.println(";");
else
writer.println();
}
return 0;
}
@Override
public int update(String sqlt, Object param) {
return updateByResolver(new DefaultStatementParamResolver(sqlt, param));
}
@Override
public ArrayList selectListObj(String sqlt, Object param, Class clazz) {
selectByResolver(new DefaultStatementParamResolver(sqlt, param),clazz);
return new ArrayList<>();
}
@Override
public ArrayList selectListObj(String sql, Class clazz) {
logger.debug(sql);
if(writer != null) {
writer.print(sql);
if(appendEnd)
writer.println(";");
else
writer.println();
}
return new ArrayList<>();
}
@Override
public ArrayList
© 2015 - 2025 Weber Informatics LLC | Privacy Policy