一、CommonResult<List<Map<String, Object>>>
List中可以有多个Map
也就是可以有多个key-value
"city": "北京市",
"percentage": "50.00",
"total_users": 1
{
"code": 200,
"message": "操作成功",
"data": [
{
"city": "北京市",
"percentage": "50.00",
"total_users": 1
},
{
"city": "沈阳市",
"percentage": "50.00",
"total_users": 1
}
]
}
二、 parameterType
和 resultType
<!-- 获取指定日期范围内的活跃会员数 -->
<select id="getCustomDateRangeActivity" parameterType="java.util.Map" resultType="java.util.Map">
SELECT date, COUNT(DISTINCT uid) AS active_members
FROM eb_user_visit_record
WHERE visit_type = 1
AND date BETWEEN #{startDate} AND #{endDate}
GROUP BY date
</select>
List<Map<String, Object>> getCustomDateRangeActivity(Map<String, Object> params);
@Override
public List<Map<String, Object>> getCustomDateRangeActivity(String startDate, String endDate) {
Map<String, Object> params = new HashMap<>();
params.put("startDate", startDate);
params.put("endDate", endDate);
return statisticsMembershipDao.getCustomDateRangeActivity(params);
}
在MyBatis中,parameterType
和 resultType
是两个XML映射文件中常用的属性,用于指定SQL语句中的参数类型和结果类型。
-
parameterType:该属性用于指定SQL语句中的参数类型,即传递给SQL语句的参数的数据类型。在你提供的代码示例中,
parameterType="java.util.Map"
意味着这个SQL语句接受一个java.util.Map
类型的参数作为输入。在SQL语句中,你可以使用该参数的键来引用对应的值,例如#{startDate}
和#{endDate}
(存的时候名字要一样)会从传入的Map中获取对应的值。 -
resultType:该属性用于指定SQL语句的结果类型,即查询返回的数据的类型。在你的代码示例中,
resultType="java.util.Map"
表示每个结果行都会映射为一个java.util.Map
类型的对象。每个Map对象会包含查询中SELECT
语句中的列名和对应的值。