mybatis中如果希望sql语句根据传入的参数取值变化,应该怎么处理?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

李博 bluemind 2019-02-20 12:54:31 1894

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

SQL Java 数据库连接 mybatis
分享到
取消 提交回答
全部回答(3)
  • gaoshouma
    2019-07-17 23:28:43

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

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

    < /if>
    需要的是这个?

    1 0
  • willkan
    2019-07-17 23:28:43

    可以通过#{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);
    0 0
  • ~天空~
    2019-07-17 23:28:43

    是这个意思吗?

            and id = #{data.id}
        </if>
    0 0
添加回答
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题