
我找到了这篇很棒的文章。http://www.herongyang.com/JDBC/MySQL-CallableStatement-Multiple-
ResulSet.html
这是该文章中的代码。
import java.sql.*;public class MySqlCallMultipleResultSet { public static void main(String [] args) { Connection con = null; try { com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource(); ds.setServerName("localhost"); ds.setPortNumber(3306); ds.setDatabaseName("HerongDB"); ds.setUser("Herong"); ds.setPassword("TopSecret"); con = ds.getConnection();// Create CallableStatement CallableStatement cs = con.prepareCall("CALL HeadTail(?)");// Register OUT parameters cs.registerOutParameter(1, java.sql.Types.INTEGER);// Execute the CALL statement and expecting multiple result sets boolean isResultSet = cs.execute();// First ReulstSet object if (!isResultSet) { System.out.println("The first result is not a ResultSet."); return; }// First ReulstSet object System.out.println("Head of the table:"); ResultSet res = cs.getResultSet(); while (res.next()) { System.out.println(" "+res.getInt("ID") +", "+res.getString("FirstName") +", "+res.getString("LastName") +", "+res.getTimestamp("ModTime")); } res.close();// Move to the next result isResultSet = cs.getMoreResults(); if (!isResultSet) { System.out.println("The next result is not a ResultSet."); return; }// Second ReulstSet object System.out.println("Tail of the table:"); res = cs.getResultSet(); while (res.next()) { System.out.println(" "+res.getInt("ID") +", "+res.getString("FirstName") +", "+res.getString("LastName") +", "+res.getTimestamp("ModTime")); } res.close();// Retrieve OUT parameters System.out.println("Total number of records: "+cs.getInt(1));// Close resource cs.close(); con.close(); } catch (Exception e) { System.err.println("Exception: "+e.getMessage()); e.printStackTrace(); } }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)