zoukankan      html  css  js  c++  java
  • Mybatis-Plus 之BaseMapper 方法详解

    一、源码解析:

    /**
     * Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能
     * 这个 Mapper 支持 id 泛型
     * @author hubin
     * @Date 2016-01-23
     */
    public interface BaseMapper<T> {
     
        /**
         * 插入一条记录
         * @param entity
         * 实体对象
         * @return int
         */
        Integer insert(T entity);
     
        /**
         * 根据 ID 删除
         * @param id
         * 主键ID
         * @return int
         */
        Integer deleteById(Serializable id);
     
        /**
         * 根据 columnMap 条件,删除记录
         * @param columnMap
         * 表字段 map 对象
         * @return int
         */
        Integer deleteByMap(@Param("cm") Map<String, Object> columnMap);
     
        /**
         * 根据 entity 条件,删除记录
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return int
         */
        Integer delete(@Param("ew") Wrapper<T> wrapper);
     
        /**
         * 删除(根据ID 批量删除)
         * @param idList
         * 主键ID列表
         * @return int
         */
        Integer deleteBatchIds(List<? extends Serializable> idList);
     
        /**
         * 根据 ID 修改
         * @param entity
         * 实体对象
         * @return int
         */
        Integer updateById(T entity);
     
        /**
         * 根据 whereEntity 条件,更新记录
         * @param entity
         * 实体对象
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return
         */
        Integer update(@Param("et") T entity, @Param("ew") Wrapper<T> wrapper);
     
        /**
         * 根据 ID 查询
         * @param id
         * 主键ID
         * @return T
         */
        T selectById(Serializable id);
     
        /**
         * 查询(根据ID 批量查询)
         * @param idList
         * 主键ID列表
         * @return List<T>
         */
        List<T> selectBatchIds(List<? extends Serializable> idList);
     
        /**
         * 查询(根据 columnMap 条件)
         * @param columnMap
         * 表字段 map 对象
         * @return List<T>
         */
        List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
     
        /**
         * 根据 entity 条件,查询一条记录
         * @param entity
         * 实体对象
         * @return T
         */
        T selectOne(@Param("ew") T entity);
     
        /**
         * 根据 Wrapper 条件,查询总记录数
         * @param wrapper
         * 实体对象
         * @return int
         */
        Integer selectCount(@Param("ew") Wrapper<T> wrapper);
     
        /**
         * 根据 entity 条件,查询全部记录
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return List<T>
         */
        List<T> selectList(@Param("ew") Wrapper<T> wrapper);
     
        /**
         * 根据 Wrapper 条件,查询全部记录
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return List<T>
         */
        List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> wrapper);
     
        /**
         * 根据 Wrapper 条件,查询全部记录
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return List<Object>
         */
        List<Object> selectObjs(@Param("ew") Wrapper<T> wrapper);
     
        /** 
         * 用法:(new RowBounds(offset, limit), ew);
         * 根据 entity 条件,查询全部记录(并翻页)
         * @param rowBounds
         * 分页查询条件(可以为 RowBounds.DEFAULT)
         * @param wrapper
         * 实体对象封装操作类(可以为 null)
         * @return List<T>
         */
        List<T> selectPage(RowBounds rowBounds, @Param("ew") Wrapper<T> wrapper);
     
        /** -- 不常用,
         * 根据 Wrapper 条件,查询全部记录(并翻页)
         * @param rowBounds
         * 分页查询条件(可以为 RowBounds.DEFAULT)
         * @param wrapper
         * 实体对象封装操作类
         * @return List<Map<String, Object>>
         */
        List<Map<String, Object>> selectMapsPage(RowBounds rowBounds, @Param("ew") Wrapper<T> wrapper);
    }

    二、方法应用:

      1 public class TestMapper {
      2 
      3     @Resource
      4     private UserMapper userMapper;
      5 
      6     /**
      7      * 获取所有用户
      8      */
      9     @Test
     10     public void selectList(){
     11         List<User> userList = userMapper.selectList(null);
     12         userList.forEach(System.out::println);
     13     }
     14 
     15     /**
     16      * 根据指定条件 查询符合条件的用户 (selectList传参数的查询形式)
     17      */
     18     @Test
     19     public void selectAllList(){
     20         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
     21         queryWrapper.ge("age",23);
     22         List<User> userList = userMapper.selectList(queryWrapper);
     23         userList.forEach(System.out::println);
     24     }
     25 
     26     /**
     27      * 根据 id 查询指定用户
     28      */
     29     @Test
     30     public void selectById(){
     31         User user = userMapper.selectById(1);
     32         System.out.println(user);
     33     }
     34 
     35     /**
     36      * 根据 ID 批量查询用户
     37      */
     38     @Test
     39     public void selectBatchIds(){
     40         List<Integer> integers = Arrays.asList(1,2,3);
     41         List<User> userList = userMapper.selectBatchIds(integers);
     42         userList.forEach(System.out::println);
     43     }
     44 
     45     /**
     46      * 根据 Map搜索条件查询指定条件下的用户
     47      */
     48     @Test
     49     public void selectByMap(){
     50         Map<String,Object> map = new HashMap<>();
     51         map.put("name","Tom");
     52         List<User> userList = userMapper.selectByMap(map);
     53         userList.forEach(System.out::println);
     54     }
     55 
     56     /**
     57      * wrapper 查询一条数据
     58      */
     59     @Test
     60     public void selectOne(){
     61         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
     62         queryWrapper.eq("name","Tom");
     63         User user = userMapper.selectOne(queryWrapper);
     64         System.out.println(user);
     65     }
     66 
     67     /**
     68      * 根据指定条件查询符合条件的记录数
     69      */
     70     @Test
     71     public void selectCount(){
     72         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
     73         queryWrapper.gt("age",20);
     74         Integer count = userMapper.selectCount(queryWrapper);
     75         System.out.println(count);
     76     }
     77 
     78 
     79 
     80     /**
     81      * 根据指定条件查询用户
     82      */
     83     @Test
     84     public void selectMaps(){
     85         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
     86         queryWrapper.ge("age",23);
     87         List<Map<String, Object>> mapList = userMapper.selectMaps(queryWrapper);
     88         mapList.forEach(System.out::println);
     89     }
     90 
     91     /**
     92      * 根据指定条件查询符合条件的用户 (只返回第一个字段值)
     93      */
     94     @Test
     95     public void selectObjs(){
     96         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
     97         queryWrapper.ge("age",23);
     98         List<Object> list = userMapper.selectObjs(queryWrapper);
     99         list.forEach(System.out::println);
    100     }
    101 
    102     /**
    103      * 查询所有用户并分页
    104      */
    105     @Test
    106     public void selectPage(){
    107         Page<User> page = new Page<>(1,2);
    108         IPage<User> userIPage = userMapper.selectPage(page, null);
    109         System.out.println("总记录数:"+userIPage.getTotal());
    110         System.out.println("总页数:"+userIPage.getPages());
    111         List<User> userList = userIPage.getRecords();
    112         userList.forEach(System.out::println);
    113     }
    114 
    115     /**
    116      * 查询所有用户并分页
    117      */
    118     @Test
    119     public void selectMapsPage(){
    120         Page<User> page = new Page<>(1,2);
    121         IPage<Map<String, Object>> mapIPage = userMapper.selectMapsPage(page, null);
    122         System.out.println("总记录数:"+mapIPage.getTotal());
    123         System.out.println("总页数:"+mapIPage.getPages());
    124         List<Map<String, Object>> records = mapIPage.getRecords();
    125         records.forEach(System.out::println);
    126     }
    127 
    128     /**
    129      * 插入一条记录
    130      */
    131     @Test
    132     public void insert(){
    133         User user = new User();
    134         user.setUsername("zhangsan");
    135         user.setEmail("777@qq.com");
    136         user.setAge(33);
    137         int i = userMapper.insert(user);
    138         System.out.println(i);
    139     }
    140 
    141     /**
    142      * 根据ID删除一条记录
    143      */
    144     @Test
    145     public void deleteById(){
    146         int i = userMapper.deleteById(8);
    147         System.out.println(i);
    148     }
    149 
    150     /**
    151      * 根据指定 Map 条件删除记录
    152      */
    153     @Test
    154     public void deleteByMap(){
    155         Map<String,Object> map = new HashMap<>();
    156         map.put("age",23);
    157         int i = userMapper.deleteByMap(map);
    158         System.out.println(i);
    159     }
    160 
    161     /**
    162      * 根据指定 Wrapper 条件删除记录
    163      */
    164     @Test
    165     public void delete(){
    166         QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    167         queryWrapper.likeRight("name","B");
    168         int i = userMapper.delete(queryWrapper);
    169         System.out.println(i);
    170     }
    171 
    172     /**
    173      * 根据指定ID批量删除记录
    174      */
    175     @Test
    176     public void deleteBatchIds(){
    177         List<Integer> integers = Arrays.asList(1, 2);
    178         int i = userMapper.deleteBatchIds(integers);
    179         System.out.println(i);
    180     }
    181 
    182     /**
    183      * 根据指定条件更新记录
    184      */
    185     @Test
    186     public void update(){
    187         User user = new User();
    188         user.setEmail("888@qq.com");
    189         UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
    190         updateWrapper.eq("name","Jack");
    191         int update = userMapper.update(user, updateWrapper);
    192         System.out.println(update);
    193     }
    194 
    195     /**
    196      * 根据 指定ID 更新记录
    197      */
    198     @Test
    199     public void updateById(){
    200         User user = new User();
    201         user.setId(1L);
    202         user.setEmail("666@qq.com");
    203         int i = userMapper.updateById(user);
    204         System.out.println(i);
    205     }

    publicclassTestMapper{@Autowiredprivate UserMapper userMapper;/** * 获取所有用户 */@TestpublicvoidselectList(){ List<User> userList = userMapper.selectList(null); userList.forEach(System.out::println);}/** * 根据指定条件 查询符合条件的用户 (selectList传参数的查询形式) */@TestpublicvoidselectAllList(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.ge("age",23); List<User> userList = userMapper.selectList(queryWrapper); userList.forEach(System.out::println);}/** * 根据 id 查询指定用户 */@TestpublicvoidselectById(){ User user = userMapper.selectById(1); System.out.println(user);}/** * 根据 ID 批量查询用户 */@TestpublicvoidselectBatchIds(){ List<Integer> integers = Arrays.asList(1,2,3); List<User> userList = userMapper.selectBatchIds(integers); userList.forEach(System.out::println);}/** * 根据 Map搜索条件查询指定条件下的用户 */@TestpublicvoidselectByMap(){ Map<String,Object> map =newHashMap<>(); map.put("name","Tom"); List<User> userList = userMapper.selectByMap(map); userList.forEach(System.out::println);}/** * wrapper 查询一条数据 */@TestpublicvoidselectOne(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.eq("name","Tom"); User user = userMapper.selectOne(queryWrapper); System.out.println(user);}/** * 根据指定条件查询符合条件的记录数 */@TestpublicvoidselectCount(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.gt("age",20); Integer count = userMapper.selectCount(queryWrapper); System.out.println(count);}/** * 根据指定条件查询用户 */@TestpublicvoidselectMaps(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.ge("age",23); List<Map<String, Object>> mapList = userMapper.selectMaps(queryWrapper); mapList.forEach(System.out::println);}/** * 根据指定条件查询符合条件的用户 (只返回第一个字段值) */@TestpublicvoidselectObjs(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.ge("age",23); List<Object> list = userMapper.selectObjs(queryWrapper); list.forEach(System.out::println);}/** * 查询所有用户并分页 */@TestpublicvoidselectPage(){ Page<User> page =newPage<>(1,2); IPage<User> userIPage = userMapper.selectPage(page, null); System.out.println("总记录数:"+userIPage.getTotal()); System.out.println("总页数:"+userIPage.getPages()); List<User> userList = userIPage.getRecords(); userList.forEach(System.out::println);}/** * 查询所有用户并分页 */@TestpublicvoidselectMapsPage(){ Page<User> page =newPage<>(1,2); IPage<Map<String, Object>> mapIPage = userMapper.selectMapsPage(page, null); System.out.println("总记录数:"+mapIPage.getTotal()); System.out.println("总页数:"+mapIPage.getPages()); List<Map<String, Object>> records = mapIPage.getRecords(); records.forEach(System.out::println);}/** * 插入一条记录 */@Testpublicvoidinsert(){ User user =newUser(); user.setUsername("zhangsan"); user.setEmail("777@qq.com"); user.setAge(33);int i = userMapper.insert(user); System.out.println(i);}/** * 根据ID删除一条记录 */@TestpublicvoiddeleteById(){int i = userMapper.deleteById(8); System.out.println(i);}/** * 根据指定 Map 条件删除记录 */@TestpublicvoiddeleteByMap(){ Map<String,Object> map =newHashMap<>(); map.put("age",23);int i = userMapper.deleteByMap(map); System.out.println(i);}/** * 根据指定 Wrapper 条件删除记录 */@Testpublicvoiddelete(){ QueryWrapper<User> queryWrapper =newQueryWrapper<>(); queryWrapper.likeRight("name","B");int i = userMapper.delete(queryWrapper); System.out.println(i);}/** * 根据指定ID批量删除记录 */@TestpublicvoiddeleteBatchIds(){ List<Integer> integers = Arrays.asList(1,2);int i = userMapper.deleteBatchIds(integers); System.out.println(i);}/** * 根据指定条件更新记录 */@Testpublicvoidupdate(){ User user =newUser(); user.setEmail("888@qq.com"); UpdateWrapper<User> updateWrapper =newUpdateWrapper<>(); updateWrapper.eq("name","Jack");int update = userMapper.update(user, updateWrapper); System.out.println(update);}/** * 根据 指定ID 更新记录 */@TestpublicvoidupdateById(){ User user =newUser(); user.setId(1L); user.setEmail("666@qq.com");int i = userMapper.updateById(user); System.out.println(i);}

  • 相关阅读:
    Bootstrap模态框modal的高度和宽度设置
    入门学习Linux常用必会命令实例详解
    Linux 系统中用户切换(su user与 su
    hdu 3549 Flow Problem(最大流模板题)
    第三章 学后心得及总结 【物联网1132-11】
    Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
    面试题4
    Fp关联规则算法计算置信度及MapReduce实现思路
    POJ 1679 The Unique MST 推断最小生成树是否唯一
    论程序猿的社会地位
  • 原文地址:https://www.cnblogs.com/javacyq/p/14270439.html
Copyright © 2011-2022 走看看