mybatis plus时间判断问题

 更新时间:2024年09月20日 09:12:09   作者:acgchan  
在MyBatisPlus中,时间判断可以通过XML转义的方式实现,例如使用>、<、<>、>=、<=进行比较,这种方法涉及到SQL符号的转义,确保查询语句的安全性和准确性,特别是在处理大于、小于和等于等逻辑时,正确的转义能够防止SQL注入等安全问题

mybatis plus时间判断

  <where>
            <if test="startTime != null">
                and eventtimestamp &gt;= #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and eventtimestamp &lt; #{endTime} ,INTERVAL 1 DAY)
            </if>
        </where>

方法一:使用xml 原生转义的方式进行转义#

  • 字符名称    sql符号    转义字符
  • 大于号    >    &gt;
  • 小于号    <    &lt;
  • 不等于    <>    &lt;&gt;
  • 大于等于号    >=    &gt;=
  • 小于等于号    <=    &lt;=
  • 与    &    &amp;
  • 单引号    '    &apos;
  • 双引号    "    &quot;
<if test="startTime != null and endTime != null">
                and change_time between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}
            </if>

mybatis plus如何进行时间日期的比较

获取数据库中跟当前日期相等的记录时,还是调用eq方法,所以实体类包括数据库中的类型是Date,而不是DateTime,否则只能获取相同时刻的数据。

pulbic void main(){
	LocalDate now = LocalDate.now();
	LambdaQueryWrapper<Ebbinghaus> queryWrapper = new LambdaQueryWrapper();
	queryWrapper.eq(Ebbinghasu.getCreateTime,now);
    ebbinghuas.list(queryWrapper);
}

Mybatis-Plus的时间比较是基于数据库的函数进行的,而不是字符串的比较。在Mybatis-Plus中,可以使用Wrapper对象的ge、gt、le、lt方法来进行时间的比较。

这些方法会根据数据库的不同,生成相应的SQL语句来实现时间的比较操作。所以,不需要将时间转换为字符串进行比较。

如果要进行天数的比较最好还是通过LocalDate做为数据的类型,而不是LocalDateTime,否则比较的也只是大于当前时刻,大于等于当前时刻。

如果对数据的时刻值有操作需求,可以进行以下设置:

@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;

数据库中对应的字段类型设置为date,而不是datetime,这样即可以比较天数,又可以在时刻上有更为丰富的操作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用SpringData同时访问MySQL和Neo4j数据库

    使用SpringData同时访问MySQL和Neo4j数据库

    本文通过使用SpringData在SpringBoot中配置MySQL和Neo4j双数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • java通过Jsoup爬取网页过程详解

    java通过Jsoup爬取网页过程详解

    这篇文章主要介绍了java通过Jsoup爬取网页过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 使用spring+maven不同环境读取配置方式

    使用spring+maven不同环境读取配置方式

    这篇文章主要介绍了使用spring+maven不同环境读取配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • SpringBoot 内置工具类的使用

    SpringBoot 内置工具类的使用

    本文主要介绍了SpringBoot 内置工具类的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java使用jar命令配置服务器端口的完整指南

    Java使用jar命令配置服务器端口的完整指南

    本文将详细介绍如何使用java -jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助
    2025-08-08
  • spring解决循环依赖

    spring解决循环依赖

    这篇文章主要介绍了spring如何解决循环依赖,帮助大家更好的理解和使用spring框架,感兴趣的朋友可以了解下
    2020-09-09
  • 一篇带你入门Java垃圾回收器

    一篇带你入门Java垃圾回收器

    垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别
    2021-06-06
  • Java多线程开发工具之CompletableFuture的应用详解

    Java多线程开发工具之CompletableFuture的应用详解

    做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,本文就来聊聊它的应用吧
    2023-03-03
  • nacos单机版启动失败问题以及解决

    nacos单机版启动失败问题以及解决

    这篇文章主要介绍了nacos单机版启动失败问题以及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 在Java中实现二叉搜索树的全过程记录

    在Java中实现二叉搜索树的全过程记录

    二叉树包含了根节点,孩子节点,叶节点,每一个二叉树只有一个根节点,每一个结点最多只有两个节点,左子树的键值小于根的键值,右子树的键值大于根的键值,下面这篇文章主要给大家介绍了关于如何在Java中实现二叉搜索树的相关资料,需要的朋友可以参考下
    2022-03-03

最新评论