簡體   English   中英

如何使用jsf編輯數據庫中的某些數據

[英]How to use jsf to edit some data in a database

我有一個顯示在數據庫中輸入的某些數據的應用程序,這應該允許用戶刪除或編輯此信息,到目前為止,我設法將其刪除,但是我想知道,什么是編輯數據的最佳方法,如果可能的話,我想單擊頁面上的一個編輯按鈕,該頁面上已經填充了數據,這會將用戶帶到一個僅具有選擇記錄的頁面,然后再填充文本框,然后允許用戶編輯這些文本。我會這樣做嗎?

這就是我從數據庫中刪除一行的方式

                <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

無需將用戶帶到第二頁來編輯數據,您可以使用primitives DataTable-行編輯看到此內容

http://www.primefaces.org/showcase/ui/datatableRowEditing.jsf

僅使用editdata方法發送用戶對象

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

那么您可以使用帶有更新的准備好的語句,如下所示

字符串sql =“ UPDATE user1 set name ='” + name +“',email ='” + email +“',address ='” + address +“'WHERE userId =” + userID;

我建議嘗試休眠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM