0

我有一个应用程序可以显示在数据库中输入的一些数据,这应该允许用户删除或编辑此信息,到目前为止我已经设法将其删除,但我想知道,编辑数据的最佳方法是什么,如果可能的话,我想要的是单击已填充数据的页面上的编辑按钮,这会将用户带到一个网页,该网页仅具有预先填充文本框的选定记录,然后允许用户编辑这些,如何我会这样做吗?

这就是我从数据库中删除一行的方式

                <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();
                }
            }

谢谢

编辑

我已经弄清楚如何更新数据,我现在的问题很简单,我如何从一行中获取数据并使用所选数据的输入框填充新页面或者更好的是编辑表格中的数据, 这可能吗

4

2 回答 2

1

而不是将用户带到第二页来编辑数据,您可以使用 primfaces DataTable - Row Editing 看到这个

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

于 2013-10-21T10:35:33.323 回答
0

仅使用 editdata 方法发送用户对象

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

然后你可以使用准备好的更新语句,如下所示

String sql = "UPDATE user1 set name = '"+name+"', email = '"+ email +"', address = '"+address+"' WHERE userId=" + userID;

我会建议尝试休眠。

于 2013-10-21T05:01:09.967 回答