java jdbc 保存_JavaJDBC【四、存储过程的使用】

本文详细介绍了在Java中如何调用MySQL的存储过程,包括无参数、含入参和含出参(非ResultSet)的存储过程。通过示例代码展示了CallableStatement的使用,包括设置参数、获取结果集和处理输出参数。
摘要由CSDN通过智能技术生成

Mysql还没学到存储过程,不过语法比较简单

此处不深究数据库中的存储过程怎么创建,后面在mysql的学习笔记里再做整理

今天只整理java中如何调用存储过程

语句

CallableStatement cs = (CallableStatement) con.prepareCall("call testProcedure()"); //使用prepareCall,用存储过程初始化

ResultSet rs = cs.getResultSet(); //直接调用,返回resultset

cs.registerOutParameter(1, Types.INTEGER); //设置出参

cs.execute(); //或设置出参后直接调用,返回出参

cs.getInt(1); //获取返回值

1. 无参存储过程的调用

public static List proceNoParam() throws SQLException {

List relist = new ArrayList();

Connection con = DBUtil.GetConnection();

CallableStatement cs = (CallableStatement) con

.prepareCall("call testProcedure()");

cs.execute();

ResultSet rs = cs.getResultSet();

while (rs.next()) {

JDBCModel m = new JDBCModel();

m.setId(rs.getInt("id"));

m.setName(rs.getString("name"));

m.setCreatetime(rs.getDate("createtime"));

relist.add(m);

}

return relist;

}

2. 含入参存储过程的调用

public static List proceInParam(int id) throws SQLException {

List relist = new ArrayList();

Connection con = DBUtil.GetConnection();

CallableStatement cs = (CallableStatement) con

.prepareCall("call testInParam(?)");

cs.setInt(1, id);

cs.execute();

ResultSet rs = cs.getResultSet();

while (rs.next()) {

JDBCModel m = new JDBCModel();

m.setId(rs.getInt("id"));

m.setName(rs.getString("name"));

m.setCreatetime(rs.getDate("createtime"));

relist.add(m);

}

return relist;

}

3. 含出参(非ResultSet)存储过程的调用

public static int proceOutParam() throws SQLException {

Connection con = DBUtil.GetConnection();

CallableStatement cs = (CallableStatement) con

.prepareCall("call testOutParam(?)");

cs.registerOutParameter(1, Types.INTEGER);

cs.execute();

int c = cs.getInt(1);

return c;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值