若依框架中返回自定义实体类分页数据和总记录数的实现方法
在使用若依(RuoYi)框架时,通常需要返回一个包含数据和总记录数的分页结果。若依框架中,分页结果通常封装在 AjaxResult
或 TableDataInfo
类中。以下是一个示例,展示如何在自定义实体类的情况下返回分页数据和总记录数。
1. 定义实体类
首先,定义你的实体类 SwitchRecognitionLogResponse
:
public class SwitchRecognitionLogResponse {private Long id;private String name;private String status;private Date createTime;// Getters and Setterspublic Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}
}
2. 创建分页方法
在你的服务层或控制器中,创建一个方法来处理分页逻辑并返回结果。假设你已经有一个方法 getDataTable
来获取分页数据。
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.Date;
import java.util.List;@RestController
@RequestMapping("/api/recognition")
public class RecognitionController extends BaseController {@GetMapping("/log")public R<TableDataInfo> getRecognitionLogs() {// 模拟数据List<SwitchRecognitionLogResponse> recognitionLogResponses = new ArrayList<>();for (int i = 0; i < 10; i++) {SwitchRecognitionLogResponse log = new SwitchRecognitionLogResponse();log.setId((long) i);log.setName("Recognition Log " + i);log.setStatus("Active");log.setCreateTime(new Date());recognitionLogResponses.add(log);}// 模拟总记录数int total = 100;// 创建 TableDataInfo 对象TableDataInfo tableDataInfo = new TableDataInfo();tableDataInfo.setCode(200);tableDataInfo.setMsg("success");tableDataInfo.setRows(recognitionLogResponses);tableDataInfo.setTotal(total);return R.ok(tableDataInfo);}
}
3. 返回分页数据
在上述代码中,我们创建了一个 TableDataInfo
对象,其中包含以下内容:
code
:状态码,通常为200表示成功。msg
:返回信息,通常为 “success”。rows
:分页数据,即recognitionLogResponses
。total
:总记录数。
最后,我们使用 R.ok
方法将 TableDataInfo
封装为 AjaxResult
对象并返回。
4. 测试接口
启动你的应用后,可以通过访问 /api/recognition/log
接口来测试返回的分页数据。返回的 JSON 数据应该类似于以下格式:
{"code": 200,"msg": "success","data": {"code": 200,"msg": "success","rows": [{"id": 0,"name": "Recognition Log 0","status": "Active","createTime": "2025-05-26T14:30:00"},{"id": 1,"name": "Recognition Log 1","status": "Active","createTime": "2025-05-26T14:30:00"},...],"total": 100}
}
总结
通过上述步骤,你可以轻松地在若依框架中返回分页数据和总记录数。希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。