原理就是用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来用的
package com;
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;
}
}
本文介绍了一种将SQL查询结果转换为Map集合的方法,通过使用List存储Map对象,简化了数据库操作流程,并提供了灵活的数据处理方式。
1128

被折叠的 条评论
为什么被折叠?



