从java调用sql程序

时间:2014-12-08 07:56:06

标签: java mysql sql playframework ebean

我想使用ebean从java调用已保存的sql过程。 我正在使用此代码:

String sql = "call copy_lov_Countries(?)";
CallableSql cs = Ebean.createCallableSql(sql);
cs.registerOut(1, Types.INTEGER);
Ebean.execute(cs);

它到达程序但它没有正确运行。它从不复制任何数据!!

任何想法?

2 个答案:

答案 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();  
}