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

Megalayer美国服务器CN2优化线路30M带宽3独立IP限时月299元

Megalayer 商家算是比较新晋的国内主机商,主要方向是美国、香港、菲律宾等机房的独立服务器为主,以及站群服务器和显卡服务器。同时也有新增价格并不是特别优惠的VPS云服务器。上午的时候有网友问问有没有CN2线路的美国独立服务器的,这里我推荐他选择Megalayer看看,目前也是有活动截止到月底的。Megalayer 商家创办2年左右时间,如果我们初次使用建议月付体验。目前在进行且可能截止到6月...

RFCHOST - 洛杉矶CN2 GIA VPS季付23.9美元起 100Mbps带宽

RFCHOST,这个服务商我们可能有一些朋友知道的。不要看官网是英文就以为是老外服务商,实际上这个服务商公司在上海。我们实际上看到的很多商家,有的是繁体,有的是英文,实际上很多都是我们国人朋友做的,有的甚至还做好几个品牌域名,实际上都是一个公司。对于RFCHOST商家还是第一次分享他们家的信息,公司成立大约2015年左右。目前RFCHOST洛杉矶机房VPS正进行优惠促销,采用CN2优化线路,电信双...

DMIT:新推出美国cn2 gia线路高性能 AMD EPYC/不限流量VPS(Premium Unmetered)$179.99/月起

DMIT,最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99 美元 !!目前美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线路),Prem...

resultsetmetadata为你推荐
sql四舍五入sql 查询出的结果进行除法运算,结果无法四舍五入。求助!免费图片上传怎样免费把图片上传到淘宝上 ?4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?漏洞查询如何查找漏洞 从那做起avc是什么格式电厂AVC啥意思?怎么用电脑发短信怎么样用电脑给手机发短信?java程序员招聘女java程序员好找工作嘛ibooks支持什么格式ibooks使用的最佳格式是什么格式?flv转aviflv格式的视频怎么转换成avi格式?达思数据恢复如何使用recover数据恢复平台
域名解析 中文域名 备案未注册域名 vps论坛 新加坡主机 oneasiahost rak机房 国外空间服务商 unsplash 免费名片模板 css样式大全 ftp教程 国外免费asp空间 中国电信宽带测速网 昆明蜗牛家 域名与空间 双线空间 lamp兄弟连 杭州电信 免费主页空间 更多