用jdbc查询数据库中的东西,只能查出一条结果集,不能查出所有的结果集是为什么

只是买一双鞋 2015-01-14 06:10:01
public Map<String,String> findAll() throws ClassNotFoundException, SQLException{
//连接数据库
Connection connection=getConnection();
String sql="select * from user";
Statement statement=connection.createStatement();
//ps=connection.prepareStatement(sql);//使用Connection的方法创建PrepareStatement语句对象,该对象用来传送SQL语句
//ResultSet rs=ps.executeQuery(sql);
ResultSet rs=statement.executeQuery(sql);
Map<String,String> map=null;
System.out.println("rs :" + rs.getRow());

while(rs.next()){
map=new HashMap();
map.put(rs.getString(1), rs.getString(2));
}
//这个map集合遍历不出来
for(Map.Entry<String, String> me:map.entrySet()){
System.out.println(me.getKey()+"----->"+me.getValue());
}
return map;
}
...全文
854 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjwxj526 2015-01-16
  • 打赏
  • 举报
回复
注意8楼红色字体
繁华终归落尽 2015-01-15
  • 打赏
  • 举报
回复
楼上已经正解了
Coder_D 2015-01-15
  • 打赏
  • 举报
回复
在循环里面new对象,前一次保存的东西当然没了。放到循环外面定义
邹邹wl 2015-01-15
  • 打赏
  • 举报
回复
楼上已经正解了
聪头 2015-01-15
  • 打赏
  • 举报
回复
new放到循环的外面
BJBJING 2015-01-15
  • 打赏
  • 举报
回复
Little丶Monster 2015-01-15
  • 打赏
  • 举报
回复
public Map<String,String> findAll() throws ClassNotFoundException, SQLException{ //连接数据库 Connection connection=getConnection(); String sql="select * from user"; Statement statement=connection.createStatement(); //ps=connection.prepareStatement(sql);//使用Connection的方法创建PrepareStatement语句对象,该对象用来传送SQL语句 //ResultSet rs=ps.executeQuery(sql); ResultSet rs=statement.executeQuery(sql); Map<String,String> map=null; System.out.println("rs :" + rs.getRow()); map=new HashMap(); while(rs.next()){ map.put(rs.getString(1), rs.getString(2)); } for(Map.Entry<String, String> me:map.entrySet()){ System.out.println(me.getKey()+"----->"+me.getValue()); } return map; } 这样就好了
只是买一双鞋 2015-01-15
  • 打赏
  • 举报
回复
谢谢!是楼上的说
scott_129 2015-01-14
  • 打赏
  • 举报
回复

while(rs.next()){
map=new HashMap();
map.put(rs.getString(1), rs.getString(2));
}
你遍历结果集的时候,每次都新new了一个map,所以每次都是往map里面装了一个数据, 你需要把map放到外面去实例化,然后再while里面去添加结果集的每个数据
S117 2015-01-14
  • 打赏
  • 举报
回复

map=new HashMap();
while(rs.next()){
map.put(rs.getString(1), rs.getString(2));
}

你那么写,每次都实例化一个新的HashMap,最后当然只有一个了

58,455

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧