关于MyBatis中String和varchar进行大小比较(均保存的数字)

本文介绍了一个使用MyBatis实现复杂条件查询的例子,包括自定义Java Bean、XML映射文件配置及SQL语法技巧等内容。重点讲解了如何处理大于小于号及数据类型的转换问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务场景:

①bean

public class ProductParam extends BaseQuery {

    private static final long serialVersionUID = 3115760968824884833L;

    /*
     * 贷款金额
     */
    private String amount;

    /*
     * 贷款期限
     */
    private String limitTime;

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getLimitTime() {
        return limitTime;
    }

    public void setLimitTime(String limitTime) {
        this.limitTime = limitTime;
    }

}

②SqlMap

 <select id="queryProductListPageByParam" parameterType="com.hundsun.trade.product.vo.ProductParam"  resultMap="ProductFullInfoResultMap">
        SELECT
        <include refid="ProductInfoSearchColumn" />
        FROM
        DK_PLATFORM_PRODUCT dpp 
        LEFT JOIN DK_PLATFORM_INFO dpi ON dpp.PLATFORM_CODE=dpi.PLATFORM_CODE 
         <where>

            <if test="platformCode != '' and platformCode != null">
                AND dpp.PLATFORM_CODE = #{platformCode}
            </if>
            <if test="platformName != '' and platformName != null">
                AND dpi.PLATFORM_NAME LIKE
                CONCAT('%',#{platformName},'%')
            </if>
            <if test="productName != '' and productName != null">
                AND dpp.PRODUCT_NAME LIKE
                CONCAT('%',#{productName},'%')
            </if>
            <if test="amount != '' and amount != null">
                AND <![CDATA[CONVERT(dpp.PRODUCT_UP_NUM,SIGNED) > #{amount,jdbcType=INTEGER} and CONVERT(dpp.PRODUCT_DOWN_NUM,SIGNED) < #{amount,jdbcType=INTEGER}]]>
            </if>
             <if test="limitTime != '' and limitTime != null">
                AND <![CDATA[CONVERT(dpp.PRODUCT_REPAYMENT_UP_TIME,SIGNED) > #{limitTime,jdbcType=INTEGER} and CONVERT(dpp.PRODUCT_REPAYMENT_DOWN_TIME,SIGNED) < #{limitTime,jdbcType=INTEGER}]]>
            </if>

        </where>
    </select>

③表结构
这里写图片描述

④总结
1、MyBatis中不能直接使用’>’,’<’等等符号。
方法一:使用
方法二:使用转义<,>,&'"

2、需要将表结构的varchar类型转换为INTEGER,Bean的String类型转换为SIGNED,再比较大小

记录下来,引以为鉴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值