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

10gbiz首月半价月付2.36美元,香港/洛杉矶VPS、硅谷独立服务器/站群服务器

收到10gbiz发来的7月份优惠方案,中国香港、美国洛杉矶机房VPS主机4折优惠码,优惠后洛杉矶VPS月付2.36美元起,香港VPS月付2.75美元起。这是一家2020年成立的主机商,提供的产品包括独立服务器租用和VPS主机等,数据中心在美国洛杉矶、圣何塞和中国香港。商家VPS主机基于KVM架构,支持使用PayPal或者支付宝付款。洛杉矶VPS架构CPU内存硬盘带宽系统价格单核512MB10GB1...

萤光云(20元/月),香港CN2国庆特惠

可以看到这次国庆萤光云搞了一个不错的折扣,香港CN2产品6.5折促销,还送50的国庆红包。萤光云是2002年创立的商家,本次国庆活动主推的是香港CN2优化的机器,其另外还有国内BGP和高防服务器。本次活动力度较大,CN2优化套餐低至20/月(需买三个月,用上折扣+代金券组合),有需求的可以看看。官方网站:https://www.lightnode.cn/地区CPU内存SSDIP带宽/流量价格备注购...

湖北22元/月(昔日数据)云服务器,国内湖北十堰云服务器,首月6折

昔日数据怎么样?昔日数据新上了湖北十堰云服务器,湖北十堰市IDC数据中心 母鸡采用e5 2651v2 SSD MLC企业硬盘 rdid5阵列为数据护航 100G高防 超出防御峰值空路由2小时 不限制流量。目前,国内湖北十堰云服务器,首月6折火热销售限量30台价格低至22元/月。(注意:之前有个xrhost.cn也叫昔日数据,已经打不开了,一看网站LOGO和名称为同一家,有一定风险,所以尽量不要选择...

resultsetmetadata为你推荐
activity跳转android activity跳转怎么传对象离线包怎样下载离线地图包?郭列90后三无人物,如何创业?如何去实现人生价值?excel大写金额怎么在excel中设置大写金额pps官网pps官方网站下载pps官方正式版下载网站暴力破解rar怎么暴力破解rar密码?快速且有效的无处不在的意思,幸福无处不在,最适合才是最好是什么意思qq管家官网腾讯手机管家如何下载QQ手机管家?云办公平台云办公平台对企业办公有什么好处呢?怎样删除聊天记录自己已发出的微信聊天记录怎样删除才不会让对方看见
长沙服务器租用 最便宜的vps vps虚拟服务器 cn域名个人注册 主机测评 美国主机评论 安云加速器 googleapps 云主机51web 2017年万圣节 panel1 嘟牛 灵动鬼影 135邮箱 129邮箱 可外链网盘 100m独享 彩虹云 便宜空间 太原联通测速 更多