//oralce存储过程示例 create or replace procedure mycur(o out sys_refcursor) as begin open o for select * from emp; end; //mysql存储过程示例 create or replace procedure xx() begin select * from person; end; Java测试代码如下: import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import oracle.jdbc.OracleTypes; public class TestNew { /** * @param args */ public static void main(String[] args) { // //oracle调用存储过程 // String sql = "jdbc:oracle:thin:@127.0.0.1:1521:LEE"; // try { // Class.forName("oracle.jdbc.driver.OracleDriver"); // // Connection conn = DriverManager.getConnection(sql,"scott","tiger"); // CallableStatement stmt = conn.prepareCall("{call MYCUR(?)}"); // stmt.registerOutParameter(1, OracleTypes.CURSOR); // // stmt.execute(); // // ResultSet rs = (ResultSet)stmt.getObject(1); // while(rs.next()){ // System.out.print (rs.getString("ename")); // System.out.print (" , "); // System.out.println (rs.getString("job")); // } // // // } catch (ClassNotFoundException e) { // e.printStackTrace(); // } catch (SQLException e) { // e.printStackTrace(); // } //mysql调用存储过程 String url = "jdbc:mysql://127.0.0.1:3306/test"; try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Connection conn = DriverManager.getConnection(url, "root",""); CallableStatement stmt = conn.prepareCall("{call xx()}"); stmt.execute(); ResultSet rs = (ResultSet)stmt.getResultSet(); while(rs.next()){ System.out.print (rs.getString(1)); System.out.print (" , "); System.out.println (rs.getString(2)); } } catch (SQLException e) { e.printStackTrace(); } } private TestNew() { } }