springboot如何给前端接口

在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

 -------------------------------------

尊敬的开发者,您好!我是一名初入职场的小小程序员,从事软件开发工作,定期发一些文章来记录自己的学习过程,并分享问题的解决方法。

如果样例代码和文章描述有哪些问题,或者有相关领域想一起讨论,欢迎私信交流。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值