`

多集合查询(getMoreResults())

 
阅读更多
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 	DELIMITER $$
	USE `test`$$
	DROP PROCEDURE IF EXISTS `query_member`$$
	CREATE PROCEDURE `query_member`()
	BEGIN
	SELECT * FROM member;
	SELECT * FROM student;
         DELETE FROM user;
	END$$
	DELIMITER ;
 */
public class MoreResultQuery {
	public static void main(String[] args) throws Exception{
		Connection conn = getConnection();
		Statement stmt = conn.createStatement();
		boolean bool = stmt.execute("call query_member()");
		boolean check = true;
		do{
			if(bool){
				ResultSet rs = stmt.getResultSet();
				ResultSetMetaData rsmd = rs.getMetaData();
				int count = rsmd.getColumnCount();
				while(rs.next()){
					for(int i= 1;i<=count;i++){
						String key = rsmd.getColumnLabel(i);
						System.out.print(key + ":" + rs.getString(key)+"\t");
					}
					System.out.println();
				}
			}else{
				int count = stmt.getUpdateCount();//如何是ResultSet或没有可显示的结果集返回-1
				if(count!=-1){
					System.out.println("更新成功影响数据库条数:"+count);
				}else{
					check = false;
				}
			}
			bool = stmt.getMoreResults();//移至下一结果集,如果是ResultSet返回true如果是更新语句getUpdateCount()>=0或没有结果集可显示返回false
		}while(check);
	}
	public static Connection getConnection() throws SQLException,ClassNotFoundException{
		Class.forName("com.mysql.jdbc.Driver");
		return DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
	}
}
分享到:
评论

相关推荐

    Oracle 返回多个结果集

    在Oracle数据库中,返回多个结果集是一个常见的需求,特别是在处理复杂的查询或存储过程时。一个结果集通常对应于SQL查询的执行结果,但有时我们可能需要在一个操作中获取并处理多个独立的结果集。这就涉及到了...

    jdbc的入门小程序之3

    jdbc查询数据库中表格内容小实例,压缩包内有本人制作...如果有多个结果集,则可以通过调研getMoreResults成员方法不断一道下一个结果集,并通过成员方法getResultSet获取结果,通过成员方法getUpdateCount更新当前计数

    JAVA调用存储过程

    4. **处理多结果集**:如果存在多个结果集,可以使用`getMoreResults`方法来获取下一个结果集。 ```java if (callableStatement.getMoreResults()) { ResultSet resultSet2 = callableStatement.getResultSet();...

    JDBWC - Type 3 Java JDBC driver:JDBC网络驱动程序-开源

    适合需要跨Internet等广域网进行JDBC访问但不希望通过远程主机防火墙公开远程数据库服务器的Java应用程序。... Java客户端应用程序可以使用SSL协议... 连续运行多个选择查询时,此功能可以帮助提高客户端应用程序的性能。

    excute,excuteUpdate,excuteQuery的区别跟用法

    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery ...stmt.getMoreResults(); continue; }

    Java调用MySQL存储过程并获得返回值的方法

    如果存储过程返回多个结果集,可以通过`getMoreResults()`检查是否有更多结果集。如果有,再次调用`getResultSet()`获取下一个结果集,重复处理过程。 7. **关闭资源**: 完成处理后,务必关闭所有打开的资源,...

    java 调存储过程

    如果存储过程返回多结果集,可以使用`getMoreResults()`方法循环遍历。 7. **异常处理**: 在实际应用中,要确保对可能出现的异常进行捕获和处理,以保证程序的健壮性。 8. **注意点**: - 不同的数据库系统可能...

    Java对存储过程的调用方法

    如果存储过程返回多个结果集,可以使用`getMoreResults()`来遍历。 4. **事务管理**:在调用存储过程时,通常会涉及到数据库事务。可以使用`Connection`对象的`setAutoCommit()`方法来控制自动提交,或者使用`...

Global site tag (gtag.js) - Google Analytics