java 调用mysql存储过程

来源:互联网 发布:淘宝网站的发展现状 编辑:程序博客网 时间:2024/05/18 01:25

mysql存储过程调用方法:

// 定义变量private static Connection ct = null;private static CallableStatement cs = null;
//……省略部分jdbc通用代码
public static CallableStatement callPro1(String sql, String[] parameters) {try {ct = getConnection();cs = ct.prepareCall(sql);if (parameters != null) {for (int i = 0; i < parameters.length; i++) {cs.setObject(i + 1, parameters[i]);}}cs.execute();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage());} finally {close(rs, cs, ct);}return cs;}

调用:

@Overridepublic void changeOrder(String cid, String changevalue) {new SqlHelper();SqlHelper.callPro1("{call Changeorder(?,?)}",new String[]{cid,changevalue});}

Changeorder(?,?)为存储过程名,?为输入参数。

new String[]{cid,changevalue}为存储过程参数赋值


这里还有带有输入输出的方法,项目中没有用到,记录一下

// *******************callpro2存储过程2************************public static CallableStatement callPro2(String sql, String[] inparameters,Integer[] outparameters) {try {ct = getConnection();cs = ct.prepareCall(sql);if (inparameters != null) {for (int i = 0; i < inparameters.length; i++) {cs.setObject(i + 1, inparameters[i]);}}// cs.registerOutparameter(2,oracle.jdbc.OracleTypes.CURSOR);if (outparameters != null) {for (int i = 0; i < outparameters.length; i++) {cs.registerOutParameter(inparameters.length + 1 + i,outparameters[i]);}}cs.execute();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage());} finally {}return cs;}


0 0