调用存储过程心得

最近没什么事,看核心技术,偶然看到jdbc调用存储过程那里:

{call 存储过程名(?,?)}

这种语法,用习惯了hql,初次看起来有些怪异,不过在某些需要大批量修改数据库的时候,调用存储过程,可以合理的利用数据亏本身的性能,同时优化逻辑,简化代码,确实比起在代码中执行要好。

下面给出hibernate的调用代码:

tx = session.beginTransaction();
Connection con=session.connection();

String procedure = "{call batchUpdateStudent(?) }";
CallableStatement cstmt = con.prepareCall(procedure);
cstmt.setInt(1,0); //把年龄参数设为0
cstmt.executeUpdate();
tx.commit();

感觉上,还是jdbc的操作,

下面是带返回值的

CallableStatement statement = getSession().connection().prepareCall(
                "{call sp_get_keyword_code(?, ? ,? ,?, ?)}");
statement.setString(1, parentCode);
statement.setInt(2, 2);
statement.setString(3, "W");
statement.setInt(4, 1);
statement.registerOutParameter("out_code", Types.VARCHAR);
statement.executeUpdate();
String keycode = statement.getString("out_code");

out_code应该是输出参数的名字,因为环境问题,没法直接测试,后面测试完会更新的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值