SSM 范围查找以及分页

使用ssm编写的一个功能

输入机器编号,开始时间,结束时间,查找

实现过程中,当机器编号输入一个不存在的值,或者开始时间空着,都会报错,错误显示是sql语句错误

mybatis的xml文件中,sql语句如下:

<select id="findByRowBounds" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yujing_record
        <where>
            <if test="macid != null  and macid !=''">
                and macid like concat('%',#{macid},'%')
            </if>
            <if test="start != null and start !=''">
                and time <![CDATA[>]]>
                #{start}
            </if>
            <if test="end != null and end !=''">
                and time <![CDATA[<]]>
                #{end}
            </if>
        </where>
        order by time desc limit #{sindex},#{size}
    </select>

Liu__
浏览 3354回答 2
2回答

Liu__

按照 <if end != null and end !=“”>                and time   #{end} </if>的话运行报错

sunbohan00

if判断语句的问题,可能是我见得少吧,你这么写的我确实没见过,当空值的时候,if判断没有生效,所以空值进行搜索会报错。试试这样 <if end != null and end !=“”>                and time   #{end} </if>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
MySQL