2013-07-04 15 views
0

我正在開發一個帶有Play 2.1.0的網絡應用程序並使用Java編程,我需要訪問已保存在數據庫中的數據以修改它們。如何在播放器2和java中在控制器中輸入SQL指令

我試圖創建一個沒有new操作符的新實例,並將其引用到保存在數據庫中的對象中,但即使沒有指針錯誤,它也不會更改屬性的值。我無法弄清楚爲什麼,所以我決定直接輸入SQL查詢。

同樣的事情,它似乎並不具有任何錯誤,但它不會改變任何東西。我想這是來自一個壞鏈接到數據庫:

這裏是我的代碼在application.java

public static Result modifyQuestionnaire(Long id) throws SQLException { 
    Statement stmt = null; 
    Connection con = DB.getConnection(); 

    try { 
     stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     String query = "SELECT * FROM WOQ.questionnaire WHERE id=id"; 
     ResultSet uprs = stmt.executeQuery(query); 
     uprs.updateString("name", "baba"); 
     uprs.updateRow(); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (stmt!=null) { 
      stmt.close(); 
     } 
    } 
return redirect(routes.Application.questionnaire(id)); 
} 

而且我也嘗試直接進入UPDATE查詢,還是一樣..

我到處找,也沒有找到任何解決方案(除了ANORM但似乎與Scala語言工作)

順便說一句,如果有人知道與第二個實例引用相同的對象的解決方案(這似乎是可能的但正如我所說,沒有錯誤,但沒有動作都沒有),這對我來說很好。

+0

您是否考慮使用交付的'Ebean' ORM?它有用於選擇和更新數據庫行的原始查詢方法 – biesior

+0

您好,我使用ebean創建我的表(例如使用Questionnaire.java),但我不知道使用傳遞的Ebean ORM是什麼意思。你開導我了嗎? – user2524693

回答

0

呵呵,你表現爲你試圖創建全新的連接,所以我認爲你不想使用Ebean,但是如果你已經在使用它,你可以使用它的方法任務:

copied)有在Ebean的API一些選項,所以你應該檢查一下,然後選擇一個:

+0

感謝這麼多,它的工作:) – user2524693

+0

標記答案接受然後。 – biesior

+0

並且您是否知道創建具有其他對象列表的屬性的對象的最佳方法,以便使用SQL請求訪問此列表? 由於使用oneToMany,我無法在任何地方看到我的列表,因此我無法對它執行任何sql請求... – user2524693

相關問題