cn.coder.jdbc.mapper.MulitResultMapper Maven / Gradle / Ivy
package cn.coder.jdbc.mapper;
import java.lang.reflect.Field;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.coder.jdbc.support.MulitResult;
import cn.coder.jdbc.util.JdbcUtils;
import cn.coder.jdbc.util.ObjectUtils;
public final class MulitResultMapper extends BaseResultMapper implements ResultMapper {
private static final Logger logger = LoggerFactory.getLogger(MulitResultMapper.class);
private final MulitResult moreResult;
public MulitResultMapper(MulitResult mr) {
this.moreResult = mr;
this.sql = mr.getSql();
this.objs = mr.getData();
}
@Override
public Boolean doStatement(PreparedStatement stmt) throws SQLException {
JdbcUtils.bindArgs(stmt, this.objs);
Object obj;
ResultSet rs;
HashMap mappings;
int index = 0;
boolean hasResult = stmt.execute();
while (hasResult) {
rs = stmt.getResultSet();
mappings = ObjectUtils.getResultMappings(moreResult.getTarget(index), moreResult.getHash(index),
rs.getMetaData());
while (rs.next()) {
obj = ObjectUtils.toBean(moreResult.getTarget(index), rs, mappings);
moreResult.putResult(index, obj);
}
rs.close();
hasResult = stmt.getMoreResults();
index++;
}
logger.debug("Result num:{}", index);
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy