欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis场景问题解决1

程序员文章站 2022-07-15 13:26:43
...

Mybatis下数据库条件 - - - 场景问题

场景描述:假设数据表中有开始时间(startTime)、持续时长(loadTime),实现问题获取结束的数据。

此场景中我们仅能获取到的是当前的时间(nowTime),那么实现上述问题,我的是想方案是:

nowTime >= startTime + loadTime;

本次使用的数据库是Mysql,字段startTime的类型datetime类型;字段loadTime的类型是Int类型。实现本方案我是使用Mysql的函数:DATE_ADD(date,INTERVAL expr type)函数是向日期添加指定的时间间隔。

所以在Mybatis中的数据库查询中就可以使用

<if test="startTime != null" >
    AND DATE_ADD( startTime, INTERVAL loadTime DAY ) <![CDATA[<=]]> #{nowTime,jdbcType=TIMESTAMP}
</if>

在此例中我们只需获取当前时间即可;以上就是本次场景问题我的一个处理方案。

在上面代码中有

<![CDATA[<=]]>    

由于mybatis的sql查询都是在xml文件中的,直接使用’<=’会被转义,所以使用此方法阻止转义,当然mybatis中也有其他方案,此种方法仅作参考。