gpt4 book ai didi

java - 使用 Spring MVC 修改数据库对象列表的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-29 11:33:22 24 4
gpt4 key购买 nike

问题

使用 Spring MVC 模型并且没有任何 ORM 解决方案,我该如何处理大量数据库对象而不增加数据库查询?

<小时/>

研究方向

轨道 1

  • 第 1 步:使用 DAO SELECT 对象,并使用 RowMapper 将它们放入(大)List 中。
  • 第 2 步:在 Java 的关联服务中处理我的对象。
  • 第 3 步:在(n 个大)List 上循环以在数据库中执行简单的UPDATE

查询n个对象:1 + n

轨道 2

在 DAO 中编写一个 SQL 查询,直接更新所有相应的对象,而不提取它们。

n 个对象的查询:1

想法

由于轨道 2 看起来效率更高,它似乎也直接违背了 Spring MVC 模型,因为我的服务将趋于空虚,而我的 DAO 将趋于扩展。

也许有一种通用方法可以对数据库中对象的 Java List 进行 UPDATE 操作,而无需增加查询?

<小时/>

简单案例

鉴于此表:

+----+---------+------+
| MY_OBJECT |
+----+---------+------+
| ID | BOOLEAN | DATE |
+----+---------+------+
| 0 | 0 | NULL |
| 1 | 1 | NULL |
| 2 | 0 | NULL |
| 3 | 1 | NULL |
| 4 | 1 | NULL |
+----+---------+------+

我有一个 MyObjectDao 和一个 MyObjectService

我想将 boolean 值设置为 true 的所有对象的 DATESYSDATE()

它应该是带有查询的完整 DAO,还是 DAO 检索对象、服务编辑它们,然后 DAO 更新它们?

最佳答案

这通常由 ORM 层处理。

如果您正在使用 Hibernate(其他 ORM 可用),那么我会委托(delegate)给您。

如果你有自己的自制 ORM 层,你可以做任何你想做的事情,但作为你的论据的分量,我会说:

  1. 服务应该只知道它想要的分页。
  2. 其实现方式应位于服务下方。

关于java - 使用 Spring MVC 修改数据库对象列表的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37023655/

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