【发布时间】:2016-08-29 15:37:28
【问题描述】:
问题
使用 spring MVC 模型并且没有任何 ORM 解决方案,我应该如何处理大量数据库对象而不增加数据库查询?
研究轨迹
轨道 1
- 第 1 步:
SELECT使用 DAO 的对象并将它们放入(大)List和RowMapper。 - 第 2 步:在 Java 中处理关联服务中的对象。
- 第 3 步:循环 (n-big)
List以在 DB 中执行 n 个简单的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。
对于所有布尔值为true 的对象,我想将DATE 设置为SYSDATE()。
应该是带有查询的完整 DAO,还是应该由 DAO 检索对象,服务编辑它们,然后 DAO 更新它们?
【问题讨论】:
标签: java mysql spring-mvc