ResultSet转换为List的方法 JSON MAP

来源:互联网 发布:游族网络官网充值折扣 编辑:程序博客网 时间:2024/05/22 06:49

 1.ResultSet转换为List的方法

 

方法一:

ResultSet转换为List的方法

private static List convertList(ResultSet rs) throws SQLException {List list = new ArrayList();ResultSetMetaData md = rs.getMetaData();int columnCount = md.getColumnCount(); //Map rowData;while (rs.next()) { //rowData = new HashMap(columnCount);Map rowData = new HashMap();for (int i = 1; i <= columnCount; i++) {rowData.put(md.getColumnName(i), rs.getObject(i));}list.add(rowData);} return list;}


 

方法二:

/*** 通用取结果方案,返回list* * @param rs* @return* @throws SQLException*/public List extractData(ResultSet rs) throws SQLException {ResultSetMetaData md = rs.getMetaData();int num = md.getColumnCount();List listOfRows = new ArrayList();while (rs.next()) {Map mapOfColValues = new HashMap(num);for (int i = 1; i <= num; i++) {mapOfColValues.put(md.getColumnName(i), rs.getObject(i));}listOfRows.add(mapOfColValues);}return listOfRows;}/*** 通用取结果方案,返回JSONArray* * @param rs* @return* @throws SQLException*/public JSONArray extractJSONArray(ResultSet rs) throws SQLException {ResultSetMetaData md = rs.getMetaData();int num = md.getColumnCount();JSONArray array = new JSONArray();while (rs.next()) {JSONObject mapOfColValues = new JSONObject();for (int i = 1; i <= num; i++) {mapOfColValues.put(md.getColumnName(i), rs.getObject(i));}array.add(mapOfColValues);}return array;}


 

ResultSet在的二纬结构可以用二维模型处理,即网格数据 处理这里模型时候,通常用list与与Map的合成,json语法格式本质上是map格式,所以在数据与java,js处理上可以做如上的抽取.

方法三:

原理就是用Map存放单条数据然后放到List里

用起来可以这样调用 List list = rs.selectRS(sqlStr);

for(int i=0;i<list.size;i++)
{
    ((Map)list.get(i)).get("username");
}
这样的话就不用每次在写数据库连接了,而且有比较复杂的页面格式输出就可以通过对 i 的控制来实现了

下面是具体实现类可以结合struts,webwork2的标签来用,我已经测试过了没问题
我也看到一些人是自己写类来代替Map来用的

import conn.DBConnManager;import java.sql.*;import java.util.*;public class ResultGather {private String sql;public ResultGather(){  }public ResultGather(String sqlcom){   this.sql=sqlcom;}public List selectRS(String sqlStr){   this.sql = sqlStr;   return selectRS(); }public List selectRS(){   List rsall = new ArrayList();   Map rsTree;   DBConnManager conn = null;   Connection con = null;   Statement stmt = null;   ResultSet rs = null;   try{    conn = DBConnManager.getInstance();    con = conn.getConnection("mssql");    stmt = con.createStatement();    rs = stmt.executeQuery(sql);    ResultSetMetaData rsmd = rs.getMetaData();//取数据库的列名 我觉得名比1,2,3..更好用    int numberOfColumns = rsmd.getColumnCount();    while(rs.next())    {    rsTree = new HashMap(numberOfColumns);//注意要new      for(int r=1;r<numberOfColumns+1;r++)      {       rsTree.put(rsmd.getColumnName(r),rs.getObject(r));       }      rsall.add(rsTree);    }      }catch(java.lang.Exception ex){    ex.printStackTrace();   }finally{    try{     if(rs!=null)      rs.close();     if(stmt!=null)      stmt.close();     if(conn!=null)      conn.releaseConnection("mssql",con);    }catch(Exception e){        }      }   return rsall;}}


 

简单的东西 交流交流

评论:自己写什么类哦,用spring的jdbc模板干脆
List lst=jdbcTemplate.queryForList(list);  

方法四:

将ResultSet 转成Map<String, List<String> >:


 

原创粉丝点击