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类型。

JustHost:俄罗斯/新西伯利亚vps,512MB内存/5GB空间/不限流量/200Mbps/KVM/自由更换IP,$1.57/月

justhost怎么样?justhost是一家俄罗斯主机商,2006年成立,提供各种主机服务,vps基于kvm,有HDD和SSD硬盘两种,特色是200Mbps不限流量(之前是100Mbps,现在升级为200Mbps)。下面是HDD硬盘的KVM VPS,性价比最高,此外还有SSD硬盘的KVM VPS,价格略高。支持Paypal付款。国内建议选择新西伯利亚或者莫斯科DataLine。支持Paypal付...

UCloud:全球大促降价,云服务器全网最低价,1核1G快杰云服务器47元/年

ucloud:全球大促活动降价了!这次云服务器全网最低价,也算是让利用户了,UCloud商家调低了之前的促销活动价格,并且新增了1核1G内存配置快杰型云服务器,价格是47元/年(也可选2元首月),这是全网同配置最便宜的云服务器了!UCloud全球大促活动促销机型有快杰型云服务器和通用型云服务器,促销机房国内海外都有,覆盖全球20个城市,具体有北京、上海、广州、香港、 台北、日本东京、越南胡志明市、...

新网,域名7月盛夏1核心2G内存.COM域名仅19.9元/首年,主机9.9元/月,企业邮箱0元体验

新网好不好?新网域名便宜吗?新网怎么样?新网是国内老牌知名域名注册商,企业正规化运营,资质齐全,与阿里云万网和腾讯云DNSPOD同为国内服务商巨头。近日新网发布了最新的七月放价季优惠活动,主要针对域名、云主机、企业邮箱、SSL证书等多款云产品推送了超值的优惠,其中.com顶级域名仅19.9元/首年,.cn域名仅16元/首年,云主机1核心2G内存3Mbps带宽仅9.9元/月,企业邮箱更是免费送1年,...

resultsetmetadata为你推荐
createfile失败惠普机看机提示create file fail 无法进桌面flash实例Flash元件和实例的概念及关系?刷ip流量免费刷流量软件有哪些?哪个免费刷流量工具最好?在线直播系统网络视频直播系统的简介shoujiao黑鲨手机SKW一AO怎么解锁?全局钩子求助:全局钩子是怎么回事啊?下载的游戏为什么会安装钩子?求大神帮助za是哪个国家的奥洛菲是哪个国家的gbk内码怎么查GBK内码?彩信平台请问彩信平台升级怎么改参数能告诉我具体步骤吗?在线沟通网络沟通的问题有哪些
网站空间租赁 cn域名 域名空间购买 免费申请网站域名 七牛优惠码 冰山互联 hawkhost 空间打开慢 轻博客 搜狗抢票助手 天猫双十一抢红包 web服务器架设软件 商家促销 南昌服务器托管 牛人与腾讯客服对话 大容量存储器 申请个人网站 重庆双线服务器托管 免费邮件服务器 数据库空间 更多