package org.voovan.db; import org.voovan.tools.TSQL; import org.voovan.tools.log.Logger; import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 结果集和数据库连接封装 * * @author helyho * * Java Framework. * WebSite: https://github.com/helyho/Voovan * Licence: Apache v2 License */ public class ResultInfo { private ResultSet resultSet; private boolean isTrancation; public ResultInfo(ResultSet resultSet,boolean isTrancation) { this.resultSet = resultSet; this.isTrancation = isTrancation; } @SuppressWarnings("unchecked") public <T> List<T> getObjectList(Class<T> t) { try{ return (List<T>) TSQL.getAllRowWithObjectList(t, this.resultSet); }catch(SQLException | ReflectiveOperationException | ParseException e){ Logger.error("JdbcOperate.getObjectList error",e); }finally{ // 非事物模式执行 if (!isTrancation) { JdbcOperate.closeConnection(resultSet); }else{ JdbcOperate.closeResult(resultSet); } } return new ArrayList<T>(); } public List<Map<String, Object>> getMapList() { try{ return TSQL.getAllRowWithMapList(this.resultSet); }catch(SQLException | ReflectiveOperationException e){ Logger.error("JdbcOperate.getMapList error",e); }finally{ // 非事物模式执行 if (!isTrancation) { JdbcOperate.closeConnection(resultSet); }else{ JdbcOperate.closeResult(resultSet); } } return new ArrayList<Map<String, Object>>(); } @SuppressWarnings("unchecked") public <T> Object getObject(Class<T> t){ try{ if(resultSet.next()){ return (T) TSQL.getOneRowWithObject(t, this.resultSet); }else{ return null; } }catch(SQLException | ReflectiveOperationException | ParseException e){ Logger.error("JdbcOperate.getObject error: "+e.getMessage(),e); }finally{ // 非事物模式执行 if (!isTrancation) { JdbcOperate.closeConnection(resultSet); }else{ JdbcOperate.closeResult(resultSet); } } return null; } public Map<String, Object> getMap(){ try{ if(resultSet.next()){ return TSQL.getOneRowWithMap(this.resultSet); }else{ return null; } }catch(SQLException | ReflectiveOperationException e){ Logger.error("JdbcOperate.getMap error",e); }finally{ // 非事物模式执行 if (!isTrancation) { JdbcOperate.closeConnection(resultSet); }else{ JdbcOperate.closeResult(resultSet); } } return null; } }