MyBatisPlus使用记录

发布时间 2023-08-03 12:51:58作者: _Explosion!

常用简单增删查改

增:

xxMapper.insert(xxDO)

删:

xxMapper.delete(new QueryWrapper<xx>().eq("xxx",xxx)...)

查:

注意在主键上加注解表明主键@TableId(“commodity_id”)

xxMapper.selectById("xx")

xxMapper.selectOne(new QueryWrapper<xx>())  //查询单个结果,返回JOBO

xxMapper.selectMaps(new QueryWrapper<xx>())  //查询结果每一行记录都会转成一个Map<String, Object>对象,Map的key对应列名,value对应该列的值

xxMapper.selectList(new QueryWrapper<xx>())  //查询结果以列表形式返回

xxMapper.selectCount(new QueryWrapper<xx>())  //返回查询结果集中的记录数。

改:

update仅修改提供的参数,为提升效率提供的bean尽量只提供需修改的参数

xxMapper.update(null,new UpdateWrapper<xx>().eq(...).set(...))  //参数1为空,参数二为匹配条件(eq==,gt>,ge>=,lt<,le<=,ne!=...)+修改内容(set)
xxMapper.update(user,new QueryWrapper<xx>().eq(...));  //参数1非空值为修改内容,参数二为匹配条件
 
分页:
此处直接举例说明:
Page<ForumArticleDO> page = new Page<>(pageNum, PageSize.SIZE15.getSize());  //初始分页配置,第pageNum页,每页15条
QueryWrapper<ForumArticleDO> qw = new QueryWrapper<>();  //查询条件
if(boardId!=null&&boardId!=0)
            qw.eq("p_board_id",pBoardId);
qw.orderByDesc(orderTypeEnum.getOrderSql());
IPage<ForumArticleDO> iPage = articleMapper.selectPage(page,qw.select(
                ForumArticleDO.class,
                f->!f.getColumn().equals("content") && !f.getColumn().equals("markdown_content")));  //查询结果排除特定列

得到的IPage即为分页结果,需注意,必须先配置MyBatisPlus分页拦截器,否则IPage无法分页

/**
 * MyBatisPlus配置类
 */
@Configuration
public class MyBatisPlusConfig {
 
    /**
     * MyBatisPlus拦截器(用于分页)
     */
    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加MySQL的分页拦截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}