码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis一个字段传2个值及日期yyyy-mm-dd比较

时间:2019-10-17 01:26:57      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:修改   art   自己的   star   日期   实现   dao   slist   sql   

最近刚换工作,今天在工作中遇到了2个问题,如标题所述(mybatis框架)。前一个是直接百度copy过来的。再将代码复制一下:

service层:

List<String> years = new ArrayList();
years.add(currentYear);
years.add(lastYear);
List<XXXEntity> XXXList = XXXDAO.selectTime(type,years);

dao层:

public List<XXXEntity> selectTime(
@Param("type") Long type,List<String> yearsList);

mapper:

<select id="selectTime" parameterType="java.util.List" resultMap="entity">
        select * from table where
        type = 1
        and year in
        <foreach item="item" collection="yearsList" separator="," open="(" close=")" index="">           
            #{item, jdbcType=VARCHAR}
<!--我list里放的是String类型的值,所以jdbcType=VARCHAR,注意collection的值与dao层参数list对象名保持一致。>
        </foreach>
</select>

好了,这就是一个字段传2个值的方法,用list封装后,xml文件里复制过去注意的地方改一下就好了。

 

第二个问题:我要拿到一个时间去判断它是否在一个时间段内。时间和时间段取值为yyyy-mm-dd,判断精确到日,不要时分秒,网上查了一些资料,自己试了改改了试终于实现了,代码如下:

public  Boolean isEffectiveDate(Date currentTime, Date startTime, Date endTime) {

        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        String current=sd.format(currentTime);
        String start=sd.format(startTime);
        String end=sd.format(endTime);
        if(java.sql.Date.valueOf(current).after(java.sql.Date.valueOf(start)) &
                java.sql.Date.valueOf(current).before(java.sql.Date.valueOf(end))){
            return true;
        }else{
            return false;
        }
    }

看着没几行,弄了很长时间,Date类型真心不熟悉,这段代码反复修改、调试、优化,可以直接copy过去用(注意Date值的格式都是yyyy-mm-dd)。

是自己工作经验的一个总结,同时也是希望贡献自己的一份力,能帮助到更多人。感谢。

 

mybatis一个字段传2个值及日期yyyy-mm-dd比较

标签:修改   art   自己的   star   日期   实现   dao   slist   sql   

原文地址:https://www.cnblogs.com/caihouzi/p/11689441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!