讓java從Mysql返回多個ResultSet
首先,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();
}
讓java從Mysql返回多個ResultSet