-- drop procedure test_proc;
DELIMITER //
CREATE PROCEDURE test_proc(out p_out int, inout p_inout int, in p_in int)
BEGIN
set p_out=200000002;
set p_inout=1000;
set p_in=200;
END;
//
DELIMITER ;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
public class JdbcProcedureTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/ump?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE";
String user = "root";
String password = "123456";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "{call test_proc(?,?,?)}";
CallableStatement stmt = conn.prepareCall(sql);
stmt.setObject(2, "2");
stmt.setObject(3, "3");
stmt.registerOutParameter(1, Types.VARCHAR);
stmt.registerOutParameter(2, Types.VARCHAR);
stmt.execute();
String s1 = stmt.getString(1);
String s2 = stmt.getString(2);
System.out.println("s1=" + s1 + ", s2=" + s2);
}
}
输出结果:
s1=200000002, s2=1000