/**
* 执行存储过程
* @author John
*/
public class Procedure {
@Test
public void procedure1(){
Connection conn=null;
CallableStatement cs=null;//CallableStatement继承自prepareStatement
ResultSet rs=null;
JDBCUtils utils = JDBCUtils.getInstance();
//创建执行存储过程的sql{call 存储过程的名称(?,?...参数)}
String sql="{call addId(?,?,?,?,?)}";
try {
conn = utils.getConnection();
cs = conn.prepareCall(sql);
cs.setString(1, "小明");
cs.setString(2, "85858585");
cs.setInt(3, 1);
cs.setInt(4, 18);
cs.registerOutParameter(5,Types.INTEGER);//注册输出参数类型,即OUT类型的参数
cs.executeUpdate();
int id = cs.getInt(5);
System.out.println("id:"+id);
} catch (SQLException e) {
e.printStackTrace();
}finally{
utils.free(conn, cs, rs);
}
}
//这是一个简单的存储过程
/**
* CREATE PROCEDURE addId (//创建存储过程,名字为addId
IN pusername VARCHAR (255), //IN代表输入参数
IN p_password VARCHAR (255),
IN p_sex INT,
IN p_age INT,
OUT p_id INT) //OUT代表输出参数
BEGIN //开始
INSERT INTO USER (username,password,sex,age) VALUES (pusername,p_password,p_sex,p_age);
SELECT LAST_INSERT_ID() INTO p_id;//找出最新插入记录的id LAST_INSERT_ID是mysql特有的函数
END
*
*/
}
JDBC操作简单的存储过程
最新推荐文章于 2022-05-17 18:06:23 发布