让java从Mysql返回多个ResultSet

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

首先,JDBC对于SQLSERVER来说默认是支持返回,但对于MySql来说,只默认支持存储过程返回多个ResultSet,那对于手写SQL怎么办。

其实很简单,只要一个在连接字符串中加一个参数:allowMultiQueries=true。

代码实现如下:

@Test
public void test01() throws SQLException, ClassNotFoundException {
    String DBDRIVER = "com.mysql.jdbc.Driver";
    String DBURL = "jdbc:mysql://localhost:3306/bookstore?allowMultiQueries=true";
    String DBUSER = "root";
    String DBPASS = "root";

    Connection conn = null; 
    Class.forName(DBDRIVER); 
    conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
    System.out.println(conn);
    String sql = "SELECT * FROM category;"
            +"SELECT * FROM user;" ;
    Statement stmt = conn.createStatement();

    boolean isResultSet = stmt.execute(sql);
    ResultSet rs = null;
    int count = 0;
    while(true) {
        if(isResultSet) {
            rs = stmt.getResultSet();
            while(rs.next()) {
                System.out.println(rs.getString(1));
            }
            rs.close();
        } else {
            if(stmt.getUpdateCount() == -1) {
                break;
            }
            System.out.printf("Result {} is just a count: {}", count, stmt.getUpdateCount());
        }

        count ++;
        isResultSet = stmt.getMoreResults();
    }
    stmt.close();
    conn.close(); 
}


本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/p/7261348.html,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 数据库连接
hibernate.exception.GenericJDBCException: could not extract ResultSet 解决办法
这句话翻译过来就是无法提取ResultSet 我在联查表的视图的时候发现的问题,明明之前好好的 那么你就得想想了 你再把错误信息往上翻翻,能不能看到 no viable alternative at input‘XXXX’ 是不是在关联表里更改了字段名视图里没改,字段名都不匹配它找个屁啊(笑)
|
5月前
|
Java 编译器
Java中的return语句深入解析
Java中的return语句深入解析
241 0
|
druid Java 数据库连接
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
2407 0
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
|
SQL 关系型数据库 MySQL
MySQL - IS NOT NULL 和 != NULL 的区别?
MySQL - IS NOT NULL 和 != NULL 的区别?
605 0
|
Java 关系型数据库 MySQL
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active
374 0
|
Java 数据库连接
java使用jdbc连接ResultSet通过next()取不到第一条数据
java使用jdbc连接ResultSet通过next()取不到第一条数据
308 0
|
SQL Java 关系型数据库
记录:springboot使用resultType空指针java.lang.NullPointerException: null...【亲测有效】
记录:springboot使用resultType空指针java.lang.NullPointerException: null...【亲测有效】
417 0
|
JSON Java 数据库
Java数据库ResultSet转json实现
现在有很多json相关的Java工具,如json-lib、gson等,它们可以直接把JavaBean转换成json格式。 在开发中,可能会从数据库中获取数据,希望直接转成json数组,中间不通过bean。
2004 0
|
SQL 关系型数据库 MySQL
Dolphinscheduler执行MySQL任务时报错execute sql error java.lang.RuntimeException: send mail failed!
Dolphinscheduler执行MySQL任务时报错execute sql error java.lang.RuntimeException: send mail failed!
Dolphinscheduler执行MySQL任务时报错execute sql error java.lang.RuntimeException: send mail failed!