实际应用场景——查询一张表1分钟添加了多少条数据

导读:本篇文章讲解 实际应用场景——查询一张表1分钟添加了多少条数据,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

解析

这个场景有2种实现方式:一种需要写SQL语句,一种不需要写SQL,逻辑都一样

1.可以用SQL语句来实现

SQL语句

SELECT * FROM `表名` WHERE  (创建时间) <(小于) #{当前时间}  AND (创建时间) >(大于) #{当前时间减一分钟}

代码

controller

    @GetMapping("/SqlTest")
    public AjaxResult SqlTest() {
        AjaxResult ajax = new AjaxResult().success();
        //时间格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //当前时间
        Date date = new Date();
        //当前时间减去1分钟
        Date date1 = new Date(date.getTime() - 60000);
        //查询像数据集合
        List<People> list = peopleMapper.selectByDate(date, date1);
        ajax.put("size", list.size());
        ajax.put("data", list);
        return ajax;
    }

mapper

   List<People> selectByDate(@Param("date") Date date, @Param("date1") Date date1);

注意:

mapper如果有多个参数需要加上@Param()注解

mapper.xml

<select id="selectByDate" resultType="com.thk.domain.People">
 SELECT * FROM `people` WHERE create_time &lt; #{date}  AND create_time &gt; #{date1}
</select>

测试:

数据库添加一条测试数据,

实际应用场景——查询一张表1分钟添加了多少条数据

浏览器输入:http://localhost:9527/SqlTest

实际应用场景——查询一张表1分钟添加了多少条数据

 2.不写SQl的做法

因为项目集成了Mbatis-Plus,可以利用里面的方法,selectList()

代码

controller

@GetMapping("/CodeTest")
    public AjaxResult CodeTest() throws IOException {
        AjaxResult ajax = AjaxResult.success();
        //接收对象
        ArrayList<People> l = new ArrayList<>();
        //查询全部数据
        List<People> list = peopleMapper.selectList(null);
        //时间格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //当前时间
        Date date = new Date();
        //当前时间前一分钟时间
        Date beforeDate = new Date(date.getTime() - 60000);
        list.forEach(r -> {
            //判断一个时间是否在两个时间之间
            if (dateUtils.ifDate(beforeDate, date, r.getCreateTime())) {
                //如果在这个时间段,添加到另一个List中
                l.add(r);
            }
        });
        //设置返回数量
        ajax.put("size", l.size());
        //设置返回数据
        ajax.put("data", l);
        return ajax;
    }

工具类

 /**
     * 判断一个时间是否在另外两个时间段之内
     *
     * @param startDate   开始时间
     * @param endDaate    结束时间
     * @param currentDate 当前时间
     * @return
     */
    public boolean ifDate(Date startDate, Date endDaate, Date currentDate) {
        long time = startDate.getTime();
        long time1 = endDaate.getTime();
        long time2 = currentDate.getTime();
        if (time2 > time && time2 < time1) {
            return true;
        } else {
            return false;
        }
    }

测试:浏览器输入:http://localhost:9527/CodeTest

实际应用场景——查询一张表1分钟添加了多少条数据

以上两种方法都可以实现这个应用场景,当然还有其他方法,可以互相交流交流,谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119866.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!