Spring boot整合Mybatis-plus分页插件的使用

Spring boot整合Mybatis-plus分页插件的使用


不久前在工作中使用到了Mybati-plus,而且在给前端返回的数据需要有分页功能。之前没有做过相关的功能实现,于是在网上找了一些资料研究了半天,才把任务完成。特此记录下来,方便以后的学习和每一位看到的朋友的方便。如果你有疑问和建议,也请在文章末尾留言,看到一定回复!

  1. 项目结构:
    controller
    service
    mapper
    config
    pojo
  2. 分页插件的配置
    在config包下新建一个配置类:
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

service层

@Service
public class StudentService {
    @Resource
    private StudentMapper studentMapper;
public Page<Student> selectOneStudent(String studentname, String sex) {
        Map<String, Object> map = new HashMap<>();
        map.put("studentname", studentname);
        map.put("sex", sex);
        Page page = new Page();
        page.setCurrent(1); // 当前页数
        page.setSize(3); // 每页数量
        List<Student> students = studentMapper.selectOneStudent(page, map);
        Page<Student> pa = (Page<Student>) page.setRecords(studentMapper.selectOneStudent(page, map));
        Long sum = pa.getTotal();
        System.out.println("总数量是:" + sum);
        return pa;
    }
}

mapper层

@Mapper
public interface StudentMapper extends BaseMapper<Student> {
    List<Student> selectOneStudent(Page page, Map<String,Object> map);
}

controller层

@RestController
@RequestMapping("/")
public class PageController {
    @Autowired
    private StudentService studentService;
	@RequestMapping("/queryOne")
    public List<Student> findOne(@RequestParam("studentname") String studentname, @RequestParam("sex") String sex) {
        System.out.println("传入的参数是:"+studentname+":性别:"+sex);
        Page<Student> students = studentService.selectOneStudent(studentname,sex);
        List<Student> stu = students.getRecords();
        return stu;
    }
}

pojo层

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("student")
public class Student implements Serializable {
    @TableId
    private String studentno;
    private String studentname;
    private String loginpwd;
    private Character sex;
    private Integer majorid;
    private String phone;
    private String email;
    private Date borndate;
    
    //表示数据库没有该字段,如果不加则会抛出异常信息
    @TableField(exist = false)
    private String address;
}

主要的核心内容是在service层中的代码
Page page = new Page();//创建一个分页对象
page.setCurrent(1); // 当前页数
page.setSize(3); // 每页数量
//调用mapper的实现方式
List students = studentMapper.selectOneStudent(page, map);
Page pa = (Page) page.setRecords(studentMapper.selectOneStudent(page, map));

以下是需要导入的这依赖包:

 <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.0.1</version>
</dependency>

<dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-support</artifactId>
       <version>2.1.9</version>
       <scope>compile</scope>
</dependency>

——————————————————————————————
以上的数据库使用的是MySQL,而在使用Oracle的时候出现一个奇怪的问题:在mapper的方法中在传值的时候需要这样写,

List<Student> selectOneStudent(Page page,@Param("map")  Map<String,Object> map);
就是多加一个@Param("map"),只在Oracle的时候出现该问题,目前MySQL没有遇到,同时在xml文件里面自定义SQL取值的时候,需要以及map.key形式

希望可以帮到各位路过的朋友!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值