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

OneTechCloud香港/日本/美国CN2 GIA月付9折季付8折,可选原生IP或高防VPS

OneTechCloud(易科云)是一家主打CN2等高端线路的VPS主机商家,成立于2019年,提供的产品包括VPS主机和独立服务器租用等,数据中心可选美国洛杉矶、中国香港、日本等,有CN2 GIA线路、AS9929、高防、原生IP等。目前商家针对全场VPS主机提供月付9折,季付8折优惠码,优惠后香港VPS最低季付64元起(≈21.3元/月),美国洛杉矶CN2 GIA线路+20Gbps防御型VPS...

SugarHosts糖果主机,(67元/年)云服务器/虚拟主机低至半价

SugarHosts 糖果主机商也算是比较老牌的主机商,从2009年开始推出虚拟主机以来,目前当然还是以虚拟主机为主,也有新增云服务器和独立服务器。早年很多网友也比较争议他们家是不是国人商家,其实这些不是特别重要,我们很多国人商家或者国外商家主要还是看重的是品质和服务。一晃十二年过去,有看到SugarHosts糖果主机商12周年的促销活动。如果我们有需要香港、美国、德国虚拟主机的可以选择,他们家的...

HostKvm(4.25美)香港和俄罗斯高防机房云服务器

HostKvm 商家我们算是比较熟悉的国内商家,商家主要还是提供以亚洲数据中心,以及直连海外线路的服务商。这次商家有新增香港和俄罗斯两个机房的高防服务器方案。默认提供30GB防御,且目前半价优惠至4.25美元起步,其他方案的VPS主机还是正常的八折优惠。我们看看优惠活动。香港和俄罗斯半价优惠:2021fall,限购100台。通用优惠码:2021 ,八折优惠全部VPS。我们看看具体的套餐。1、香港高...

resultsetmetadata为你推荐
c语言论坛求C语言学习的论坛,或者网站,谢谢郭列90后三无人物,如何创业?如何去实现人生价值?webservice框架WebService新手,请教WebService需要什么包cursorlocation如何用ENVI把不同图像中的相同地点的某个像素点的值读出来。按时间把这个点的值连起来,。谢谢好人。东兴证券网站东兴证券交易软件如何操作?gbk内码Gbk内码查询怎样删除聊天记录如何删除聊天particular教程AE的particular的particle设置aviconverter哪款AVI转换器好用?推荐一下aviconverter介绍一个好用的免费的avi转换器
子域名查询 免费域名注册网站 域名注册godaddy 香港服务器租用 广东vps 国外免费vps 免费域名解析 什么是二级域名 host1plus 私服服务器 私人服务器 美国便宜货网站 wordpress技巧 云主机51web 租空间 免费网站申请 数字域名 工信部icp备案号 idc是什么 免费dns解析 更多