gpt4 book ai didi

mysql - 使用 JSF 从 MySQL 中删除行

转载 作者:行者123 更新时间:2023-11-29 23:15:48 25 4
gpt4 key购买 nike

我想从 MySQL 表中删除行,这是我的 admin.xhtml:

<h:form>
<h:dataTable value="#{userController.items}"
var="item" border="0" cellpadding="2"
cellspacing="0" rules="all"
style="border:solid 1px">

<h:column>
<f:facet name="header">
<h:outputText value="#{bundle.ListUserTitle_iduser}"/>
</f:facet>
<h:outputText value="#{item.iduser}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{bundle.ListUserTitle_username}"/>
</f:facet>
<h:outputText value="#{item.username}"/>
</h:column>
<h:column>
<h:commandLink action="#{userController.destroyUser(item.iduser)}"
value="#{bundle.ListUserDestroyLink}"/>
</h:column>
</h:dataTable>
</h:form>

然后在我的 userController 中,我有一个方法 destroyUser

public String destroyUser(int iduser) {

try {
Connection con = ds.getConnection();
String sql = "DELETE FROM projekt2.user WHERE iduser =" + iduser;
PreparedStatement ps = con.prepareStatement(sql);
ps.executeUpdate();

} catch (SQLException ex) {
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex);
}
return "admin";
}

我知道像这样编写 SQL 查询并不好,无论如何,单击销毁链接后不会发生任何事情,除非我单击销毁当前登录的用户,然后将其从表中删除。我无法删除任何其他用户。但既然 #{item.iduser} 获得了正确的值,那么 #{userController.destroyUser(item.iduser)} 也应该获得正确的值,对吧? p>

@编辑

好吧,我想我知道问题是什么了。我的用户表上有另一个带有外键的表(添加的每个广告都有其 userId 作为外键),这就是为什么它阻止我删除至少添加了 1 个广告的用户(管理员没有任何广告)所以我可以删除他)。你能告诉我在哪里进行更改才能使其正常工作,是在数据库中的某个位置还是在我的实体中?我正在使用 MySQL Workbench

最佳答案

我发现,我的用户表上有另一个带有外键的表(添加的每个广告都有其 userId 作为外键),这就是为什么它阻止我删除至少有 1 个广告的用户添加。因此,我必须在 MySQL Workbench 的外键选项中将“删除时”选项设置为“级联”(或者也许您可以设置不同的值)。

感谢 Tiny 的回答,我的评论可能有点误导

关于mysql - 使用 JSF 从 MySQL 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27822363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com