0
嗨,大家好我在JSF中有一個數據表,它顯示我的數據庫表的所有內容,它顯示它很好,我也有一個刪除功能,可以成功地從數據庫中刪除罰款然而,並更新數據表很好,當我嘗試更新的數據庫中,我得到的錯誤無法編輯JSF的數據庫行
java.lang.IllegalArgumentException: Cannot convert [email protected] of type class richard.test.User to long
以下
的是,我一直用它來刪除數據庫中的行時,做工精細代碼:
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();
}
}
}
}
我只是想編輯上面的代碼,所以它會更新重新繩而非將其刪除,所以我編輯它看起來像:
public void editData(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 = "UPDATE user1 set name = '"+name+"', email = '"+ email +"', address = '"+address+"' WHERE userId=" + userID;
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
if (i > 0) {
System.out.println("Row updated successfully");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
和XHMTL是:
<p:dataTable id="dataTable" var="u" value="#{userBean.getUserList()}"
paginator="true" rows="10"
editable="true"
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">
Delete
</f:facet>
<h:commandButton value="Edit" action="#{user.editData(u)}" />
</p:column>
目前當你按下編輯按鈕,它只能與我相同的值更新還沒有設法讓數據表可以和數據庫一起編輯,我已經看到了一些數據表的例子,其中數據表從數據庫獲取它的值,但從來沒有數據庫,所以如果你對此有任何建議,它也會是很好
謝謝
非常感謝你已經固定它抱歉它是一個簡單的錯誤它是一個漫長的一天! – user1924104
@ user1924104注意我的答案更新,包括對您目前的方法的一些建議 –
好的,謝謝你,我會在明天更詳細地研究這些 – user1924104