使用集合来储存查询结果

使用集合来储存查询结果:

      可以用list,map,list和map嵌套,list结合javabean。其中还涉及到一些嵌套集合的遍历。

1.使用Object[]来封装一条记录,使用List存储多条记录

public class TestORM {
     public static void listObject(){
           Connection conn = null;
           PreparedStatement ps = null;
           ResultSet rs = null;
           List<Object[]> list = new ArrayList<Object[]>();
           try {
                conn = JDBCUtil.getMysqlConn();
                String sql = "select * from u where id <?";
                ps = conn.prepareStatement(sql);
                ps.setObject(1, 5);
                rs = ps.executeQuery();
                while(rs.next()){
                     //一个Object数组封装了一条记录的信息!
                     Object[] objs = new Object[3];
                     objs[0] = rs.getObject("name");
                     objs[1] = rs.getObject("pwd");
                     list.add(objs);
                }
           } catch (Exception e) {
                e.printStackTrace();
           }finally{
                JDBCUtil.close(rs, ps, conn);
           }
           for (Object[] objects : list) {
                System.out.print(""+objects[0]+objects[1]+"   ");
                
           }
     }

2.使用一个Map封装一条记录

   public static void map(){
           Connection conn = null;
           PreparedStatement ps = null;
           ResultSet rs = null;
           Map<String, Object> m = new HashMap<String,Object>();
           try {
                conn = JDBCUtil.getMysqlConn();
                String sql = "select * from u where id =?";
                ps = conn.prepareStatement(sql);
                ps.setObject(1, 5);
                rs = ps.executeQuery();
                while(rs.next()){
                     m.put("name", rs.getObject("name"));
                     m.put("pwd", rs.getObject("pwd"));
                }
           } catch (Exception e) {
                e.printStackTrace();
           }finally{
                JDBCUtil.close(rs, ps, conn);
           }
           for (String key : m.keySet()) {
                System.out.println(key+"--"+m.get(key));
           }
     }

3.使用List>储存多条记录

 public static void listMap(){
           Connection conn = null;
           PreparedStatement ps = null;
           ResultSet rs = null;
           List<Map<String,Object>> listmap = new ArrayList<Map<String,Object>>();
           try {
                conn = JDBCUtil.getMysqlConn();
                String sql = "select * from u where id <?";
                ps = conn.prepareStatement(sql);
                ps.setObject(1, 5);
                rs = ps.executeQuery();
                while(rs.next()){
                      //使用一个Map封装一条记录
                     Map<String,Object> m = new HashMap<String,Object>();
                     m.put("name", rs.getObject("name"));
                     m.put("pwd", rs.getObject("pwd"));
                     listmap.add(m);
                }
           } catch (Exception e) {
                e.printStackTrace();
           }finally{
                JDBCUtil.close(rs, ps, conn);
           }
           //遍历list,得到多个map
           for (Map<String, Object> map : listmap) {
                //遍历Map,就是遍历这一行的多列的信息
                for (String key : map.keySet()) {
                     System.out.print(key+"--"+map.get(key)+"   ");
                }
                System.out.println();
           }
     }

4.使用Map>储存多条记录

 public static void mapMap(){
           Connection conn = null;
           PreparedStatement ps = null;
           ResultSet rs = null;
           Map<String, Map<String, Object>> mm = new HashMap<String, Map<String, Object>>();
           try {
                conn = JDBCUtil.getMysqlConn();
                String sql = "select * from u where id <?";
                ps = conn.prepareStatement(sql);
                ps.setObject(1, 5);
                rs = ps.executeQuery();
                while(rs.next()){
                      //使用一个Map封装一条记录
                     Map<String,Object> m = new HashMap<String,Object>();
                     m.put("name", rs.getObject("name"));
                     m.put("pwd", rs.getObject("pwd"));
                     mm.put((String) rs.getObject("name"), m);
                }
           } catch (Exception e) {
                e.printStackTrace();
           }finally{
                JDBCUtil.close(rs, ps, conn);
           }
           //先遍历外面map,得到里面的map
           for (String name : mm.keySet()) {
                Map<String,Object> m = mm.get(name);
                //再遍历得到的map,通过先获取所有的键,再通过键得到值
                for (String key : m.keySet()) {
                     System.out.print(key+"--"+m.get(key)+"   ");
                }
                System.out.println();
           }
     }

5.使用list结合javabean储存查询数据

 public static void listJavabean(){
           Connection conn = null;
           PreparedStatement ps = null;
           ResultSet rs = null;
           List<U> list = new ArrayList<U>();
           try {
                conn = JDBCUtil.getMysqlConn();
                String sql = "select * from u where id <?";
                ps = conn.prepareStatement(sql);
                ps.setObject(1, 5);
                rs = ps.executeQuery();
                while(rs.next()){
                     //声明U对象
                     U u = new U(rs.getString("name"),rs.getDate("regTime"));
                     list.add(u);
                }
           } catch (Exception e) {
                e.printStackTrace();
           }finally{
                JDBCUtil.close(rs, ps, conn);
           }
           for (U u : list) {
                System.out.println(u.getName()+"--"+u.getRegTime());
           }
     }

 关注公众号,获取免费软件、资料,笔记等。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之所向...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值