ResultSet结果集

一、概述

     在最近开发的文件上转上转功能,使用到JDBC进行操作数据库。在操作数据库中使用到ResultSet结果集类与ResultSetMetaData 类。Resultset主要用于接收JDBC查询语句返回的数据集对象,而ResultSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。

二、使用

ResultSet 的使用

ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

 String getcommoditydatetwo = SqlManager.getSqlStmtDirect("TF_F_USER_COMMODITY_STATE","GETDATACTRM_TF_F_USER_COMMODITY_STATE");
                logger.info("商品续订文件接口打印sql"+ getcommoditydatetwo);
                pstmt=dbBean.getPreparedStatement(getcommoditydatetwo);
                pstmt.setString(1, SERVICENO);
                pstmt.setString(2, ELEMENT_ID);
                logger.info("商品续订文件接口订单号查询入参"+ ELEMENT_ID+" test  "+SERVICENO);
                ResultSet rs=pstmt.executeQuery();

ResultSet对象保持一个光标指向其当前的数据行。 最初,光标位于第一行之前。 next方法将光标移动到下一行,并且由于在ResultSet对象中没有更多行时返回false ,因此可以在while循环中使用循环来遍历结果集。

通过索引来获取数据

         //rs.next默认从查询结果的第一行开始,依次遍历,无下一 列时返回false
                while (rs.next())
                {
                    Integer ID=rs.getInt(1);//第一列
                    String Name=rs.getString(2);//第二列
                }

通过列的名称获取数据

     //rs.next默认从查询结果的第一行开始,依次遍历,无下一 列时返回false
                while (rs.next())
                {
                    Integer ID=rs.getInt("ID");//第一列
                    String Name=rs.getString("Name");//第二列
                }

ResultSet对象常用的一些方法​​​​

booleanabsolute(int row)

将光标移动到此 ResultSet对象中的给定行号。

voidafterLast()

将光标移动到这个 ResultSet对象的末尾,就在最后一行之后。

voidbeforeFirst()

将光标移动到这个 ResultSet对象的正面,就在第一行之前。

voidcancelRowUpdates()

取消对此 ResultSet对象中当前行的更新。

voidclearWarnings()

清除此 ResultSet对象上报告的所有警告。

voidclose()

ResultSet释放此 ResultSet对象的数据库和JDBC资源,而不是等待其自动关闭时发生。

voiddeleteRow()

从此 ResultSet对象和底层数据库中删除当前行。

intfindColumn(String columnLabel)

将给定的 ResultSet列标签映射到其 ResultSet列索引。

booleanfirst()

将光标移动到此 ResultSet对象中的第一行。

ArraygetArray(int columnIndex)

将该 ResultSet对象的当前行中指定列的值作为Java编程语言中的 Array对象检索。

ArraygetArray(String columnLabel)

将此 ResultSet对象的当前行中指定列的值作为Java编程语言中的 Array对象检索

 ResultSetMetaData的使用

获取对象

 ResultSetMetaData md = rs.getMetaData();

常用方法

getColumnCount():返回当前 ResultSet 对象中的列数。

getColumnName(index):返回第列的名称
.....

三、实例

 if (SERVICENO != null && !SERVICENO.equals("")&&ELEMENT_ID != null && !ELEMENT_ID.equals("")) {
                dbBean.setAutoCommit(true);
                String getcommoditydatetwo = SqlManager.getSqlStmtDirect("TF_F_USER_COMMODITY_STATE","GETDATACTRM_TF_F_USER_COMMODITY_STATE");
                logger.info("商品续订文件接口打印sql"+ getcommoditydatetwo);
                pstmt=dbBean.getPreparedStatement(getcommoditydatetwo);
                pstmt.setString(1, SERVICENO);
                pstmt.setString(2, ELEMENT_ID);
                logger.info("商品续订文件接口订单号查询入参"+ ELEMENT_ID+" test  "+SERVICENO);
                ResultSet rs=pstmt.executeQuery();
                ResultSetMetaData md = rs.getMetaData();
                //第一行,因为取第一行,rs.next()只能在代码中出现一次
                if(rs.next())
                {
                    while (true)
                    {
                        rowData = new HashMap<Object,Object>();
                        rowData.put(md.getColumnName(1),rs.getObject(1));//第一列   //商品ID
                        rowData.put(md.getColumnName(2),rs.getObject(2));//第2列   //订单号
                        rowData.put(md.getColumnName(3),rs.getObject(3));//第3列  //省份id
                        rowData.put("DATAMSG","havadata");
                        break;//跳出死循环
                    }
                }else
                {
                    rowData = new HashMap();
                    rowData.put("DATAMSG","nothava");
                }
            }

 

  • 19
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值