开发者社区> 问答> 正文

mybatis中如果希望sql语句根据传入的参数取值变化,应该怎么处理?

mybatis中如果希望sql语句根据传入的参数取值变化,应该怎么处理?

展开
收起
李博 bluemind 2019-02-20 12:54:31 4245 0
3 条回答
写回答
取消 提交回答
  • 新人一枚

    < if test="usrName != null and userName != ''">

    and user_name concat('%',#{userName}, '%')

    < /if>
    需要的是这个?

    2019-07-17 23:28:43
    赞同 1 展开评论 打赏
  • 可以通过#{xxxx}或者${xxxx}设置变量

    #{xxx} 会自动做escape
    ${xxx} 只是字符串替换,有sql注入风险

    可以参考官方文档 http://www.mybatis.org/mybatis-3/dynamic-sql.html

    例子(mybatis的xml方式)

    <select id="selectOneById" resultType="Object">
      select id from test_table where id = #{id}
    </select>

    例子(mybatis的标注方式):

       @Select({
                "select id " 
                "from test_table where id = #{id}"
        })
        Object selectOneById(@Param("id") long id);
    2019-07-17 23:28:43
    赞同 展开评论 打赏
  • 是这个意思吗?

            and id = #{data.id}
        </if>
    2019-07-17 23:28:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载