MybatisPlus定义统一返回结果对象(json)

统一返回数据格式

项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。
一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容

例如,我们的系统要求返回的基本数据格式如下:

列表:
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {
    "items": [
      {
        "id": "1",
    "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}
分页:
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {
    "total": 17,
    "rows": [
      {
        "id": "1",
        "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}
没有返回数据:
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {}
}

因此,我们定义统一结果

{
  "success": 布尔, //响应是否成功
  "code": 数字, //响应码
  "message": 字符串, //返回消息
  "data": HashMap //返回数据,放在键值对中
}

创建统一结果返回类

  1. 创建接口定义返回码
public interface ResultCode {
    public static Integer SUCCESS = 20000;
    public static Integer ERROR = 20001;
}
  1. 创建结果类
@Data
public class R {
    @ApiModelProperty(value = "是否成功")
    private Boolean success;
    @ApiModelProperty(value = "返回码")
    private Integer code;
    @ApiModelProperty(value = "返回消息")
    private String message;
    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();
    private R(){}
    public static R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }
    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }
    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }
    public R message(String message){
        this.setMessage(message);
        return this;
    }
    public R code(Integer code){
        this.setCode(code);
        return this;
    }
    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }
    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}
  1. 修改Controller中的返回结果
@ApiOperation(value = "所有讲师列表")
@GetMapping
public R list(){
    List<Teacher> list = teacherService.list(null);
    return R.ok().data("items", list);
}

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: MyBatis-Plus是一个很强大的ORM(对象关系映射)框架,它提供了许多便捷的方法来进行数据库操作。要返回指定对象,我们可以按照以下步骤进行。 首先,我们需要定义一个实体类,该实体类与我们要查询的表对应。在实体类中,我们可以使用注解来映射实体属性和数据库字段。 接下来,在我们的DAO(数据访问对象)接口中,我们可以继承MyBatis-Plus提供的BaseMapper接口,并通过泛型指定返回对象类型。例如: ```java public interface UserMapper extends BaseMapper<User> { // ... } ``` 然后,我们可以在Service层中调用DAO接口的方法来进行数据库操作。例如,要返回指定对象,我们可以使用selectById方法,并传入要查询的对象的ID作为参数。示例如下: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.selectById(id); } } ``` 最后,我们可以在Controller中调用Service层的方法来处理请求,并将返回对象作为响应返回给客户端。示例如下: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } } ``` 通过以上步骤,我们就可以使用MyBatis-Plus返回指定对象了。当客户端发送请求时,接收到的响应将会是数据库中对应ID的对象。 ### 回答2: MyBatis Plus是一种基于MyBatis的增强工具,它扩展了MyBatis的功能,提供了更加简洁方便的操作方式。在使用MyBatis Plus时,如果我们想要返回指定对象,可以通过实现自定义的查询方法来实现。 首先,我们需要在对应的Mapper接口中定义一个返回指定对象的方法。这个方法可以使用MyBatis Plus提供的注解@Select来标记。在@Select注解中,我们可以写入自定义的SQL语句,以及使用MyBatis的ResultMap来映射查询结果到指定的对象。 接下来,我们可以在Service层调用Mapper接口中定义的方法,并传入查询所需的参数。通过调用MyBatis Plus提供的方法,我们可以方便地实现对数据库的查询操作。 最后,在Controller层,我们可以将查询到的指定对象作为返回结果,将其封装成JSON格式,并通过ResponseEntity返回给前端。 总之,要利用MyBatis Plus返回指定对象,我们可以通过在Mapper接口中定义自定义的查询方法,编写对应的SQL语句,并在Controller层进行封装和返回。这种方式能够方便地实现指定对象的查询操作。 ### 回答3: MyBatis Plus 是基于 MyBatis 的增强工具,在使用 MyBatis 进行数据访问时,可以更加方便地操作数据库。在 MyBatis Plus 中,可以通过返回指定对象来获取数据库的查询结果。 首先,需要在代码中引入 MyBatis Plus 的相关依赖,然后配置 MyBatis Plus 的相关配置信息,如数据库连接信息、实体类与数据库表的映射关系等。 在进行查询操作时,可以使用 MyBatis Plus 提供的方法来返回指定对象。例如,可以使用 selectById() 方法根据主键查询指定对象,使用 selectOne() 方法根据条件查询单个对象,使用 selectList() 方法查询多个对象列表等。 在返回指定对象时,可以根据需要设置查询条件、排序条件和分页信息等。可以通过 QueryWrapper 对象设置查询条件,通过 OrderByWrapper 对象设置排序条件,通过 Page 对象设置分页信息。 同时,还可以通过自定义的 SQL 语句来返回指定对象。可以使用 @Select 注解,通过编写 SQL 语句来查询指定对象。在 SQL 语句中,可以使用 MyBatis Plus 提供的条件构造器来设置查询条件,并通过 #{xxx} 来设置参数值。 总之,MyBatis Plus 提供了丰富的方法和功能,可以方便地返回指定对象。通过选择合适的方法和配置相应的条件,可以灵活地进行数据库的查询操作。希望以上回答对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JF Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值