7.Spring Boot整合MyBatis实现分页带条件查询
分类: springboot vue 专栏: 【带小白做项目】SpringBoot+Vue后台管理系统 标签: springboot整合mybatis
2024-12-01 16:57:44 29浏览
准备工作
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)展开评论
展开评论
您可能感兴趣的博客