关于JAVA ResultSet的问题

问一下,我查询数据库之后,返回值是个ResultSet现在想把这个里面的所有内容都放到一个List<Map>里面该怎么弄?比如查询结果是:id,name,age0,A,1... 问一下,我查询数据库之后,返回值是个ResultSet
现在想把这个里面的所有内容都放到一个List<Map>里面该怎么弄?

比如查询结果是:
id,name ,age
0 , A , 18
1 , B , 28

存到ListMap里面是
[{id=0,name=A,age=18},{id=1,name=B,age=28}....]
2楼的方法我试过了,rsmd.getCatalogName(1);(无值)
rs.getObject(1);(抛错)

信息: Detected AnnotationActionValidatorManager, initializing it...
java.sql.SQLException: No data found
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7138)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataDouble(JdbcOdbc.java:3657)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataDouble(JdbcOdbcResultSet.java:5575)
at sun.jdbc.odbc.JdbcOdbcResultSet.getLong(JdbcOdbcResultSet.java:633)
at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1697)
at dao.Dao.query(Dao.java:36)

我最后用的是:
while(rs.next())
{
int i=0;
Map m=new HashMap();
while(i<columnCount){
m.put(columnNames[i], rs.getString(columnNames[i]));
i++;
}
lm.add(m);
}
展开
 我来答
yuezhou1226
2008-12-03
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
try {
ResultSet rs = null;
//封装resultSet数据 ,利用ResultSetMetaData对象可获得表的结构
ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
while(rs.next()){//循环表
//每行记录放到一个map里!
Map<String,Object> map=new HashMap<String,Object>();//每行记录放到一个
for(int i=0;i<rsmd.getColumnCount();i++)
{
map.put(rsmd.getColumnName(i), rs.getObject(i));
}
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
}
笨鸟一只只
2008-12-03 · TA获得超过153个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:100万
展开全部
3楼写的很好,我就不写了。
我再说一点,就是while(rs.next()){....}
while循环里一定要新new Map否则前面的数据会被后面的冲掉,最后的结果只是你rs最后一条记录的一个map,新new就不会了,有几条数据就有几个map。取的时候迭代取就行了。一个List里有N个map,在List里迭代取Map。
取的时候这样
for(Map m:List){...}
希望对楼主有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunshinechaos
2008-12-02 · 超过33用户采纳过TA的回答
知道答主
回答量:174
采纳率:0%
帮助的人:97.5万
展开全部
List<Map> list=new List<Map>();
while (rs.next()){
int id=rs.getInt(1);
String name=rs.getString(2);
age =rs.getInt(3);
Map map=new Map(id,name,age);
list.add(map);
}
这里的map应该是自定义的,或者你可以选择name和age组成一个类存储数据用id 做key.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ja...a@163.com
2008-12-03 · 超过22用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:0
展开全部
给你说个方法,你定义一个model类,如下
public class User(){
private int id;
private String name;
private int age;
//写他们的get(),set()方法.
}
先生成User对象,然后每条记录通过set方法赋值给这个对象的三个属性,最后把这个对象存到Map中去.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1bb0462c1
2008-12-02 · TA获得超过199个赞
知道答主
回答量:446
采纳率:0%
帮助的人:0
展开全部
MAP应该是一对一吧 你都多少了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式