idea---mybits使用criteria 进行1、or查询以及相等 2、模糊查询 3、时间在某个时间段内 并举例说明如何使用

进行select * from A where (xx=a and xx=b) or (xx=c and xx=d)的查询操作

xx可以为A表中的任意属性,前面括号里的xx可以和后面括号的相同也可以不同

具体写法如下:
OrderEntityExample example=new OrderEntityExample();

cn.jiliangqiju.entity.b2b.OrderEntityExample.Criteria criteria = example.createCriteria();

criteria.andCreatEqualTo(userid);

criteria.andIdEqualTo(id);

cn.jiliangqiju.entity.b2b.OrderEntityExample.Criteria criteria2 = example.createCriteria();

criteria2.andNoEqualTo(no);

criteria2.andStatusEqualTo(status);

example.or(criteria2);//这个是重点

执行的sql是select* from order where (id =id and creat =creat)or(no=no and status=status)

在使用selectByExample时,可以设置查询条件的
1、相等
2、模糊查询
3、时间在某个时间段内
下面举例说明如何使用:

public List getPageList(SysHospitalizationQuery sysHospitalizationQuery, String sort, String sortOrder) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(getDateFormat());
Date todayDate = getTodayDate();
List list = sysHospitalizationDao.selectByExample(getExample(sysHospitalizationQuery)).stream().collect(Collectors.toList());
}

private Example getExample(SysHospitalizationQuery sysHospitalizationQuery) {
Example example = new Example(SysHospitalization.class);
Example.Criteria criteria = example.createCriteria();

    //模糊查询
    if (sysHospitalizationQuery.getpName() != "") {
        criteria.andLike("pName", "%" + sysHospitalizationQuery.getpName() + "%");
    }
    //相等查询
    if (sysHospitalizationQuery.gethId() != "") {
        criteria.andEqualTo("hId", sysHospitalizationQuery.gethId());
    }
    if (sysHospitalizationQuery.gethArea() != 0) {
        criteria.andEqualTo("hArea", sysHospitalizationQuery.gethArea());
        ;
    }
    //筛选时间--在某个时间段内
    if (sysHospitalizationQuery.gethDate() != "") {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date dateBegin = null;
        Date dateEnd=null;
        try {
            dateBegin = sdf.parse(sysHospitalizationQuery.gethDate());
            dateEnd = sdf.parse(sysHospitalizationQuery.gethDate());
        } catch (ParseException e) {
            e.printStackTrace();
        }

        Calendar cal = Calendar.getInstance();
        cal.setTime(dateEnd);
        cal.add(Calendar.DATE, 1);
        criteria.andBetween("hDate",dateBegin,new Date());
    }
    return example;
}

你可能感兴趣的:(java,mybatis)