在数据库中创建带输出参数的存储过程,将输出参数INTO到OUT参数里
调用registerOutParameter(index ,Type)方法注册返回参数,对应括号内占位符?的位置,声明参数类型为int
jdbc封装的Java的常用数据类型
@JDBC---带输出参数的存储过程
存储过程的代码:
CREATE PROCEDURE `sp_select_count`(OUT count INT(10)) BEGIN SELECT COUNT(*) INTO count FROM user1; END |
调用过程:
//1.获取连接 Connection c = DBHelper.getConnection(); //2.获得CallableStatement CallableStatement cs = c.PrepareCall("call sp_select_count(?)"); cs.registerOutParameter(1,Types.INTEGER); //3.执行存储过程 cs.execute(); //4.处理结果集 cs.getInt(1);
存储只有出参时 要定义出参变量和类型
存储过程 查全表数据放入到count中
-- 带输入和输出参数的存储过程
CREATE PROCEDURE sp_in_out(IN u_name VARCHAR(10), OUT count INT(10))
BEGIN
SELECT COUNT(*) INTO count FROM imooc_goddess WHERE user_name LIKE CONCAT('%',u_name,'%');
END
CALL sp_in_out('美',@a);
SELECT @a;
/**
* 调用带输入和输出参数的存储过程
*/
public static Integer select_in_out(String name) throws Exception{
Integer count = 0 ;
Connection conn = DBUtil.getConnection();
CallableStatement cs = conn.prepareCall("CALL sp_in_out(?,?)");
// 设置参数
cs.setString(1, name);
// 注册输出参数
cs.registerOutParameter(2, Types.INTEGER);
cs.execute();
// 出参
count = cs.getInt(2);
return count;
}
@JDBC---带输出参数的存储过程
存储过程的代码:
CREATE PROCEDURE `sp_select_count`(OUT count INT(10)) BEGIN SELECT COUNT(*) INTO count FROM user1; END
调用过程:
//1.获取连接 Connection c = DBHelper.getConnection(); //2.获得CallableStatement CallableStatement cs = c.PrepareCall("call sp_select_count(?)"); cs.registerOutParameter(1,Types.INTEGER); //3.执行存储过程 cs.execute(); //4.处理结果集 cs.getInt(1);
出参类型写法 需要注册