Java培训之工具类通用的查询一行多列,非实体

发布时间:2019年12月18日作者:atguigu浏览次数:493

工具类通用的查询一行多列,非实体

         //通用的查询方法之四:查询多行多列,但每一行又不是一个JavaBean

         /*

          * SELECT did,AVG(salary),MAX(Salary) FROM t_employee GROUP BY did;

          * did       avg(salary)       max(salary)

                  1       1990.90            8900

                  2       4889                 6899

          */

         public static List<Map<String,Object>> getListMap(String sql,Object… args)throws Exception{

                  //2、获取连接

                  Connection conn = JDBCUtils.getConnection();

 

                  //3、对sql进行预编译

                  PreparedStatement pst = conn.prepareStatement(sql);

 

                  //4、对?进行设置值

                  if(args!=null && args.length>0){

                          for (int i = 0; i < args.length; i++) {

                                   pst.setObject(i+1, args[i]);

                          }

                  }

 

                  //5、执行sql

                  ResultSet rs = pst.executeQuery();

                  //获取结果集的元数据对象

                  ResultSetMetaData metaData = rs.getMetaData();

                  //一共有几列

                  int count = metaData.getColumnCount();

                  //创建List

                  ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

 

                  while(rs.next()){

                          //每一行是一个Map的对象

                          HashMap<String,Object> map = new HashMap<String,Object>();

 

                          //map的key是列名

                          for (int i = 0; i < count; i++) {

                                   //(1)获取列名或别名

                                   String columnName = metaData.getColumnLabel(i+1);

                                   //(2)获取对应的值

                                   Object value = rs.getObject(i+1);

                                   //(3)把这对值放到map中

                                   map.put(columnName, value);

                          }

 

                          //把map放到List中

                          list.add(map);

                  }

 

                  //6、释放资源

                  JDBCUtils.closeQuietly(rs,pst,conn);

 

                  return list;

         }

工具类通用的查询多行多列,非实体

         //通用的查询方法之四:查询一行多列,但一行又不是一个JavaBean

         public static Map<String,Object> getMap(String sql,Object… args)throws Exception{

                  List<Map<String, Object>> listMap = getListMap(sql,args);

                  if(listMap.size()>0){

                          return listMap.get(0);

                  }

                  return null;

         }

想要了解跟多关于Java培训机构课程内容欢迎关注尚硅谷Java培训机构,尚硅谷除了这些技术文章外还有免费的高质量Java培训机构课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)