java - 根据用户输入在表中添加和删除多行

标签 java mysql sql jpa

所以我有一个表,其中有一个自动增量主键和两个外键,每个外键对应一个不同的表主键。所以基本上这个表是用来存储表一和表2之间的关系,如下所示。

    this_table_id   table_one_id    table_two_id
    1                    1             2
    2                    1             1
    3                    2             1

用户可以同时更新按 table_one_id 分组的所有条目,因此所有 table_one_id=1 的条目都会显示给用户,并且他可以删除或添加 table_one_id=1 与表 2 条目的关系。

目前我实现的解决方案是,无论用户更新或不更新什么。当他提交时,我删除该 table_one_id 的所有先前条目并再次插入值。因此,如果他更新了它们,它们就会发生变化,如果不是的话,这只是浪费的查询。平均情况下,大多数情况下有 4 个条目,因此不是很密集。

我想应该有一个更优雅的解决方案,然后删除所有旧值,我唯一能想到的就是检查更改,然后根据每个条目的内容进行更新或删除或插入用户这样做了,但这感觉很乏味。

ps:使用jsf前端和jpa后端

进一步说明

我正在寻找的是当用户在单列中显示具有相同值的多行(如 table_one_id=1)时的理论(因此他将显示上表中的第 1 行和第 2 行)并且他删除了几行,添加新行并按提交

以编程方式处理它的最佳方法是什么。我应该检查他的每个新条目,看看它是否已经在表中,如果不在表中,则添加它们,如果它们在表中,则保留它们,如果用户删除了某些内容,则删除它们,或者是否有更好的方法。删除所有旧条目并插入新条目是一个合理的解决方案

最佳答案

尝试使用触发器。每当更新事件运行时,触发器都可以帮助您在该事件之前或之后触发查询,而不必一次又一次地进行繁琐的更新工作。您可以引用>> http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html了解语法和用法。

关于java - 根据用户输入在表中添加和删除多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28038957/

相关文章:

mysql - 如何保存 ñ

Mysql 拆分行到 INSERT

sql - 选择具有最相似属性集的行

Java 等待线程完成

java - JFrame 中的移动问题

java - JUnit中如何选择特定的数据提供者?

php - 如何将 css 类添加到 mysql 数据库的最后 10 个条目?

mysql - 在多行上使用多个 IN 子句进行查询

java - 使用 SQL 查询进行 Spring Boot 组件测试

java - 将 Netbeans 项目逻辑 View 替换为大纲 View