增删改查
参考:
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); } }
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); }
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); }
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); }
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); }
DELETE FROM user WHERE REFID IN ( '1172035940903157762' , '1172047016717934593' );
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); }
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); }
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); }
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' );