postgresql 与 jdbc 和存储过程(函数):ResultSet

2024-01-21

我只是尝试从服务器调用存储函数(getStat),如下所示:

create type stat as (type text, location text, number int);
create function getStat() returns setof stat as 'select distinct table1.type, table1.location, table1.number from table1, table2 where table2.finding=10 order by number desc;' language 'sql';

现在这是 jdbc 代码:

CallableStatement callable = null;

    String storedProc = "{call getStat(?, ?, ?)}";

    try {
        callable = connection.prepareCall(storedProc);

        callable.registerOutParameter(1, java.sql.Types.VARCHAR);
        callable.registerOutParameter(2, java.sql.Types.VARCHAR);
        callable.registerOutParameter(3, java.sql.Types.INTEGER);

        boolean results = callable.execute();

        System.out.println(callable.getString(1));
        System.out.println(callable.getString(2));
        System.out.println(callable.getInt(3));

        while(results){
            ResultSet rs = callable.getResultSet();
            while(rs.next()){
                System.out.println(rs.getString(1));
                System.out.println(rs.getString(2));
                System.out.println(rs.getInt(3));
            }
            //rs.close();

            results = callable.getMoreResults();
        }

好的,现在问题是: 当我调用它时,它只打印出整个块中的第一行,应该是 printend 。是的,这很清楚,因为我执行了以下代码:

            System.out.println(callable.getString(1));
            System.out.println(callable.getString(2));
            System.out.println(callable.getInt(3));

但我在 while 循环中做了同样的事情......并且没有显示更多内容。

也许问题是显而易见的,但我错过了:(

Thanks!


无需将 CallableStatement 与{call ...}句法。

只需使用选择和常规Statement:

Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("select * from getStat()");
while (rs.next())
{
  System.out.println(rs.getString(1));
  System.out.println(rs.getString(2));
  System.out.println(rs.getInt(3));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

postgresql 与 jdbc 和存储过程(函数):ResultSet 的相关文章

随机推荐

  • pandas agg 和 apply 函数有什么区别?

    我分不清熊猫之间的区别 aggregate and apply功能 以以下为例 我加载一个数据集 执行groupby 定义一个简单的函数 和任一用户 agg or apply 正如您所看到的 我的函数中的打印语句会产生相同的输出 使用后 a
  • 从C#中的角度计算圆圆周上的点?

    我想这是一个简单的问题 但我当前的代码得到了一些奇怪的结果 而且我没有数学背景来完全理解原因 我的目标很简单 如标题所示 我只想找到距中心点一定距离和角度的点 我当前的代码 Point centerPoint new Point 0 0 P
  • 将 MySQL 查询转换为 Codeigniter 语法

    我在将 MYSQL 查询转换为 CI 语法时遇到一些问题 这是我的 MySQL 语法 select a pbj name as NAMA PERUSAHAAN count a id pbj as JUMLAH PAKET group con
  • Clojure:懒惰魔法

    几乎 2 个相同的程序可以生成无限惰性的随机序列 第一个不会崩溃 第二次崩溃 出现 OutOfMemoryError 异常 为什么 Return infinite lazy sequence of random numbers defn i
  • 加盐你的密码:最佳实践? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直很好奇 对密码进行加盐以进行哈希处理时 前缀还是后缀哪个更好 为什么 或者只要你加盐就没关系吗 解释一下 我们现在 希望 都知道我们应该s
  • 在 IntelliJ Idea 中禁用代码折叠?

    如何在 IntelliJ idea 中禁用 或隐藏 这部分 Go to 文件 gt 设置 gt 编辑器 gt 常规 gt 代码折叠 Uncheck 显示代码折叠轮廓
  • 如何通过将所有选项放入 mongodb 的 Node.js 驱动程序的连接字符串中来连接 X509?

    我正在使用可用的密钥mongodb 文档 http mongodb github io node mongodb native 3 6 api MongoClient html使用带有 Node js 驱动程序的 X509 身份验证的自签名
  • 将 speedtest.net api 与 React Native 结合使用

    我正在创建一个 Android React Native 应用程序并尝试使用速度测试 net api https github com ddsol speedtest net获取移动设备的上传和下载速度 但是 当我尝试将库集成到 React
  • SQL Server 2008 中的检查约束

    拜托 我刚刚开始学习 SQL 并且陷入困境 我正在尝试为我的测试项目构建一个数据库 我创建了一些表 做了关系 定义了主键和外键 所有这些都在 SQL Server 2008 中通过可视化界面 表设计 编辑 没有声明编码 还没有到达那里 但我
  • 在 Sublime Text 中,如何查找和替换文件名

    在 Sublime Text 中有没有一种方法可以找到模式并将其替换为文件名 例如 我有一堆包含人物的文件名 我想用人来代替它 in SideBarEnhancements有一个选项Mass Rename Selection under F
  • Apache HTTP 连接与 Android 6.0 (Marshmallow)

    有没有办法将 Apache 库直接包含在 Gradle 中以使其与 Android 6 0 一起使用 我尝试包含这样的库 compile org apache httpcomponents httpcore 4 4 1 compile or
  • 代号一号如何运作?

    我正在寻找针对多个移动平台进行开发的替代方案 并发现代号一 http www codenameone com 使用 Java 作为通用语 而不是 HTML CSS JS 或脚本语言 我找不到的是它是如何工作的 它是否将 JVM 与 iOS
  • 使用 Google 跟踪代码管理器从 URL 中删除查询字符串

    我试图通过从 URL 中删除查询字符串来整理 Google Analytics 中的分析 但这分为三个要求 我想删除 GA 分析中显示的查询字符串 竞选 UTM 仍然需要发挥作用 阻止 UTM 中收集的任何 PII 攻击 GA 我发现了许多
  • 用于使用私有组件进行单元测试的 CocoaPods 项目结构

    我正在将 CocoaPods 用于具有以下结构的项目 Example Example PublicUmbrellaHeader h Example PrivateHeaderForComponent1 h Example PrivateHe
  • 使用 iText 自定义签名外观

    我正在尝试使用 iText sharp 版本 5 5 13 创建自定义数字签名 用户可以从一组四个位置 顶部 底部 左侧和右侧 设置图像位置 如下所示 Rigth Left Top Bottom 到目前为止 我尝试在签名的第 0 层上工作
  • Python 和 ctypes:如何正确地将“指针到指针”传递到 DLL 中?

    我有一个 DLL 它分配内存并返回它 DLL中的函数如下 void Foo unsigned char ppMem int pSize pSize 4 ppMem malloc pSize for int i 0 i lt pSize i
  • PHP file_put_contents 在 75 万行文本文件上的性能

    此 PHP 脚本将行添加到我的文本文件 日志 中 file put contents filename log PHP EOL FILE APPEND LOCK EX 我将日志文件限制在 100Mb 以内 此后将创建一个新文件 因此我预计大
  • Celery 工作者和命令行参数

    我正在重构我的代码以使用芹菜工人 之前我曾经使用 argparse 来传递命令行参数 e g if name main parser argparse ArgumentParser description Node parser add a
  • 我可以参数化空约束类型吗?

    我有一个队列类 它允许实例定义它对元素施加的约束 例如 优先级队列要求其元素是可排序的 LANGUAGE MultiParamTypeClasses ConstraintKinds FunctionalDependencies class
  • postgresql 与 jdbc 和存储过程(函数):ResultSet

    我只是尝试从服务器调用存储函数 getStat 如下所示 create type stat as type text location text number int create function getStat returns seto