掌握MybatisPlus提升开发效率(三)查询封装类QueryWrapper、常用注解、分页

MybaitsPlus常用注解

@TableName

作用在类上,用于定义表名(对应数据库表名)

@TableId

用于定义表的主键

属性
value:用于定义主键字段名
type:用于定义主键类型(主键策略 IdType

主键策略
IdType.AUTO:主键自增,系统分配
IdType.NONE:未设置主键
IdType.INPUT:需要自己输入主键值
IdType.ASSIGN_ID:系统分配 ID,用于数值型数据(Long,对应 mysql 中 BIGINT 类型)
IdType.ASSIGN_UUID:系统分配 UUID,用于字符串型数据(String,对应 mysql 中 varchar(32) 类型)

@TableField

定义表的非主键字段

属性
value:用于定义非主键字段名,用于别名匹配,假如java对象属性和数据库属性不⼀样
exist:用于指明是否为数据表的字段, true 表示是,false 为不是,假如某个java属性在数据库没对应的字段则要标记为faslse
fill:用于指定字段填充策略(FieldFill,用的不多)

字段填充策略
⼀般用于填充创建时间、修改时间等字段
FieldFill.DEFAULT:默认不填充
FieldFill.INSERT:插⼊时填充
FieldFill.UPDATE:更新时填充
FieldFill.INSERT_UPDATE:插⼊、更新时填充

QueryWrapper类

可以封装sql对象,包括where条件,order by排序,select哪些字段等等
查询包装类,可以封装多数查询条件,泛型指定返回的实体类

核心API

eq:等于
ne:不等于
gt:大于
ge:⼤于等于
lt:小于
le:小于等于
or:拼接or
between:两个值中间
notBetween:不在两个值中间
like:模糊匹配
notLike:不像
likeLeft:左匹配
likeRight:右边匹配
isNull:字段为空
in:in查询
groupBy:分组
orderByAsc:升序
orderByDesc:降序
having:having查询

部分API案例

public void testQueryWrapper1(){
	//SELECT id,img,url,weight AS weightAAA FROM banner WHERE (id = ? OR url <> ?)
	QueryWrapper queryWrapper = new QueryWrapper<BannerDO>().eq("id",1).or().ne("url","bbbc.com");
	
	bannerMapper.selectList(queryWrapper);
}



public void testQueryWrapper2(){
	QueryWrapper queryWrapper = new QueryWrapper();
//	queryWrapper.like("url","bbb");
//	queryWrapper.notLike("img","cccc");
	//SELECT id,img,url,weight AS weightAAA FROM banner WHERE (url LIKE ? AND img NOT LIKE ?)

//	queryWrapper.likeLeft("url","bbb");
//	queryWrapper.likeRight("img","cccc");
	//SELECT id,img,url,weight AS weightAAA FROM banner WHERE (url LIKE ? AND img LIKE ?)
	//==> Parameters: %bbb(String), cccc%(String)

	queryWrapper.isNull("img");
	queryWrapper.in("url",Arrays.asList("aaaa","bbbb"));
	queryWrapper.orderByDesc("id");
	//SELECT id,img,url,weight AS weightAAA FROM banner WHERE (img IS NULL AND url IN (?,?)) ORDER BY id DESC

	bannerMapper.selectList(queryWrapper);
}

分页

分页插件配置

配置类

@Configuration
public class MybatisPlusPageConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

运行测试

public void  testPage(){
	//QueryWrapper<BannerDO> queryWrapper = new QueryWrapper();
	//queryWrapper.eq("weight",4);

	//第一页,每页3条, 如果是第一页则直接一个问号,获取条数
	Page<BannerDO> page  = new Page<>(1,4);
	IPage<BannerDO> iPage =  bannerMapper.selectPage(page,null);

	log.info("总条数:{}",iPage.getTotal());
	log.info("总页数:{}",iPage.getPages());
	log.info("数据:{}",iPage.getRecords());
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值