java--spring boot查询本月数据xml语法

最近用spring的时候在xml里写了个逻辑,只查询这个月的所有数据。上网搜了半天,也很少有人能说清楚这个语法到底怎么写。

所以这里最后解决了,给大家科普一下:

首先在service里的写法,把要查询的条件放进map:

    @Override
    public float getSumMonthMoney(Integer userType, Integer billtype,String timeMonth) {
        Map<String,Object> value = new HashMap<String,Object>();
        value.put("userType",userType);
        value.put("billType",billtype);
        value.put("timeMonth",timeMonth);
        return userBillMapper.selectReportMonthMoneyInfo(value);
    }

然后是在dao层里的定义:

 float selectReportMonthMoneyInfo(Map<String, Object> param);
最后在mapper里,即xml文件中:

    <!--当月查询-->
    <sql id="ReportMonthConditionSql">
        <if test="timeMonth != null and timeMonth != ''">
            DATE_FORMAT(create_time,'%Y%M') = DATE_FORMAT(#{timeMonth},'%Y%M')
        </if>
        <if test="timeMonth == null or timeMonth == ''">
            DATE_FORMAT(create_time,'%Y%M') = DATE_FORMAT(CURDATE(),'%Y%M')
        </if>
    </sql>

    <!--用户当月查询-注意传递timeNonth=null-->
    <select id="getUserMonthIncome"  resultType="java.lang.Float">
        select
        COALESCE(SUM(money),0)
        from t_user_bill
        <where>
            ((bill_type = 1) or (bill_type = 8)) and
            user_type = #{userType,jdbcType=INTEGER}
            and user_id = #{userId,jdbcType=INTEGER}
            and <include refid="ReportMonthConditionSql"/>
        </where>
    </select>

成功地把这个月的资金总和求出来了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哎呦不错的温jay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值