在这里要首先引入一个 mybatis-plus日志控制台输出
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
分页功能的实现
首先需要在Mybatis-plus-config里面写一个分页插件
@Configuration
public class Mybatis_Plus_Config {
/**
* 分页插件
*/
//旧版
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
//新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//1 创建MybatisPlusInterceptor拦截器对象
MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();
//2 添加分页拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
旧版的分页插件必须要特定的版本的依赖3.1.0,我这里使用的是
<!-- mybatis-plus核心库-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
controller控制层实现
/**
* 分页查询的实现
*/
@Controller
@RequestMapping("/pagination")
public class MoviePageController {
@Autowired
private MovieDaoService movieDaoService;
/**
* IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
* IPage:用来构建分页查询条件
* Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
* IPage:返回值,你会发现构建分页条件和方法的返回值都是IPage
*/
@RequestMapping("page")
public void getInfoListPage(){
//需要在Config配置类中配置分页插件
IPage<Movie> page = new Page<>(1,3);
movieDaoService.page(page,null);
//3 获取分页结果
System.out.println("当前页码值:"+page.getCurrent());//当前是多少页
System.out.println("每页显示数:"+page.getSize());//每页显示数
System.out.println("一共多少页:"+page.getPages());//显示数据有多少页
System.out.println("一共多少条数据:"+page.getTotal());//总数据
System.out.println("数据:"+page.getRecords());//当前页数据的显示
//return page;
}
/**
* default IPage<T> page(IPage<T> page) {
* return this.page(page, Wrappers.emptyWrapper());
* }
* @return
*/
@RequestMapping("/getInfoListPage")
public IPage<Movie> getInfoListPageTwo(){
//需要在Config配置类中配置分页插件
IPage<Movie> page = new Page<>();
page.setCurrent(1); //当前页
page.setSize(3); //每页条数
page = movieDaoService.page(page);
return page;
}
}
结果展示
1.
2.
条件查询构造
controller控制层实现
/**
* 条件查询构建
*/
@Controller
@RequestMapping("/conditions")
public class MovieConditionController {
@Autowired
private MovieDaoService movieDaoService;
@RequestMapping("/getlist")
public List<Movie> getList(){
/**
* 单一条件查询
* 投资金额小于20的电影信息
*/
/**
* 第一种:QueryWrapper
*/
//QueryWrapper queryWrapper=new QueryWrapper();
//queryWrapper.lt("money",20);
/**
* 第二种QueryWrapper的基础上使用lambda
* 但是qw后面多了一层lambda()调用
*/
//QueryWrapper<Movie> queryWrapper=new QueryWrapper<Movie>();
// queryWrapper.lambda().lt(Movie::getMoney, 20);//添加条件
/**
* 解决了上一种方式存在的问题
*第三种LambdaQueryWrapper
*/
//LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
//queryWrapper.lt(Movie::getMoney, 20);
/**
* 多条件查询
* 查询投资金额大于18,小于25的电影信息
*/
// LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
// queryWrapper.lt(Movie::getMoney, 25);
// queryWrapper.gt(Movie::getMoney, 18);
/**
* 等值查询
* 这里设定只有导演和电影类型与数据库信息相匹配,才能查找到对应信息
*/
// LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
// queryWrapper.eq(Movie::getAuthor,"乌尔善").eq(Movie::getType,"神话、动作");
/**
*范围查询
* 这里查询投资金额在14到20的电影信息
*/
// LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
// queryWrapper.between(Movie::getMoney,14,20);
/**
* 模糊查询
* 这里查询以“假”开头的电影名称,由此查询到其相关的电影信息
* like():前后加百分号,如 %J%
* likeLeft():前面加百分号,如 %J
* likeRight():后面加百分号,如 J%
*/
// LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
// queryWrapper.likeRight(Movie::getName,"假%");
/**
* 排序查询
* 这里根据id进行降序查询
* condition :条件,返回boolean,
* 当condition为true,进行排序,如果为false,则不排序
* isAsc:是否为升序,true为升序,false为降序
* columns:需要操作的列
*/
LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
queryWrapper.orderBy(true,false,Movie::getId);
List<Movie> movieList=movieDaoService.list(queryWrapper);
return movieList;
}
}
结果展示
数据库显示
查询链接
单一条件查询:
多条件查询
等值查询
范围查询
模糊查询
排序查询
SpringBoot图标和Mybatis-plus图标的取消
springBoot图标
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.15)
Mybatis-plus图标
_ _ |_ _ _|_. ___ _ | _
| | |\/|_)(_| | |_\ |_)||_|_\
/ |
3.1.0
取消图标在application.yml里面书写
spring:
main:
banner-mode: off # 关闭SpringBoot启动图标(banner)
mybatis-plus:
global-config:
banner: off # 关闭mybatisplus启动图标
结语:
其他的代码在SpringBoot整合Mybatis-plus(基础)_冰鲜柠檬汁的博客-CSDN博客