zoukankan      html  css  js  c++  java
  • ResultSet与Result

    微软的.NET平台上面的数据访问有一个特点,就是数据查询的结果,可以放在内存中,以XML格式进行描述,不需要一直与数据库保持在线连接,用DataSet + Data Adapter来实现!

    而在JDBC中,我们通常使用javax.sql.ResultSet类来存放放回的数据,它会长期占用数据库连接的资源.是一个有点不爽的问题...

    其实,在JSTL中提供了另外一种机制,让我们在返回查询结果到表示层的时候,可以做到离线使用!它就是javax.servlet.jsp.jstl.sql.Result类!

    Result:

        1,  定义

        表示数据库结果集的数据表。完整名称javax.servlet.jsp.jstl.sql.Result

        2,  获得

        为了得到ResultSet,我们首先必须先要得到Result,然后使用ResultSupport.toResult(rs)转化即可。

        3,遍历

        Result的结构为SortedMap数组(SortedMap[]),即表中每一行为一个SortedMap。其中key值为列名,value值为列值。

        遍历时先取出表中的每一行,即SortedMap[]中每一个元素--使用Result.getRows()方法可以得到SortedMap[],然后通过key值取得value值

    数据库表TestResult:

    JAVA代码:

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.PreparedStatement;
     4 import java.sql.ResultSet;
     5 import java.sql.SQLException;
     6 import java.util.SortedMap;
     7 import javax.servlet.jsp.jstl.sql.Result;
     8 import javax.servlet.jsp.jstl.sql.ResultSupport;
     9 
    10 
    11 public class TestResult {
    12     public static void main(String[] args) {
    13         try {
    14             //JDBC连接数据库
    15             Class.forName("oracle.jdbc.OracleDriver");
    16             Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","wladmin","lan2711");
    17             PreparedStatement pStat = conn.prepareStatement("select * from testresult");
    18             //得到ResultSet
    19             ResultSet rs = pStat.executeQuery();
    20             //软换为Result
    21             Result result = ResultSupport.toResult(rs);
    22             //遍历--选通过result.getRows()得到SortedMap[],使用for遍历SortedMap[]里的每一元素
    23             for(SortedMap item : result.getRows()){
    24                 //通过列名来值取得SortedMap中的value
    25                 System.out.println("id:"+item.get("id")+"   name:"+item.get("name"));
    26             }
    27         } catch (ClassNotFoundException e) {
    28             e.printStackTrace();
    29         } catch (SQLException e) {
    30             e.printStackTrace();
    31         }
    32         
    33     }
    34 }

     结果 :

    id:1    name:hello
    id:2    name:world

  • 相关阅读:
    PHP window下安装Spl_Types模块
    零碎知识
    Unity MonoDevelop一打开未响应
    Unity 碰撞的例子
    MongoDB的使用技巧(转)
    mongo 与 传统mysql语法对比
    preg_match 与 preg_match_all
    PHP在 win7 64位 旗舰版 报错 Call to undefined function curl_init()
    smarty 教程 及 常用点
    linux 打包 压缩 解压缩
  • 原文地址:https://www.cnblogs.com/likailan/p/3256568.html
Copyright © 2011-2022 走看看