package cn.org.rapid_framework.generator.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.org.rapid_framework.generator.provider.db.table.TableFactory;
public class SqlExecutorHelper {
public static List<Map> queryForList(Connection conn,String sql,int limit) throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql.trim());
ps.setMaxRows(limit);
ps.setFetchDirection(ResultSet.FETCH_FORWARD);
ResultSet rs = ps.executeQuery();
return toListMap(limit, rs);
}
public static List<Map> toListMap(int limit, ResultSet rs) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int count = 0;
List<Map> list = new ArrayList<Map>();
while(rs.next()) {
Map row = new HashMap();
for(int i = 1; i <= rsmd.getColumnCount(); i++) {
row.put(rsmd.getColumnName(i), rs.getObject(i));
}
list.add(row);
count ++;
if(count >= limit) {
break;
}
}
return list;
}
}