【发布时间】:2021-03-20 19:14:36
【问题描述】:
我是 MyBatis 的新手。据我所知,在从数据库中检索数据时,每一列都映射到一个属性值。那么是否可以使用 MyBatis 使用聚合函数。我们会将结果映射到什么属性?我到处搜索过,但是找不到关于 MyBatis 使用聚合函数的任何细节。如果有人可以帮忙,请。
【问题讨论】:
-
是的,当然可以。正如您所说的“每一列都映射到一个属性”。但是,这指的是结果集中的一列,而不是表。结果集列可能已经是聚合列。
-
@TheImpaler 好的。假设我们的数据库表中有名为 email 的列,称为讲师。然后我想按如下方式执行 SQL 查询 ///SELECT email, COUNT(*) AS counts FROM coach GROUP BY email;/// 所以在我们的 ResultSet 中,我们将有 2 列,一个称为电子邮件,另一个计数。所以现在的问题是我们如何映射这两列。我的 Instructor Pojo 课程中没有 count 属性。
-
如果您不想创建另一个 POJO,您始终可以将结果检索为
java.util.Map<String, Object>的列表,即List<Map<String, Object>>。 -
@TheImpaler 感谢您的回复。我试过了。但是当我尝试在返回的 List 中打印 Map 中的键/值时,我得到了 NullPointerException。