在maven目录结构下,为前端增加一个接口。
从数据库中提取某表格的两列数据
以下为代码
1.使用XML进行SQL实现
路径:src/main/resources/mapper/GroupMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chinaunicom.nj.sokoban.group.mapper.GroupMapper">
<resultMap id="BaseResultMap" type="com.chinaunicom.nj.sokoban.team.entity.GroupInfo">
<id column="id" jdbcType="VARCHAR" property="id"/>
<result column="group_name" jdbcType="VARCHAR" property="groupName"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id ,group_name, `status`, create_time, update_time
</sql>
<select id="findAll" resultType="com.chinaunicom.nj.sokoban.group.entity.GroupInfo">
SELECT
<include refid="Base_Column_List"/>
FROM group_info
</select>
</mapper>
2.entity层
路径:src/main/java/com/chinaunicom/nj/sokoban/team/entity/GroupInfo.java
@Getter
@Setter
@TableName("group_info")
@ApiModel(value = "GroupInfo对象", description = "")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GroupInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private String id;
@TableField("group_name")
private String groupName;
@ApiModelProperty("0-异常 1-正常")
@TableField("status")
private Integer status;
@TableField("create_time")
private LocalDateTime createTime;
@TableField("update_time")
private LocalDateTime updateTime;
}
3.mapper持久层接口
路径:src/main/java/com/chinaunicom/nj/sokoban/group/mapper/GroupMapper.java
public interface GroupMapper {
List<GroupInfo> findAll();//查询所有的小组列表
}
其中,GroupInfo对应entity层的类,findAll是XML文件中SQL语句的id
4.service层中,列出我们想要的两列数据
路径:src/main/java/com/chinaunicom/nj/sokoban/group/service/response/GroupBasicInfo.java
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GroupBasicInfo {
private String id;
private String groupName;
}
5.service层接口
路径:src/main/java/com/chinaunicom/nj/sokoban/group/service/IGroupService.java
public interface IGroupService {
List<GroupBasicInfo> getGroups();
}
6.service层实现类
路径:src/main/java/com/chinaunicom/nj/sokoban/group/service/GroupService.java
@Service
public class GroupService implements IGroupService {
@Autowired
private GroupMapper mapper;
@Override
public List<GroupBasicInfo> getGroups() {
List<GroupInfo> groupInfoList = mapper.findAll();
List<GroupBasicInfo> groupBasicInfoList= new ArrayList<>();
for(GroupInfo groupInfo:groupInfoList){
GroupBasicInfo groupBasicInfo=new GroupBasicInfo();
groupBasicInfo.setGroupName(groupInfo.getGroupName());
groupBasicInfo.setId(groupInfo.getId());
groupBasicInfoList.add(groupBasicInfo);
}
return groupBasicInfoList;
}
}
在该方法中,我们把原有的groupInfoList, 通过groupBasicInfo自带的set方法,将想要暴露给前端的两列数据存入groupBasicInfoList中,并返回groupBasicInfoList
7.controller层
路径:src/main/java/com/chinaunicom/nj/sokoban/group/controller/GroupController.java
@RestController
@RequestMapping("/groupList")
public class GroupController {
@Autowired
private GroupService groupService;
@GetMapping("/getGroups")
@ResponseBody
public RestResponse<List<GroupBasicInfo>> getGroups() {
List<GroupBasicInfo> list = groupService.getGroups();
return RestResponse.success(list);
}
}
前端调用时,路由即为 .../groupList/getGroups
更详细的springboot案例,请跳转以下链接
https://blog.csdn.net/weixin_43955659/article/details/120228944
-------------------------------------
尊敬的开发者,您好!我是一名初入职场的小小程序员,从事软件开发工作,定期发一些文章来记录自己的学习过程,并分享问题的解决方法。
如果样例代码和文章描述有哪些问题,或者有相关领域想一起讨论,欢迎私信交流。