Mybatis对于trim的运用
普通一般在mapper.xml的查询语句都是用where去拼接,基本是用不到trim,trim主要针对可以有很多,where能实现的,trim都可以实现,where实现不了的,trim也都可以实现
trim标签一共有4个属性prefix,prefixOverrides,suffix,suffixOverrides
第一个是预备固定的意思,是针对语句的最开始,就是当你trim中的动态sql全部执行拼接完毕时,他会在你这个sql语句的最前端加上这个属性中的属性值
第二个是预备固定重写的意思,也叫覆盖,和prefix意思相反,他会在你trim中的sql全部执行拼接完毕时,会以prefixOverrides中的属性值将sql语句中最前面的删掉,如果拼接完的sql语句是where and instr(),而你prefixOverrides中的属性值是and,最前面的sql是where,则不会删掉,如果是and instr(),则是将最前面的and删掉
第三个suffix是sql语句的最后面添加
第四个就是suffixOverrides,那就是sql语句的最后面覆盖
举例:
<trim prefix=”where” suffixOverrides=”and”>
If(name != null and name != ‘’>
and instr(columnname,#{columnvvalue})
</if>
<trim>
如有补充,欢迎评论,java刚起步,是个小萌新