求助,mybatisplus分页查询时records显示为null,但控制台可以打印查询的结果

在使用MybatisPlus进行分页查询时遇到records返回为null的问题,通过检查发现分页配置和查询方法可能存在问题。在EditorController中,调整分页查询方法,使用IPage接口和QueryWrapper,并在MybatisPlusConfig配置类中设置分页插件。前端通过接口获取数据并展示,但遇到records为空的情况,需要排查后台代码和数据库连接是否正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

controller里分页查询

@CrossOrigin

@RestController

@RequestMapping("/editor")

public class EditorController {

// @Autowired

// private EditorMapper editorMapper;

@Autowired

private EditorService editorService;

private Object log;

@PostMapping

public boolean save(@RequestBody Editor editor){

//新增或者更新

return editorService.saveEditor(editor);

}

//查询所有数据

@GetMapping

public List<Editor> findAll(){

return editorService.list();

}

@DeleteMapping("/{e_id}")

public boolean delete(@PathVariable Integer e_id){

return editorService.removeById(e_id);

}

//分页查询

//接口路径,/editor/page

//limit第一个参数 = (pageNum -1)*pageSize

//PageSize

// @GetMapping("/page")

// public Map<String,Object> findPage(@RequestParam Integer pageNum,@RequestParam Integer pageSize,@RequestParam String e_name){

// pageNum = (pageNum - 1) * pageSize;

// e_name = "%" + e_name +"%";

// List<Editor> data = editorMapper.selectPage(pageNum,pageSize,e_name);

// Integer total = editorMapper.selectTotal();

// Map<String,Object> res = new HashMap<>();

// res.put("data",data);

// res.put("total",total);

// return res;

//

// }

@GetMapping("/page")

public IPage<Editor> findPage(@RequestParam Integer pageNum,

@RequestParam Integer pageSize,

@RequestParam String e_name){

IPage<Editor> page=new Page<>(pageNum,pageSize);

QueryWrapper<Editor> queryWrapper= new QueryWrapper<>();

if(!"".equals(e_name)){

queryWrapper.like("e_name",e_name);

}

return editorService.page(page,queryWrapper);

}

mybatisplusconfig

@Configuration

@MapperScan("ckx_novel.ckx_novel.mapper")

public class MybatisPlusConfig {

/**

* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)

*/

@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor() {

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();

paginationInnerInterceptor.setDbType(DbType.MYSQL);

paginationInnerInterceptor.setOverflow(true);

interceptor.addInnerInterceptor(paginationInnerInterceptor);

return interceptor;

}

}

}

实体类Editor

@Data

@TableName(value = "editor")

public class Editor {

@TableId(value = "e_id")

private Integer e_id;

private String e_name;

@JsonIgnore

private String password;

}

前端代码

<template>

<el-container style="min-height:100vh;">

<el-aside width="sideWidth + 'px'" style="background-color: rgb(238, 241, 246); height:100%">

<el-menu :default-openeds="['1', '3']" style="min-height: 100%;overflow-x: hidden"

background-color="rgb(48,65,86)"

text-color="#fff"

active-text-color="#ffd04b"

:collapse-transition="false"

:collapse="isCollapse">

<div style="height: 60px;line-height: 60px;text-align: center">

<img src="../assets/logo.png" alt="" style="width: 50px;position: relative;top:5px;margin-right: 6px">

<b style="color: white">编辑管理界面</b>

</div>

<el-submenu index="1">

<template slot="title"><i class="el-icon-message"></i><span>阅读管理</span></template>

<el-menu-item-group>

<el-menu-item index="1-1">加入书架</el-menu-item>

<el-menu-item index="1-2">继续阅读</el-menu-item>

</el-menu-item-group>

</el-submenu>

<el-submenu index="2">

<template slot="title"><i class="el-icon-menu"></i>

<span>论坛管理</span></template>

<el-menu-item-group>

<el-menu-item index="2-1">删除帖子</el-menu-item>

<el-menu-item index="2-2">屏蔽帖子</el-menu-item>

</el-menu-item-group>

</el-submenu>

<el-submenu index="3">

<template slot="title"><i class="el-icon-setting"></i>

<span>写作管理</span></template>

<el-menu-item index="3-3">添加书籍</el-menu-item>

<el-menu-item index="3-4-1">删除书籍</el-menu-item>

</el-submenu>

</el-menu>

</el-aside>

<el-container>

<el-header style=" font-size: 12px;border-bottom: 1px solid #cccccc;line-height: 60px;display: flex">

<div style="flex: 1;font-size: 18px">

<span :class="collapseBtnClass" style="cursor: pointer" @click="collapse"></span>

</div>

<el-dropdown style="width:70px;cursor: pointer">

<span >江楠</span>

<i class="el-icon-setting" style="margin-right: 15px"></i>

<el-dropdown-menu slot="dropdown">

<el-dropdown-item>个人信息</el-dropdown-item>

<el-dropdown-item>退出</el-dropdown-item>

</el-dropdown-menu>

</el-dropdown>

</el-header>

<el-main>

<div style="padding: 5px 0">

<el-input style="width: 150px" placeholder="请输入搜索名称" suffix-icon="el-icon-search" v-model="e_name"></el-input>

<el-button class="ml-5" type="primary" @click="load">搜索</el-button>

<el-button type="warning" @click="reset">重置</el-button>

</div>

<div style="padding: 10px 0">

<el-button type="primary">新增<i class="el-icon-circle-plus-outline"></i> </el-button>

<el-button type="danger">批量删除<i class="el-icon-remove-outline"></i> </el-button>

<el-button type="insert">导入<i class="el-icon-bottom"></i> </el-button>

<el-button type="upload">导出<i class="el-icon-top"></i> </el-button>

</div>

<el-table :data="tableData" border stripe :header-cell-class-name="headerBg">

<el-table-column prop="e_id" label="ID" width="80" ></el-table-column>

<el-table-column prop="e_name" label="编辑名" width="600" ></el-table-column>

<el-table-column label="操作" width="200" align="center">

<!-- eslint-disable-next-line -->

<template slot-scope="scope" >

<el-button type="success" >编辑<i class="el-icon-edit"></i> </el-button>

<el-button type="danger">删除<i class="el-icon-remove-outline"></i> </el-button>

</template>

</el-table-column>

</el-table>

<div style="padding: 10px 0">

<el-pagination

@size-change="handleSizeChange"

@current-change="handleCurrentChange"

:current-page="pageNum"

:page-sizes="[2, 4, 6, 8]"

:page-size="pageSize"

layout="total, sizes, prev, pager, next, jumper"

:total="total">

</el-pagination>

</div>

</el-main>

</el-container>

</el-container>

<!-- <div class="home">-->

<!-- <img alt="Vue logo" src="../assets/logo.png">-->

<!-- <HelloWorld msg="Welcome to Your Vue.js App"/>-->

<!-- </div>-->

</template>

<script>

// @ is an alias to /src

import HelloWorld from '@/components/HelloWorld.vue'

import request from "@/utils/request";

export default {

name: 'HomeView',

data() {

return {

tableData: [],

total:0,

pageNum:1,

pageSize:2,

e_name:"",

msg:"哈哈",

collapseBtnClass:'el-icon-s-fold',

isCollapse:false,

sideWidth:200,

logoTextShow:true,

headerBg:'headerBg'

}

},

created() {

this.load()

},

methods:{

collapse(){ //点击收缩按钮触发

this.isCollapse = !this.isCollapse

if(this.isCollapse){//收缩

this.sideWidth = 64

this.collapseBtnClass = 'el-icon-s-unfold'

this.logoTextShow= false

}else{//展开

this.sideWidth=200

this.collapseBtnClass ='el-icon-s-fold'

this.logoTextShow = true

}

},

load() {

request.get("/editor/page",{

params:{

pageNum:this.pageNum,

pageSize:this.pageSize,

e_name:this.e_name,

}

}).then(res => {

console.log(res)

this.tableData = res.records

this.total = res.total

})

},

reset(){

this.e_name= " "

this.load()

},

handleSizeChange(pageSize){

console.log(pageSize)

this.pageSize=pageSize

this.load()

},

handleCurrentChange(pageNum){

console.log(pageNum)

this.pageNum=pageNum

this.load()

}

},

}

</script>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值