Java学习 --- mybatisplus使用wrapper组装数据

一、mybatisplus使用wrapper组装数据

@SpringBootTest
public class wrapperTest {
    @Autowired
    private UserMapper userMapper;
    /**
     * 组装条件查询
     */
    @Test
    public void selectUserTest() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like("t_name", "n")
                .between("age", 18, 45)
                .isNotNull("email");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 组装排序查询
     */
    @Test
    public void selectUser() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("age")
        .orderByAsc("ids");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 组装删除功能
     */
    @Test
    public void deleteUser(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.isNull("email");
        int delete = userMapper.delete(wrapper);
        System.out.println(delete);
    }

    /**
     * 组装修改功能
     */
    @Test
    public void updateUser() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //组装条件
        wrapper.gt("age",20)
                .like("t_name","a")
                .or()
                .isNull("email");
        User user = new User();
        user.setName("老李");
        int update = userMapper.update(user, wrapper);
        System.out.println(update);
    }
    @Test
    public void updateUser01() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like("t_name","a")
                .and(i ->i.gt("age",20).or().isNull("email"));
        User user = new User();
        user.setName("小王");
        int update = userMapper.update(user, wrapper);
        System.out.println(update);
    }
    @Test
    public void updateUser02() {
        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.like("t_name","a")
                .and(i ->i.gt("age",20).or().isNull("email"));
        userUpdateWrapper.set("t_name","小霸王");
        int update = userMapper.update(null, userUpdateWrapper);
        System.out.println(update);
    }

    /**
     * 组装查询
     */
    @Test
    public void selectMap() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
         wrapper.select("t_name", "age", "email");
        List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
    }
    /**
     * 组装子查询
     */
    @Test
    public void  selectUserIn(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.inSql("ids","select ids from t_user where ids <= 10");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 模拟数据查询
     */
    @Test
    public void selectUser04(){
        String t_name = "n";
        Integer age = null;
        Integer ages = 20;
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like(StringUtils.isNotBlank(t_name),"t_name",t_name)
                .ge(age != null,"age",age)
                .le(ages != null,"age",ages);
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 使用LambdaQueryWrapper组装
     */
    @Test
    public void selectUser05(){
        String t_name = "n";
        Integer age = null;
        Integer ages = 20;
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.like(StringUtils.isNotBlank(t_name),User::getName,t_name)
                .ge(age != null,User::getAge,age)
                .le(ages != null,User::getAge,ages);
        List<User> userList = userMapper.selectList(lambdaQueryWrapper);
        userList.forEach(System.out::println);
    }
    /**
     *
     */
    @Test
    public void updateUser03(){
        LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.like(User::getName,"a")
                .and(i ->i.gt(User::getAge,20).or().isNull(User::getEmail));
        lambdaUpdateWrapper.set(User::getName,"老王").set(User::getEmail,"666@qq.com");
        int update = userMapper.update(null, lambdaUpdateWrapper);
        System.out.println(update);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 我推荐使用MyBatis-Plus的LocalDateTimeTypeHandler来处理日期和时间,它可以轻松地将LocalDateTime类型的数据存储到MySQL数据库,而且可以轻松地通过MyBatis-Plus的API获取上月的时间。 ### 回答2: 使用Mybatis-Plus查询上个月的时间可以按照以下步骤进行操作: 步骤1:首先,获取当前时间,并利用Java提供的Calendar类进行日期计算。可以使用以下代码获取当前时间并计算上个月的时间: ```java import java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.MONTH, -1); Date lastMonth = calendar.getTime(); System.out.println(lastMonth); } } ``` 步骤2:接下来,根据上个月的时间作为查询条件进行数据库查询。使用Mybatis-Plus进行查询时,可以通过Wrapper对象定义查询条件。具体的代码如下: ```java import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ... Date lastMonth = ...; // 上个月的时间 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.ge("create_time", lastMonth); // 查询大于等于上个月的时间 List<User> userList = userMapper.selectList(queryWrapper); ``` 这里的例子假设我们使用Mybatis-Plus框架进行用户表(User)的查询,create_time字段表示记录创建的时间。根据查询条件`create_time >= 上个月时间`,使用`selectList()`方法进行查询,并将结果保存在userList列表中。 请注意,具体的代码细节可能会因为数据库表以及实体类的定义而有所不同,请根据实际情况进行相应的调整。以上就是使用Mybatis-Plus查询上个月时间的方法。 ### 回答3: 在使用Mybatis-Plus查询上个月的时间,我们可以借助Java的日期时间类来完成。首先,我们需要获取当前日期的上个月时间,可以使用Java 8的日期时间API的`LocalDate`类来进行操作。下面是一个示例代码: ```java // 获取当前日期 LocalDate currentDate = LocalDate.now(); // 获取上个月的时间 LocalDate lastMonth = currentDate.minusMonths(1); // 获取上个月的起始时间和结束时间 LocalDate firstDayOfMonth = lastMonth.withDayOfMonth(1); // 上个月的第一天 LocalDate lastDayOfMonth = lastMonth.withDayOfMonth(lastMonth.lengthOfMonth()); // 上个月的最后一天 // 转换为需要的格式,如字符串、日期对象等 String firstDayOfMonthStr = firstDayOfMonth.toString(); String lastDayOfMonthStr = lastDayOfMonth.toString(); ``` 上述代码中,我们首先获取当前日期`LocalDate.now()`,然后通过`minusMonths(1)`方法减去一个月得到上个月的日期。接着,通过`withDayOfMonth(1)`方法获取上个月的第一天,`withDayOfMonth(lastMonth.lengthOfMonth())`方法获取上个月的最后一天。最后,根据需要将日期转换为字符串或日期对象即可。 在Mybatis-Plus中,可以使用`QueryWrapper`或`LambdaQueryWrapper`类组装查询条件,调用相应的查询方法查询数据库中符合条件的数据。结合上述获取的上个月时间,可以编写类似如下的代码: ```java QueryWrapper<Entity> queryWrapper = new QueryWrapper<>(); queryWrapper.between("create_time", firstDayOfMonth, lastDayOfMonth); List<Entity> resultList = entityMapper.selectList(queryWrapper); ``` 以上代码中,`QueryWrapper`对象`queryWrapper`用于设置查询条件,通过`between`方法指定`create_time`字段在上个月的范围内。最后,调用`selectList`方法执行查询,将符合条件的数据存入`resultList`中。 需要注意的是,以上代码只是示例,需要根据具体的数据表和实体进行相应的调整。同时,Mybatis-Plus还提供了更多强大的查询方法,可以根据具体需求选择合适的方法来完成查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值