0
我遇到的問題使用存儲過程在MySQL 5 +與Play框架1.2.3。 我猜我的方法是不正確的 - 我使用callable語句並將參數傳遞給存儲過程。該過程不應該返回任何輸出變量(只是用於插入)。除了切換到任何ORM選項外,我最好如何解決此設置問題。存儲過程與播放1.2+使用存儲過程的示例
// con is connection to mysql
CallableStatement cs = this.con.prepareCall("{call sp_InsertTest(?,?,?,?,?,?)}");
cs.setString(1, user.value1);
cs.setString(2, user.value2);
cs.setString(3, user.value3);
cs.setString(4, user.value4);
cs.setString(5, user.value5);
cs.setString(6, user.value6);
//all values are strings
當我運行在調用語句使用executeUpdate,它拋出從上述第一線路的錯誤(I去除從日誌行下面從那裏被拋出):
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:220)
at play.Invoker$Invocation.run(Invoker.java:265)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:200)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
任何建議將受到歡迎。
感謝您的回答 - 我試過一樣的 - 我刪除線被指向線從那裏例外是是(在上面的第一行代碼)拋出。我也在研究如何使用存儲過程使用play.DB.execute,並且一旦完成就會更新。 –
我正在使用play.db.execute,我可以從那裏調用存儲過程。 –