Mybatis-Plus的BaseMapper的使用

  Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件, 减少你的开发周期优化动态维护 XML 实体字段。

  下面简单举例,调用BaseMapper中的一些基本方法。在使用的时候需要实现BaseMapper接口。

一、deleteByMap

接口注释如下:

/**
     * <p>
     * 根据 columnMap 条件,删除记录
     * </p>
     *
     * @param columnMap 表字段 map 对象
     * @return int
     */
    Integer deleteByMap(@Param("cm") Map<String, Object> columnMap);

调用例子:

public int deleteById(Long id) {
     //删除条件
     Map<String, Object> columnMap = Maps.newHashMap();
   columnMap.put("id", id);

  return userMapper.deleteByMap(columnMap);
 }

二、selectList

接口注释如下:

/**
     * <p>
     * 根据 entity 条件,查询全部记录
     * </p>
     *
     * @param wrapper 实体对象封装操作类(可以为 null)
     * @return List<T>
     */
    List<T> selectList(@Param("ew") Wrapper<T> wrapper);

调用例子:

public List<SysUser> searchUserList(User user) {
        EntityWrapper<User> ew = new EntityWrapper<>();
        ew.where(user.getId() != null, "id={0}", user.getId())
                .like(!Strings.isNullOrEmpty(user.getUserName()), "user_name", "%" + user.getUserName() + "%")
                .where(user.getStatus() != null, "status={0}", user.getStatus());
        return userMapper.selectList(ew);
 }

上面的调用,当条件 user.getId()不等于空时,后面的条件才会出现在where中。

三、updateForSet

源码接口注释:

/**
     * <p>
     * 根据 whereEntity 条件,更新记录
     * </p>
     *
     * @param setStr  set字符串
     * @param wrapper 实体对象封装操作类(可以为 null)
     * @return
     */
    Integer updateForSet(@Param("setStr") String setStr, @Param("ew") Wrapper<T> wrapper);

使用举例:

public int updateStatus(Long status,  Long userId) {
       String setSql = " status=" + status;
       EntityWrapper<User> ew = new EntityWrapper<>();
       ew.where("id={0}", userId);

       return userMapper.updateForSet(setSql, ew);
}

剩下的就自己举一反三吧!!!

原文地址:https://www.cnblogs.com/JoeyWong/p/9489701.html