我有一個具有公共getter和setter的id,firstName,lastName屬性的bean類以及一個updateEmployee方法。如何在JSF中編輯數據庫表
我使用以下jsf頁面來獲取數據庫表值。
當我點擊更新按鈕成功頁面顯示,但數據庫中的值不變。任何人都可以告訴我爲什麼vales沒有在數據庫中進行更改的原因嗎?
在此先感謝。
JSF頁面:
<h:dataTable value="#{tableBean.employeeList}" var="employee" border="1">
<h:column>
<f:facet name="header">First name</f:facet>
<h:inputText value="#{employee.firstName}" />
</h:column>
<h:column>
<f:facet name="header">Last name</f:facet>
<h:inputText value="#{employee.lastName}" />
</h:column>
</h:dataTable>
<h:commandButton value = "update" action="#{employee.updateEmployee}"/>
Employee.java:
public String updateEmployee(){
String query = "update employee set firstName = ?,lastName = ? where id = 1";
pstmt = conn.prepareStatement(query);
pstmt.setString(2,this.firstName);
pstmt.setString(3,this.lastName);
pstmt.executeUpdate(); // execute update statement
conn.commit();
committed = true;
return "success.xhtml";
}catch (Exception e) {
e.printStackTrace();
return null;
} finally {
try{
if (!committed) conn.rollback();
pstmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
你捕捉/ finally塊長相很奇怪。我希望這不是生產代碼。使用你的web應用程序知道'System.exit(1)'發生了什麼會很有趣......服務器會退出嗎? ;-) .....剛剛測試:是的,服務器停機。 – 2011-05-11 10:42:32
這是一個DB/JDBC問題。請從數據訪問邏輯中解耦JSF邏輯。使用'main()'方法創建一個獨立的Java程序,您可以在其中執行純JDBC任務,並將其作爲問題代碼片段提供。 – BalusC 2011-05-11 12:23:39