我想使用ebean从java调用已保存的sql过程。 我正在使用此代码:
String sql = "call copy_lov_Countries(?)";
CallableSql cs = Ebean.createCallableSql(sql);
cs.registerOut(1, Types.INTEGER);
Ebean.execute(cs);
它到达程序但它没有正确运行。它从不复制任何数据!!
任何想法?
答案 0 :(得分:0)
试试这个:
String sql = "{CALL copy_lov_Countries(:param)";
CallableStatement statement = connection.prepareCall(sql);
statement.registerOutParameter("param", Types.INTEGER);
statement.execute();
connection.commit();
代码适用于Oracle,也适用于MySQL。原则是一样的。
答案 1 :(得分:0)
在Integer returnValue = (Integer) cs.getObject(1);
后尝试此Ebean.execute(cs);
并在此发布它给出了什么?
<强>更新强> :对代码进行以下更改
Ebean.beginTransaction();
try {
String sql = "call copy_lov_Countries(?)";
CallableSql cs = Ebean.createCallableSql(sql);
cs.registerOut(1, Types.INTEGER);
Ebean.execute(cs);
} finally {
Ebean.endTransaction();
}