zoukankan      html  css  js  c++  java
  • SpringBoot整合Mybatisplus的常用查询方法

    最近在学习MybatisPlus是总结了一些常见的方法,记录下来方便之后使用:

    BaseMapper源码展示:

    public interface BaseMapper<T> {
        
        /**
         * <p>
         * 根据 ID 查询
         * </p>
         *
         * @param id 主键ID
         */
        T selectById(Serializable id);
    
    
        /**
         * <p>
         * 查询(根据ID 批量查询)
         * </p>
         *
         * @param idList 主键ID列表(不能为 null 以及 empty)
         */
         List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
    
    
        /**
         * <p>
         * 查询(根据 columnMap 条件)
         * </p>
         *
         * @param columnMap 表字段 map 对象
         */
         List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
    
    }

    1.根据ID查询实体类信息,例如:

    @Test
        public void selectById(){
            User user = userMapper.selectById(1088250446457389058L);
            System.out.println(user);
        }

    结果:

    User(id=1088250446457389058, name=李艺伟, age=28, email=lyw@baomidou.com, managerId=1088248166370832385, createTime=2019-02-14T08:31:16, remark=null)

    2.根据ID批量查询,例如:

    @Test
        public void selectIds(){
            List<Long> idList = Arrays.asList(1088248166370832385L,
                    1094592041087729666L,1094590409767661570L);
            List<User> userList = userMapper.selectBatchIds(idList);
            userList.forEach(System.out :: println);
        }

    结果:

    User(id=1088248166370832385, name=王天风, age=25, email=wtf@baomidou.com, managerId=1087982257332887553, createTime=2019-02-05T11:12:22, remark=null)
    User(id=1094590409767661570, name=张雨琪, age=31, email=zjq@baomidou.com, managerId=1088248166370832385, createTime=2019-01-14T09:15:15, remark=null)
    User(id=1094592041087729666, name=刘红雨, age=32, email=lhm@baomidou.com, managerId=1088248166370832385, createTime=2019-01-14T09:48:16, remark=null)

    3.根据 columnMap 条件查询,例如:

    @Test
        public void selectByMap(){
            //map.put("name","王天风")
            //map.put("age",30)
            //where name="王天风" and age=30
            Map<String,Object> columnMap = new HashMap<>();
            //columnMap.put("name","王天风");
            //列age为数据库中的列名,不是实体类中的属性名
            columnMap.put("age",27);
            List<User> userList = userMapper.selectByMap(columnMap);
            userList.forEach(System.out::println);
        }

    结果:

    User(id=1212614062686031873, name=向南, age=27, email=xn@baomidou.com, managerId=1088248166370832385, createTime=2020-01-02T13:58:16, remark=null)
    User(id=1212615304313184258, name=向东, age=27, email=xd@baomidou.com, managerId=1088248166370832385, createTime=2020-01-02T14:03:12, remark=null)
    User(id=1212616053072060417, name=向西, age=27, email=xx@baomidou.com, managerId=1088248166370832385, createTime=2020-01-02T14:06:10, remark=null)

  • 相关阅读:
    程序员版孔乙己
    痛!痛!痛!我们的好兄弟Git,一路走好!
    谈谈中台架构之交易中台
    一个单例还能写出花来吗?
    为什么数据库字段要使用NOT NULL?
    阿里二面:什么是mmap?
    退税不完全操作指南,我这样操作省了2000块!
    开源组件编排引擎LiteFlow发布里程碑版本2.5.0
    开源框架TLog核心原理架构解析
    对乱糟糟的日志说再见
  • 原文地址:https://www.cnblogs.com/zhukf/p/12133222.html
Copyright © 2011-2022 走看看