mybatis foreach 错误_MyBatis 动态SQL where/if/choose/bind介绍
当我们需要写复杂的 SQL 语句,往往需要拼接,而拼接 SQL ,稍微不注意,由于引号,空格等缺失可能都会导致错误。 那么怎么去解决这个问题呢?我们可以使用mybatis的 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性...
当我们需要写复杂的 SQL 语句,往往需要拼接,而拼接 SQL ,稍微不注意,由于引号,空格等缺失可能都会导致错误。
那么怎么去解决这个问题呢?
我们可以使用mybatis的 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性的同时,也大大提高了开发人员的效率。
1.where+if
这个“where”标签会知道如果它包含的标签中有返回值的话,它就插入一个‘where’。此外,如果标签返回的内容是以AND 或OR 开头的,则它会剔除掉。
在以上实例中,我们就是使用where-if语句进行多参数的传递,下面我们再演示传一个参数的时候。
我们发现,当第二个参数是空值时,这里where之后的条件语句也少了一个。
2.where+choose
有时候,我们不想用到所有的查询条件,只想选择其中的一个,查询条件有一个满足即可,使用 choose 标签可以解决此类问题,类似于 Java 的 switch 语句
这是在choose语句传递一个参数时的情况。那么当我们传递两个参数是呢?
当我们传递两个参数时,他也会只获取其中一个参数。这和我们javas的witch一样,当第一次判断成功时,之后的代码就不会再走了。
3.where+bind
bind可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值
bind语句一般用于sql的模糊查询。
就先介绍这三个吧,拜拜。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)