2013-10-20 67 views
0

編輯一些數據我有一個顯示在DATABSE輸入一些數據,這應該允許用戶刪除或編輯該信息,到目前爲止,我已經成功地得到它刪除一個應用程序,但是我想知道,編輯數據的最佳方法是什麼,如果可能的話,我想要的是點擊已經填充數據的頁面上的編輯按鈕,並且將用戶帶到僅具有所選內容的網頁記錄預先填充的文本框,然後允許用戶編輯這些,我將如何做到這一點?如何使用JSF在數據庫

這是怎麼了我從數據庫

   <p:dataTable id="dataTable" var="u" value="#{userBean.getUserList()}" 
          paginator="true" rows="10" 
          paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
          rowsPerPageTemplate="5,10,15"> 
        <p:column> 
         <f:facet name="header"> 
          User ID 
         </f:facet> 
         #{u.userID} 
        </p:column> 

        <p:column> 
         <f:facet name="header"> 
          Name 
         </f:facet> 
         #{u.name} 
        </p:column> 

        <p:column> 
         <f:facet name="header"> 
          Email 
         </f:facet> 
         #{u.email} 
        </p:column> 
        <p:column> 
         <f:facet name="header"> 
          Address 
         </f:facet> 
         #{u.address} 
        </p:column> 

        <p:column> 
         <f:facet name="header"> 
          Created Date 
         </f:facet> 
         #{u.created_date} 
        </p:column> 

        <p:column> 
         <f:facet name="header"> 
          Delete 
         </f:facet> 
         <h:commandButton value="Delete" action="#{user.delete(u.userID)}" /> 
        </p:column> 

        <p:column> 
         <f:facet name="header"> 
          Edit 
         </f:facet> 
         <h:commandButton value="Edit" action="{user.delete(u.userID)}" /> 
        </p:column> 
       </p:dataTable> 

刪除行,這是支持bean讓我刪除

public void delete(long userID) { 
     PreparedStatement ps = null; 
     Connection con = null; 
     if (userID != 0) { 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); 
       String sql = "DELETE FROM user1 WHERE userId=" + userID; 
       ps = con.prepareStatement(sql); 
       int i = ps.executeUpdate(); 
       if (i > 0) { 
        System.out.println("Row deleted successfully"); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } finally { 
       try { 
        con.close(); 
        ps.close(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 

感謝

編輯

我已經想出瞭如何更新數據,現在我的問題是簡單的,我如何從一行中獲取數據並使用所選數據填充輸入框的新頁面,或者甚至更好的是現場編輯數據表,這是possilbe

回答

0

發送用戶對象只能與editdata方法

<h:commandButton value="Edit" action="{user.editData(u)}" /> 

那麼你可以使用準備好的語句與更新像圖所示

字符串SQL = 「UPDATE USER1設置的名字=「」 + name +「',email ='」+ email +「',address ='」+ address +「'where userId =」+ userID;

我會建議嘗試休眠。的