目录
配置
查询
创建实体类
创建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
|