resultsetmetadatajdbc ResultSet 结果集 怎么处理

resultsetmetadata  时间:2021-06-17  阅读:()

如何把resultset结果集转换成list集合

方法一:   ResultSet转换为List的方法   private static List convertList(ResultSet rs) throws SQLException {   List list = new ArrayList();   ResultSetMetaData md = rs.getMetaData();   int columnCount = md.getColumnCount(); //Map rowData;   while (rs.next()) { //rowData = new HashMap(columnCount);   Map rowData = new HashMap();   for (int i = 1; i <= columnCount; i++) {   rowData.put(md.getColumnName(i), rs.getObject(i));   }   list.add(rowData);   } return list;   }   方法二:   /** * 通用取结果方案,返回list * * @param rs * @return * @throws SQLException */ public List extractData(ResultSet rs) throws SQLException { ResultSetMetaData md = rs.getMetaData(); int num = md.getColumnCount(); List listOfRows = new ArrayList(); while (rs.next()) { Map mapOfColValues = new HashMap(num); for (int i = 1; i <= num; i++) { mapOfColValues.put(md.getColumnName(i), rs.getObject(i)); } listOfRows.add(mapOfColValues); } return listOfRows; }   /** * 通用取结果方案,返回JSONArray * * @param rs * @return * @throws SQLException */ public JSONArray extractJSONArray(ResultSet rs) throws SQLException { ResultSetMetaData md = rs.getMetaData(); int num = md.getColumnCount(); JSONArray array = new JSONArray(); while (rs.next()) { JSONObject mapOfColValues = new JSONObject(); for (int i = 1; i <= num; i++) { mapOfColValues.put(md.getColumnName(i), rs.getObject(i)); } array.add(mapOfColValues); } return array; }   ResultSet在的二纬结构可以用二维模型处理,即网格数据 处理这里模型时候,通常用list与与Map的合成,json语法格式本质上是map格式,所以在数据与java,js处理上可以做如上的抽取.   方法三:   原理就是用Map存放单条数据然后放到List里   用起来可以这样调用 List list = rs.selectRS(sqlStr);   for(int i=0;i >:   public Map > query(String sql){   Map > map = new HashMap >();   PreparedStatement preStat = null;   try {   preStat = conn.prepareStatement(sql);   ResultSet rs = preStat.executeQuery();   ResultSetMetaData rsMeta = rs.getMetaData();   for(int i = 0; i < rsMeta.getColumnCount(); ++i){   map.put(rsMeta.getColumnName(i+1), new ArrayList());   }   while(rs.next()){   for(int i = 0; i < rsMeta.getColumnCount(); ++i){   String columnName = rsMeta.getColumnName(i+1);   map.get(columnName).add(rs.getString(columnName));   }   }   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }finally{   try {   preStat.close();   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }   }   public Map > query(String sql){   Map > map = new HashMap >();   PreparedStatement preStat = null;   try {   preStat = conn.prepareStatement(sql);   ResultSet rs = preStat.executeQuery();   ResultSetMetaData rsMeta = rs.getMetaData();   for(int i = 0; i < rsMeta.getColumnCount(); ++i){   map.put(rsMeta.getColumnName(i+1), new ArrayList());   }   while(rs.next()){   for(int i = 0; i < rsMeta.getColumnCount(); ++i){   String columnName = rsMeta.getColumnName(i+1);   map.get(columnName).add(rs.getString(columnName));   }   }   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }finally{   try {   preStat.close();   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }   }

从数据库中读取表信息然后返回成Map集合对象

在java中把数据库查询的结果保存到map中: 实现:获得ResultSet rs 时可以转化为ResultSetMetaData对象。

ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。

举例说明如下: //获得ResultSetMetaData对象 ResultSetMetaData rsmd=rs.getMetaData(); //获得返回此 ResultSet 对象中的列数 int count = rsmd.getColumnCount(); while(rs.next()){ Map map=new HashMap(); for(int i=1;i<count;i++){ //获取指定列的表目录名称 String label=rsmd.getColumnLabel(i); //以 Java 编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值 Object object= rs.getObject(i); //把数据库中的字段名和值对应为一个map对象中的一个键值对 map.put(label.toLowerCase(), object); } 把每条对象封装成的map对象放进list中 list.add(map); } 就此就可以把任意resultet通过这个方法生成list对象。

如何在JAVA中获取表的列名

首先获取所有的表名,记录下来。

有了表名,就可以知道其Meta信息了,可以获取相应的列名。

然后把已知的列名在所有列名中遍历,对应的所有表名就可以得到了。

提供一段获取所有表名的代码片断,主要靠DatabaseMetaData: DatabaseMetaData databaseMetaData = conn.getMetaData(); String[] tableType = {"TABLE"}; ResultSet resultSet = databaseMetaData.getTables(null, null, "%", tableType); try { while(resultSet.next()) { String schemaName = resultSet.getString(2); String tableName = resultSet.getString(3); } } finally { resultSet.close(); }

jdbc ResultSet 结果集 怎么处理

用JDBC读取Database里的数据之前,一般情况下是知道Table里的数据类型的。

比如说要获取Student里的字段 name 的值,用rs.getString("name")和rs.getString(1)都能得到,前者是根据字段名读取,后者是根据字段位置读取。

一般的从Database里拿数据出来都要赋值给外面的对象的,比如你题目里的, String name = rs.getString("name") ; String sex = rs.getString("sex") ; int age = rs.getInt("age") ; Student s = new Student(name, sex, age) ;然后这个Student对象还要去做别的事情。

所以你全部用getString(index)来读取数据肯定是不合适的。

getMetaData()这个方法是得到结果集的属性,比如ResultSet 对象的列的编号、类型和属性什么的,返回的是ResultSetMetaData类型。

欧路云:美国CUVIP线路10G防御,8折优惠,19元/月起

欧路云新上了美国洛杉矶cera机房的云服务器,具备弹性云特征(可自定义需要的资源配置:E5-2660 V3、内存、硬盘、流量、带宽),直连网络(联通CUVIP线路),KVM虚拟,自带一个IP,支持购买多个IP,10G的DDoS防御。付款方式:PayPal、支付宝、微信、数字货币(BTC USDT LTC ETH)测试IP:23.224.49.126云服务器 全场8折 优惠码:zhujiceping...

RackNerd 黑色星期五5款年付套餐

RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...

IonSwitch:$1.75/月KVM-1GB/10G SSD/1TB/爱达荷州

IonSwitch是一家2016年成立的国外VPS主机商,部落上一次分享的信息还停留在2019年,主机商提供基于KVM架构的VPS产品,数据中心之前在美国西雅图,目前是美国爱达荷州科德阿伦(美国西北部,西接华盛顿州和俄勒冈州),为新建的自营数据中心。商家针对新数据中心运行及4号独立日提供了一个5折优惠码,优惠后最低1GB内存套餐每月仅1.75美元起。下面列出部分套餐配置信息。CPU:1core内存...

resultsetmetadata为你推荐
大学生就业形势分析如何正确认识大学生的就业形势离线包怎样下载离线地图包?中国学生网全国统一学籍号查询pat是什么格式photoshop填充图案是pat格式,需用什么软件打开?请高人指点,谢谢~netbios协议tcp/ip、ipx/spx、netbios这三个通信协议的区别音乐代码网页中怎么写自动播放mp3音乐的代码cursorlocation如何用ENVI把不同图像中的相同地点的某个像素点的值读出来。按时间把这个点的值连起来,。谢谢好人。特斯拉model3降价特斯拉model 3中国有补贴吗怎么查微信注册时间怎么查一个微信公众号的注册时间,发了多少条内容idataparameterinvalid parameter是什么意思
plesk java主机 isatap 流媒体服务器 174.127.195.202 好看的桌面背景大图 中国特价网 牛人与腾讯客服对话 架设服务器 135邮箱 网站卫士 泉州移动 河南移动m值兑换 web服务器搭建 服务器是干什么用的 德讯 114dns supercache 广州服务器托管 新疆服务器 更多