业务需求:在前端界面选择开始时间、结束时间,后台根据拿到的开始、结束时间去数据库中查询该段时间的数据集返回给前端界面。

1、前端我使用的是elementui和vue框架,最好是在前端界面进行一个简单的校验规则,对比一下开始时间和结束时间的大小,校验的代码很简单,直接在触发查询按钮的函数前面加入校验即可。代码如下:

if(this.stafpsnclctdetldformquery.starttime >= this.stafpsnclctdetldformquery.endtime){
          this.$message.info(
          '开始时间不能大于结束,请重新输选择'
          )
        }else{
          //进行查询操作
          )

2、这段代码直接是serviceimpl中的实现类,使用的是分页查询,具体的参数解释如下,其中最重要的就是ge和le方法:

/**
     * 分页查询信息
     * @param pagenumber 页码
     * @param pagesize 每页数量
     * @param sort 正序/倒序
     * @param order 排序字段-属性名
     * @param querydto 参数 dto 对象,直接将前端传过来的数据封装成一个对象,之后再到对象里面进行取值
     * @return 分页对象
     */
    @override
    public map<string, object> querybydtopage(int pagenumber, int pagesize, string sort, string order, querydto querydto ) {
        //调用中台或db
    	iquery<querydto > page = queryresult.of(pagenumber, pagesize, sort, order);
        ipage<querydto > da = dvidxstafpsnclctdetlddao.selectpage(page,new querywrapper<querydto >()
            .and(toolutil.isnotempty(querydto .getindexname()),wrapper -> wrapper.like("index_name",querydto .getindexname()))
            .and(toolutil.isnotempty(querydto .getstarttime()),wrapper -> wrapper.ge("start_time",querydto .getstarttime()))
            .and(toolutil.isnotempty(querydto .getendtime()),wrapper -> wrapper.le("end_time",querydto .getendtime()))
                .orderbyasc("start_time")
        );
    	list<querydto > list = querydtoassembler.toquerydtolist(da.getrecords());

    	map<string,object> rs = new hashmap<string, object>();
    	rs.put("pagenumber", pagenumber);
    	rs.put("pagesize", pagesize);
    	rs.put("total", da.gettotal());
    	rs.put("result", list );
    	return rs;	    	
	}

下面是mybatis_plus官网中的解释,不懂得大家可以直接点击链接去官网查看:mybatis-plus官网

到此,功能实现。

其实刚开始写这个功能的时候没想到实现起来这样简单,查了网上许多教程都没有思路,之后直接就去找到mybatis-plus官网,看了api文档,将数据传进去功能就实现了。

到此这篇关于mybatis-plus根据时间段去查询数据的实现示例的文章就介绍到这了,更多相关mybatis-plus 时间段查询内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!