@Test publicvoidtestDelete(){ //根据主键id删除 int res = userMapper.deleteById(1509495136467660801L); System.out.println("res:"+res); }
@Test publicvoidtestDelete(){ //根据map条件删除 Map<String,Object> map = new HashMap<>(); map.put("name", "张三"); int res = userMapper.deleteByMap(map); System.out.println("res:"+ res); }
@Test publicvoidtestDelete(){ //批量删除 List<Long> list = Arrays.asList(1L, 2L); int res = userMapper.deleteBatchIds(list); System.out.println("res:"+ res); }
修改功能
1 2 3 4 5 6 7 8 9
@Test publicvoidtestUpdate(){ User user = new User(); user.setId(4L); user.setName("李四"); //根据id修改 int res = userMapper.updateById(user); System.out.println("res:"+ res); }
查询功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14
@Test publicvoidtestSelect(){ //根据单一id查询 User user = userMapper.selectById(4L); System.out.println(user); //多个id查询 List<User> list = userMapper.selectBatchIds(Arrays.asList(3L, 4L)); list.forEach(System.out::println); //根据条件map查询 HashMap<String, Object> map = new HashMap<>(); map.put("name", "李四"); List<User> users = userMapper.selectByMap(map); users.forEach(System.out::println); }
自定义功能
完全同MyBatis:
在Mapper接口中定义方法
在项目resources.mapper文件夹下创建对应的XXXmapper.xml
编写对应sql
通用Service接口
说明:
通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行remove 删除list 查询集合 page 分页 前缀命名方式区分 Mapper层避免混淆,
泛型 T 为任意实体对象
建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService继承 Mybatis-Plus提供的基类
@Autowired private UserService userService; //获取总记录数 @Test publicvoidtestGetCount(){ long count = userService.count(); System.out.println("总记录数:"+count); } //批量插入 @Test publicvoidtestBathAdd(){ List<User> list = new ArrayList<>(); for (int i = 1; i <= 10; i++) { User user = new User(); user.setName("李"+i); user.setAge(20+i); list.add(user); } userService.saveBatch(list); } }
@Test publicvoidtest07(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); //使用子查询查询id小于等于100的用户信息 wrapper.inSql("id", "select id from user where id <= 100"); List<User> list = userMapper.selectList(wrapper); list.forEach(System.out::println); }
@Test publicvoidtest02(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); //按照年龄降序排序若年龄相同按照id升序排序 wrapper.orderByDesc("age").orderByAsc("id"); List<User> list = userMapper.selectList(wrapper); list.forEach(System.out::println); }
删除条件
1 2 3 4 5 6 7 8
@Test publicvoidtest03(){ //删除邮箱为null的用户 QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.isNull("email"); int i = userMapper.delete(wrapper); System.out.println("res:"+i); }
@Test publicvoidtest04(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); //将年龄大于20且用户名包含有a或者邮箱为null的用户信息进行修改 wrapper.gt("age", 20) .like("name", "a") .or() .isNull("email"); User user = new User(); user.setName("张四"); int i = userMapper.update(user, wrapper); System.out.println("res:"+i); }
@Test publicvoidtest05(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); //将用户名包含有a并且(年龄大于20且或者邮箱为null)的用户信息进行修改 wrapper.like("name", "a") .and(i -> i.gt("age", 20).or().isNull("email")); User user = new User(); user.setName("张四"); int i = userMapper.update(user, wrapper); System.out.println("res:"+i); }
使用UpdateWrapper
1 2 3 4 5 6 7 8 9 10
@Test publicvoidtest08(){ //将用户名包含有a并且(年龄大于20且或者邮箱为null)的用户信息进行修改 UpdateWrapper<User> wrapper = new UpdateWrapper<>(); wrapper.like("name", "a") .and(i -> i.gt("age", 20).or().isNull("email"));; wrapper.set("name", "大王").set("email", "1369281736@qq.com"); int i = userMapper.update(null, wrapper); System.out.println("res:"+i); }