• mybatisPlus整理


    1.在启动类上面添加@MapperScan注解,扫描mapper包

    复制代码
    1 @SpringBootApplication
    2 @MapperScan("com.qiao.demo02.mapper")
    3 public class SpringbootDemo02Application {
    4 
    5     public static void main(String[] args) {
    6         SpringApplication.run(SpringbootDemo02Application.class, args);
    7     }
    8 
    9 }


    2baseMapper里面生成了大量的crud方法

        UserMapper接口

    public interface UserMapper extends BaseMapper<User> {
    2 
    3 }

    1 public interface UserMapper extends BaseMapper<User> {
    2 
    3 }

      最重要的是继承BaseMapper<E>接口:里面声明了很强大的CRUD方法

    public interface BaseMapper<T> extends Mapper<T> {
     2     int insert(T entity);
     3 
     4     int deleteById(Serializable id);
     5 
     6     int deleteByMap(@Param("cm") Map<String, Object> columnMap);
     7 
     8     int delete(@Param("ew") Wrapper<T> wrapper);
     9 
    10     int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    11 
    12     int updateById(@Param("et") T entity);
    13 
    14     int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
    15 
    16     T selectById(Serializable id);
    17 
    18     List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    19 
    20     List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
    21 
    22     T selectOne(@Param("ew") Wrapper<T> queryWrapper);
    23 
    24     Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
    25 
    26     List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
    27 
    28     List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
    29 
    30     List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
    31 
    32     IPage<T> selectPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
    33 
    34     IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
    35 }

    复制代码
     1 public interface BaseMapper<T> extends Mapper<T> {
     2     int insert(T entity);
     3 
     4     int deleteById(Serializable id);
     5 
     6     int deleteByMap(@Param("cm") Map<String, Object> columnMap);
     7 
     8     int delete(@Param("ew") Wrapper<T> wrapper);
     9 
    10     int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    11 
    12     int updateById(@Param("et") T entity);
    13 
    14     int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
    15 
    16     T selectById(Serializable id);
    17 
    18     List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    19 
    20     List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
    21 
    22     T selectOne(@Param("ew") Wrapper<T> queryWrapper);
    23 
    24     Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
    25 
    26     List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
    27 
    28     List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
    29 
    30     List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
    31 
    32     IPage<T> selectPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
    33 
    34     IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
    35 }
    复制代码
    3.分页查询
     

    这点官方文档讲的也很详细:https://mp.baomidou.com/guide/page.html

      新建一个config包,在里面建一个MybatisPlus配置类 返回一个分页拦截器

    package com.qiao.demo02.config;
     2 
     3 @Configuration
     4 @ConditionalOnClass(value = {PaginationInterceptor.class})
     5 public class MybatisPlusConfig {
     6     @Bean
     7     public PaginationInterceptor paginationInterceptor() {
     9         return new PaginationInterceptor();
    10 } 11 }

    分页第一种方法

    第一种方式,mybatis-plus原生QueryWrapper方式分页,这种方式比较简单,可以不用修改Mapper,适合简单的增删改查。

        @RequestMapping(value = "/orgist1")//,method = RequestMethod.POST)
        public Map<String,Object> orglist1()
        {
    
            Map<String,Object> map = new HashMap<>();
    
            QueryWrapper<OauthOrganization> queryWrapper =  new QueryWrapper<>();
            queryWrapper.orderByDesc("id");
    
            Page<OauthOrganization> page = new Page<>(1,5);  // 查询第1页,每页返回5条
            IPage<OauthOrganization> iPage = oauthOrganizationMapper.selectPage(page,queryWrapper);
            System.out.println(iPage.getRecords().size());
            System.out.println(JSON.toJSONString(iPage));
            return map;
        }


    作者:小鱼儿2020
    链接:https://www.jianshu.com/p/0a21569f1e06
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     
    分页第二种方法

    第二种方式,使用mapper文件的select注解,优点是可以方便的建立查询语句,可以联合多表查询。
    Mapper文件

        @Select("SELECT * FROM oauth_organization WHERE id < #{m.id} ORDER BY `id` DESC")
        List<OauthOrganization> selectpage(Map<String,Object> m, Page<OauthOrganization> page);


    作者:小鱼儿2020
    链接:https://www.jianshu.com/p/0a21569f1e06
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     
     
  • 相关阅读:
    Python爬虫一
    Python爬虫二
    DRF框架中的演变View
    计算时间复杂度例题
    vue2.x webpack打包资源路径问题
    vs code运行c语言 控制台乱码 问题
    解决视频的声音和画面不同步问题
    c语言数据结构,静态链表,结构体数组
    swagger @ApiModel添加实体类不生效
    计算及校验海明码的3个举例
  • 原文地址:https://www.cnblogs.com/handsome1013/p/12817992.html
Copyright © 2020-2023  润新知