前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis注解sql使用判断if踩坑

mybatis注解sql使用判断if踩坑

作者头像
暴躁的程序猿
发布2022-03-23 16:54:50
4310
发布2022-03-23 16:54:50
举报

mybatis使用注解SQL语句的方式 在增删改查时还是很方便的

但是复杂SQL多了之后就不太友好了

我这里写了一个多表的SQL 废了好半天的劲才改出来

先给大家看错误的语句 怎么调都不好用 就是报错 后来我看了好多文章

代码语言:javascript
复制
@Select("<script>" +"select u.*,z.dname,group_concat(r.name) rnames" +
           "from user u " +
           "left join ztree z on u.bid = z.id" +
           "left join tsturole m on u.id = m.sid" +
           "left join trole r on m.rid = r.id" +
           "where 1=1" +
           "<if test='bid!= null and bid!='' '>and u.bid=#{bid} </if>" +
           "<if test='condition !=null and condition != '' ' >and ${condition} = #{content}</if>" +
           "group by username" +
           "</script>")
    List<User> queryStudents(@Param("bid") String bid,@Param("condition")String condition ,@Param("content") String content);

发现 SQL之要加上换行 不然SQL会连在一起 相信大家 在控制台也看的到 但是if语句怎么都不好用 后来才知道 <script>标签中间的语句 ""空字符串等要写成转义字符的形式不然会报错 希望大家有特殊字符时不要踩坑!!!!!

代码语言:javascript
复制
@Select("<script>" +"select u.*,z.dname,group_concat(r.name) rnames\n" +
           "from user u " +
           "left join ztree z on u.bid = z.id\n" +
           "left join tsturole m on u.id = m.sid\n" +
           "left join trole r on m.rid = r.id\n" +
           "where 1=1" +
           "<if test='bid!= null and bid!=\"\" '>and u.bid=#{bid} </if>" +
           "<if test='condition !=null and condition != \"\" ' >and ${condition} = #{content}</if>" +
           "group by username" +
           "</script>")
    List<User> queryStudents(@Param("bid") String bid,@Param("condition")String condition ,@Param("content") String content);
    需要转义的字符
    &lt;       < 
    &gt;       >  
    &lt;&gt;   <>
    &amp;      & 
    &apos;      '
    &quot;      "

最后 :我的语句写的可能不太规范 还需要改进 希望大家好好学学SQL 不要像小编一样 !!! o(╥﹏╥)o

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档