7.Spring Boot整合MyBatis实现分页带条件查询

飞一样的编程
飞一样的编程
擅长邻域:Java,MySQL,Linux,nginx,springboot,mongodb,微信小程序,vue

分类: springboot vue 专栏: 【带小白做项目】SpringBoot+Vue后台管理系统 标签: springboot整合mybatis

2024-12-01 16:57:44 29浏览

springboot整合mybatis

准备工作

1.加依赖

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.16</version>
    </dependency> 
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

其中mybatis-spring-boot-starter是重点,是MyBatis官方提供的整合包。

2.用 mybatisx 插件生成一下实体层和 dao 层

3.application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql:///bookstore?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456

其中type表示使用Druid连接池数据源,如果不配置,则使用默认的连接池Hikari

推荐改成 application.yml

server:
  port: 9999
spring:
  datasource:
    url: jdbc:mysql:///beyond_platform_db?serverTimezone=Asia/Shanghai&characterEncoding=utf8
    username: root
    password: 123456
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.jf3q.demo.domain
logging:
  level:
    com:
      jf3q:
        demo:
          mapper: debug

4.dao 层注入 ioc

MyBatis项目的所有数据访问层接口都要添加@Mapper注解,也可以都不添加,但要在Spring Boot入口类中添加@MapperScan("包名")注解,这样会自动扫描所有该包下的接口。

动态查询

if 标签 where 标签 ,写个条件查询.就拿贯穿案例讲就行

我们分页带条件查询一起讲得了(分页并且带条件查询并且排序)

分页查询

1.导入依赖

<!--pagehelper分页插件-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper-spring-boot-starter</artifactId>
      <version>2.0.0</version>
    </dependency>

2.配置分页属性

pagehelper:
  helper-dialect: mysql  #指明当前查询的是MySQL数据库
  reasonable: true  #启用合理化,当pageNum小于1时查询第1页,当pageNum大于页数时查询最后一页
  support-methods-arguments: true #是否自动分页,依据的是入参,如果参数中有pageNum,pageSize分页参数,则会自动分页
  params: count=countSql #如果POJO或者Map中发现了countSql属性,就作为count参数使用

这个不写也行

3.后端分页核心代码

//分页带条件查询
    @PostMapping("/page")
    public ResultVo page(@RequestBody AppInfo appInfo,@RequestParam(defaultValue = "1") Integer pageNum){

        //数据 list  total  pages
       PageInfo pageInfo= appInfoService.getPage(appInfo,pageNum);

       return ResultVo.success("",pageInfo);


    }

@Service
public class AppInfoService {

    @Autowired
    AppInfoMapper appInfoMapper;
    public PageInfo getPage(AppInfo appInfo, Integer pageNum) {

        PageHelper.startPage(pageNum,5,"id desc");

        List<AppInfo> list=appInfoMapper.selectBy(appInfo);

        return new PageInfo(list);
    }
}

动态更新

这个其实 mybatisx 插件已经生成好了,我们能读懂会改就行。贯穿案例实现修改功能。

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695