解析
这个场景有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 < #{date} AND create_time > #{date1}
</select>
测试:
数据库添加一条测试数据,
浏览器输入:http://localhost:9527/SqlTest
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
以上两种方法都可以实现这个应用场景,当然还有其他方法,可以互相交流交流,谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119866.html