mybatis使用注解SQL语句的方式 在增删改查时还是很方便的
但是复杂SQL多了之后就不太友好了
我这里写了一个多表的SQL 废了好半天的劲才改出来
先给大家看错误的语句
怎么调都不好用 就是报错 后来我看了好多文章
@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>
标签中间的语句 ""
空字符串等要写成转义字符的形式不然会报错 希望大家有特殊字符时不要踩坑!!!!!
@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);
需要转义的字符
< <
> >
<> <>
& &
' '
" "
最后 :我的语句写的可能不太规范 还需要改进 希望大家好好学学SQL 不要像小编一样 !!! o(╥﹏╥)o