增删改查

参考:

https://mp.baomidou.com/guide/crud-interface.html#insert

需要考虑的问题:

替换原来的通用mapper的功能,一些简单的增删改查

批量插入与删除

软删除

Mapper CRUD 接口

通用 CRUD 封装BaseMapper接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器。

泛型 T 为任意实体对象

参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键

对象 Wrapper 为 条件构造器

insert

/**

 * <p>

 * 插入一条记录

 * </p>

 *

 * @param entity 实体对象

 * @return 插入成功记录数

 */

int insert(T entity);



public class Test {

    @Resource

    private UserMapper userMapper;



    @org.junit.Test

    public void testmybatisplus(){

        User user=new User();

        user.setName("测试mybatisplus账号6");

        userMapper.insert(user);

    }

}
View Code

deleteById

/**

 * <p>

 * 根据 ID 删除

 * </p>

 *

 * @param id 主键ID

 * @return 删除成功记录数

 */

int deleteById(Serializable id);



//eg

@org.junit.Test

public void testmybatisplus(){

    String refid="225553535353";

    int flag=userMapper.deleteById(refid);

    System.out.println(flag);

}
View Code

deleteByMap

将条件加入到map中key代表着字段,value代表着条件 ,之间是与的关系

/**

 * <p>

 * 根据 columnMap 条件,删除记录

 * </p>

 *

 * @param columnMap 表字段 map 对象

 * @return 删除成功记录数

 */

int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);



@org.junit.Test

public void testmybatisplus(){

    Map<String, Object> columnMap=new HashMap<>();

    columnMap.put("REFID","1172035710233214977");

    columnMap.put("NAME","测试mybatisplus账号1");

    userMapper.deleteByMap(columnMap);

}
View Code
 DELETE
 FROM user
 WHERE REFID = '1172035710233214977' AND NAME = '测试mybatisplus账号1';

delete

/**

 * <p>

 * 根据 entity 条件,删除记录

 * </p>

 *

 * @param wrapper 实体对象封装操作类(可以为 null)

 * @return 删除成功记录数

 */

int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);



@org.junit.Test

public void testmybatisplus(){

    QueryWrapper queryWrapper=new QueryWrapper<User>().

            eq("REFID","1172052211766128642");

    userMapper.delete(queryWrapper);

}
View Code

deleteBatchIds

根据主键id批量进行删除

/**

 * <p>

 * 删除(根据ID 批量删除)

 * </p>

 *

 * @param idList 主键ID列表(不能为 null 以及 empty)

 * @return 删除成功记录数

 */

int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);



@org.junit.Test

public void testmybatisplus(){

    List<String> list=new ArrayList<>();

    list.add("1172035940903157762");

    list.add("1172047016717934593");

    userMapper.deleteBatchIds(list);

}
View Code
DELETE
 FROM user
 WHERE REFID IN ( '1172035940903157762' , '1172047016717934593' );
View Code

updateById

根据主键id进行修改,这里只会修改那些你填写过的值。

/**

 * <p>

 * 根据 ID 修改

 * </p>

 *

 * @param entity 实体对象

 * @return 修改成功记录数

 */

int updateById(@Param(Constants.ENTITY) T entity);



@org.junit.Test

public void testmybatisplus(){

    User user=new User();

    user.setRefid("1172048642857984002");

    user.setDescription("this is ceshi");

    userMapper.updateById(user);

}
View Code
UPDATE user SET MODIFY_USER_REFID=null, MODIFY_DATETIME='2019-09-12 16:33:28.308', DESCRIPTION='this is ceshi'

 WHERE REFID='1172048642857984002';

update 

根据条件来修改值

/**
* <p>
* 根据 whereEntity 条件,更新记录
* </p>
*
* @param entity 实体对象 (set 条件值,可为 null)
* @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)
* @return 修改成功记录数
*/
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrap

@org.junit.Test
public void testmybatisplus(){

//修改值
User user=new User();
user.setDescription("KKKKKK");

//修改条件
UpdateWrapper<User> updateWrapper=new UpdateWrapper();
updateWrapper.eq("REFID","1172051687930986497");

userMapper.update(user,updateWrapper);

}
View Code
UPDATE user SET MODIFY_USER_REFID=null, MODIFY_DATETIME='2019-09-12 16:48:55.872', DESCRIPTION='KKKKKK'
WHERE (REFID = '1172051687930986497');

Service CRUD 接口

通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,
泛型 T 为任意实体对象
建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类
对象 Wrapper 为 条件构造器

save
/**
* <p>
* 插入一条记录(选择字段,策略插入)
* </p>
*
* @param entity 实体对象
*/
boolean save(T entity);

@Autowired
IUserService userService;

@org.junit.Test
public void testmybatisplus(){
User user=new User();
user.setDescription("这是一个测试");
user.setName("测试mybatisplus账号1");
userService.save(user);
}
View Code
INSERT INTO user ( REFID, DESCRIPTION, ACTIVE, CREATE_USER_REFID, CREATE_DATETIME, DELETED, NAME ) 
VALUES ( '1172071428636708866', '这是一个测试', 1, null, '2019-09-12 16:56:19.279', 0, '测试mybatisplus账号1' );

 

posted @ 2019-11-28 22:01  弱水三千12138  阅读(175)  评论(0编辑  收藏  举报