MyBatis中如何计算数值

MyBatis中如何计算加减乘除:

先来看一下mysql中的写法:

update table set
 bean = (case when FLOOR(((bean / 400) * 675)) > 5000 then 5000 else FLOOR(((bean / 400) * 675)) end)
        where DATE_TIME = '2021-02-05'

这里的FLOOR是舍小数位,向下取整。

再来看一下MyBatis的写法:

<update id="updateDetailAwardBean" parameterType="java.util.Map">
        update table set
            bean = (case when FLOOR(((bean / ${param.guessBeanCount}) * ${param.sumPrizePool})) > 5000 then 5000 else FLOOR(((bean / ${param.guessBeanCount}) * ${param.sumPrizePool})) end)
        where DATE_TIME = #{param.currentDate,jdbcType=VARCHAR}
    </update>

这里需要注意的是传入参数的#和$的用法。
尝试过用#传入参数指定jdbcType=INTEGER,不好使,只能写$

或者用<![CDATA[]]>将代码写入中括号里面。这样就会被认为是纯文本。

以上就是MyBatis中计算数值的方式,感谢各位观看,如果有不对的地方还请各位大佬指教。

MyBatis计算参数时有两种方式。第一种是将参数放在一个map集合,以arg0,arg1...或param1,param2...为键,以参数为值。可以通过#{}或${}以键的方式访问值。需要注意的是,使用${}时需要注意单引号的问题。第二种方式是使用@Param注解命名参数,此时MyBatis会将这些参数放在一个map集合,以@Param注解的值或param1,param2...为键,以参数为值。同样可以通过#{}或${}以键的方式访问值,也需要注意${}的单引号问题。在MyBatis的写法,可以使用case语句进行参数计算,如将参数bean除以param.guessBeanCount再乘以param.sumPrizePool,并根据条件进行判断和赋值。 #### 引用[.reference_title] - *1* *2* [Mybatis获取参数](https://blog.csdn.net/qq_57818853/article/details/128650137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MyBatis如何计算数值](https://blog.csdn.net/qq_43040108/article/details/114218025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值