mapper自动生成复杂表达式的多条件查询

import java.io.IOException;

import java.io.Reader;

import java.util.ArrayList;

import java.util.List;

 

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.apache.log4j.pattern.ClassNamePatternConverter;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

import cn.itcast.ssm.mapper.ItemsMapper;

import cn.itcast.ssm.po.ItemsExample;

 

public class Student {

 

    public static void main(String[] args) throws IOException {

 

        /*方式一  */

        ItemsExample itemsExample1 = new ItemsExample();

 

        itemsExample1.or().andIdEqualTo(5).andNameIsNotNull();

        itemsExample1.or().andPicEqualTo("xxx").andPicIsNull();

 

        List<Integer> fieldValues = new ArrayList<Integer>();

        fieldValues.add(8);

        fieldValues.add(11);

        fieldValues.add(14);

        fieldValues.add(22);

        itemsExample1.or().andIdIn(fieldValues);

        itemsExample1.or().andIdBetween(59);

 

        /*  方式二 criteria1与criteria2是or的关系 */

 

        ItemsExample itemsExample2 = new ItemsExample();

        ItemsExample.Criteria criteria1 = itemsExample2.createCriteria();

        criteria1.andIdIsNull();

        criteria1.andPriceEqualTo((float) 3);

 

        ItemsExample.Criteria criteria2 = itemsExample2.createCriteria();

        criteria2.andNameIsNull();

        criteria2.andIdGreaterThanOrEqualTo(5);

        itemsExample2.or(criteria2);

 

        //方式一和方式二是等价的

         

         

        // spring获取mapper代理对象

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

        ItemsMapper itemsMapper = (ItemsMapper) applicationContext.getBean("itemsMapper");

        itemsMapper.countByExample(itemsExample2);

 

        // 获取SqlSessionFactory

        String resource = "SqlMapConfig.xml";

        Reader reader = Resources.getResourceAsReader(resource);

        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);

        // 获取SqlSession

        SqlSession sqlSession = sqlMapper.openSession();

 

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatisplus是基于Mybatis的增强工具库,可以极大的简化Mybatis的使用和配置。要查询当天的数据,可以利用Mybatisplus提供的Wrapper(查询条件构造器)和Lambda表达式实现。 首先,需要获取当前日期的开始时间和结束时间,可以使用Java 8提供的LocalDateTime类来实现: LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); // 当天开始时间 LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); // 当天结束时间 接下来,通过Wrapper构造器构造查询条件,使用Lambda表达式进行条件拼接: // 实例化Wrapper QueryWrapper<Entity> wrapper = new QueryWrapper<>(); wrapper.lambda().ge(Entity::getCreateTime, todayStart) // 大于等于当天开始时间 .le(Entity::getCreateTime, todayEnd); // 小于等于当天结束时间 其中,getCreateTime是实体类中表示创建时间的属性名。如果有其他条件,可以在lambda中继续添加条件。 最后,使用Mybatisplus提供的baseMapper进行查询: List<Entity> entityList = baseMapper.selectList(wrapper); 其中,baseMapper是Mybatisplus为每个实体类自动生成Mapper接口。selectList方法会返回符合条件的所有实体对象,可以根据需求进行进一步处理。 至此,就可以利用Mybatisplus查询当天数据了,通过Wrapper和Lambda表达式的使用,不仅能够方便地构造复杂的查询条件,同时也更加安全和可读性更强。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值