我想从使用ebean的java调用保存的sql程序。 我使用此代码:从java调用sql程序
String sql = "call copy_lov_Countries(?)";
CallableSql cs = Ebean.createCallableSql(sql);
cs.registerOut(1, Types.INTEGER);
Ebean.execute(cs);
它到达的过程,但它不运行正确。它从不复制任何数据!
任何想法?
我想从使用ebean的java调用保存的sql程序。 我使用此代码:从java调用sql程序
String sql = "call copy_lov_Countries(?)";
CallableSql cs = Ebean.createCallableSql(sql);
cs.registerOut(1, Types.INTEGER);
Ebean.execute(cs);
它到达的过程,但它不运行正确。它从不复制任何数据!
任何想法?
试试这个:
String sql = "{CALL copy_lov_Countries(:param)";
CallableStatement statement = connection.prepareCall(sql);
statement.registerOutParameter("param", Types.INTEGER);
statement.execute();
connection.commit();
代码工作与Oracle,应与MySQL也行。原理是一样的。
试试这个Integer returnValue = (Integer) cs.getObject(1);
后Ebean.execute(cs);
然后在这里发表它给了什么?
更新 :让follwing代码修改
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();
}
我做到了。但同样的事情没有数据被复制。 – user3687679 2014-12-08 08:32:46
它返回数字13。这是应在表中插入的行数。然而桌子是空的! – user3687679 2014-12-08 09:04:07
您正在使用什么数据库管理系统?甲骨文? – 2014-12-08 07:57:57