推荐网站建设服务器,网站建设高级,网页设计软件视频教程,有哪些搜索引擎网站Mybatis-Plus实现CRUD 1 Insert增加2 ID生成策略3 Delete删除4 逻辑删除5 Update修改6 Select查询 Mybatis-Plus实现CRUD 通用 CRUD 封装**BaseMapper (opens new window)**接口#xff0c;为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器参数 … Mybatis-Plus实现CRUD 1 Insert增加2 ID生成策略3 Delete删除4 逻辑删除5 Update修改6 Select查询 Mybatis-Plus实现CRUD 通用 CRUD 封装**BaseMapper (opens new window)**接口为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器参数 Serializable为任意类型主键 Mybatis-Plus不推荐使用复合主键约定每一张表都有自己的唯一id 主键对象 Wrapper为 条件构造器 1 Insert增加 插入一条记录 int insert(T entity); //测试增加
Test
public void testInsert(){User user new User(null,jack,30,jackqq.com);userMapper.insert(user);
}此时代码会出现异常。因为User类并没有设置ID那么MP会使用ID生成策略自动生成一个ID。 这个ID是由雪花算法得到的类型为Long类型而实体类在中ID为Integer类型 2 ID生成策略 通过**TableId(type IdType.AUTO)** 注解进行指定 主键类型参数说明AUTO(0)数据库ID自增数据库使用自增NONE(1)该类型为未设置主键类型(将跟随全局)INPUT(2)用户手动输入IDID_WORKER(3)全局唯一ID (idWorker )UUID(4)全局唯一ID (UUID)ID_WORKER_STR(5)符串全局唯一ID (idWorker 的字符串表示)
3 Delete删除 根据 ID 删除 int deleteById(Serializable id) 删除根据ID 批量删除 int deleteBatchIds(Param(Constants.COLLECTION) Collection? extends Serializable idList) //测试删除
Test
public void testdeleteById(){userMapper.deleteById(6);
}//测试批量删除
Test
public void testdeleteBatchIds(){Integer[] ids {1,2,3,4};userMapper.deleteBatchIds(Arrays.asList(ids));
}4 逻辑删除 在开发中有些数据不能直接从数据库中进行删除。用户删除数据有时候管理员还需要查看!!! 那么在实际的开发中可以实现逻辑删除 实现 在数据库中添加deleted字段(0表示未删除、1表示删除)在实体上添加TableLogic注解 TableLogic
private Integer deleted;//测试逻辑删除
Test
public void testLogicDeleteById(){userMapper.deleteById(1);
}# 执行sql语句为
UPDATE user SET deleted1 WHERE id? AND deleted0添加逻辑删除属性后查询中都会自动带上条件where deleted 0 5 Update修改 根据 ID 修改参数为实体类对象 int updateById(Param(Constants.ENTITY) T entity); //测试修改
Test
public void testUpdateById(){User user new User(5,rose,30,roseqq.com);userMapper.updateById(user);
}6 Select查询 根据 ID 查询 T selectById(Serializable id); 查询根据ID 批量查询 ListT selectBatchIds(Param(Constants.COLLECTION) Collection? extends Serializable idList); 根据 entity 条件查询全部记录 ListT selectList(Param(Constants.WRAPPER) WrapperT queryWrapper); 根据 Wrapper 条件查询总记录数 Integer selectCount(Param(Constants.WRAPPER) WrapperT queryWrapper); //测试根据id查询
Test
public void testselectById(){User user userMapper.selectById(1);System.out.println(user);
}//查询根据ID 批量查询
Test
public void testselectBatchIds(){ListUser userList userMapper.selectBatchIds(Arrays.asList(1, 2, 3, 4));userList.forEach(System.out::println);
}//根据 entity 条件查询全部记录
Test
public void testselectList(){ListUser userList userMapper.selectList(null);userList.forEach(System.out::println);
}//根据 Wrapper 条件查询总记录数
Test
public void testselectCount(){Integer count userMapper.selectCount(null);System.out.println(count);
}