HTML+SpringMVC的前后端分离项目
一、目的将从数据库查出来的数据进行封装
eg:将数据:groupId、groupName、userId、userName、age 封装为如下格式
"success": true,
"message": "",
"data": [
{
"groupId": "1001",
"groupName": "小猪佩奇",
"userList": [
{
"userId": "2022001",
"userName": "张三",
"age": "20"
},
{
"userId": "2022002",
"userName": "李四",
"age": "24"
}
]
},
{
"groupId": "1002",
"groupName": "海底小纵队",
"userList": [
{
"userId": "2022001",
"userName": "张三",
"age": "20"
},
{
"userId": "2022003",
"userName": "王五",
"age": "25"
}
]
}
]
二、具体操作
1、在mapper层用sql查出所需字段(其中resultMap为封装时的id)
<select id="getUserInfo" parameterType="java.lang.String" resultMap="userInfo">
SELECT
a.group_id groupId,
a.group_name groupName,
b.user_id userId,
b.user_name userName,
b.age
FROM
group a
LEFT JOIN user b
WHERE userId = #{userId}
</select>
2、对查出来的数据进行封装(type:实体类:groupId、groupName和userList)
<resultMap id="userInfo" type="com.zcc.pojo.userDTO">
<result column="groupId" jdbcType="VARCHAR" property="userId"/>
<result column="groupName" jdbcType="VARCHAR" property="userName"/>
<collection property="userList" ofType="java.util.Map">
<result column="userId" property="userId" jdbcType="VARCHAR"/>
<result column="userName" property="userName" jdbcType="VARCHAR"/>
<result column="age" property="age" jdbcType="INTEGER"/>
</collection>
</resultMap>
3、在pojo创建实体类userDTO
package com.zcc.pojo.userDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class userDTO {
private String groupId;
private String groupName;
private List<Map<String,Object>> userList;
}