All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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