MyBatis查询全流程,使用PageHelper分页查询——教程篇

目录

配置

查询

创建实体类

创建mapper

创建service

创建controller

分页查询

PageHelper分页

添加依赖

配置

 配置参考

使用

 配置时可能出现的错误以及注意事项

出现PageHelper循环依赖

总结


配置

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
#配置数据库连接
spring:
  datasource:
    username: xxxxx
    password: xxxxx
    url: jdbc:mysql://localhost:3306/vueblog?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

查询

创建实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private String sex;
}

创建mapper

@Mapper
public interface MyUserMapper {
    @Select("select * from test_user")
    List<User> getAll();
}

 记得在主启动类上上设置mapper扫描包路径

@SpringBootApplication
@MapperScan("com.lt.success.mapper")
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class,args);
    }
}

创建service

在service扩展,demo就不创建service了

创建controller

    @GetMapping("/getAll")
    public List<User> getAll(){
        return myUserMapper.getAll();
    }

分页查询

在实际生产中,都会用到分页查询。分页又分为逻辑分页物理分页

异同:

  • 物理分页每次都访问数据库,逻辑分页只访问一次数据库,物理分页对数据库造成的负担大。
  • 逻辑分页一次性将数据读取到内存,占用了较大的内容空间,物理分页每次只读取一部分数据,占用内存空间较小。
  • 逻辑分页一次性将数据读取到内存,数据发生改变,数据库的最新状态不能实时反映到操作中,实时性差。物理分页每次需要数据时都访问数据库,能够获取数据库的最新状态,实时性强。
  • 逻辑分页主要用于数据量不大、数据稳定的场合,物理分页主要用于数据量较大、更新频繁的场合。

PageHelper分页

添加依赖

        <!--pagehelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>

配置

pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

 配置参考

来自官网

如何使用分页插件如何使用分页插件https://pagehelper.github.io/docs/howtouse/

pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

使用

    @RequestMapping("/getAll")
    public PageInfo getAll(@RequestParam(required = false,defaultValue = "1")int pageNum ,@RequestParam(required = false,defaultValue = "5")int pageSize){
        //页数和大小,开始分页
        PageHelper.startPage(pageNum,pageSize);
        //从第a个数据开始往后查b个数据
        //PageHelper.offsetPage(a,b);
        //PageInfo可以获取更多的有关信息如总页数,总数……
        PageInfo page = new PageInfo(myUserMapper.getAll());
        return page;
    }

 配置时可能出现的错误以及注意事项

出现PageHelper循环依赖

 原因是依赖冲突,springboot2.6.x版本降级即可

总结

mybatis-plus保姆级别初级使用_运气不好努力来凑-CSDN博客包 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency> <depenhttps://blog.csdn.net/wai_58934/article/details/121733644?spm=1001.2014.3001.5502 MybatisPlus代码自动化生成代码,保存自用_运气不好努力来凑-CSDN博客_mybatisplus自动生成代码自用 public static void main(String[] args) { GlobalConfig config = new GlobalConfig(); config.setActiveRecord(true) .setOutputDir("生成文件的路径,自己写本地的") .setFileOverride(true) .setIdType(I...https://blog.csdn.net/wai_58934/article/details/121877447?spm=1001.2014.3001.5502

JPA结合querydsl使用_运气不好努力来凑-CSDN博客_jpa querydsl 一对多JPA教程https://blog.csdn.net/wai_58934/article/details/122515457?spm=1001.2014.3001.5502

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值