在spring+springmvc+mybatis框架中开发,编写sql语句以前都是直接使用xml的方式编写,现在由于新的项目框架搭建过程中,同事配置的是使用注解的方式编写sql语句,因此我也开始学习使用注解编写sql语句。

项目刚开始的时候,涉及的sql语句比较简单,因此直接通过注解@Select、@Update、@Insert直接编写就好了,例如:

后来业务复杂起来,一个sql语句涉及多条件同时满足或部分满足时,就必须使用动态sql语句才能获取业务功能所需的数据。

注解编写动态sql与使用xml编写动态sql有相似之处,但是也存在必须注意的三个细节之处,使用下面的例子做讲解。

一、编写格式

1、使用@Select({"<script>"sql语句"</script>" })的形式包裹sql语句。注意{}、"<script>"和"</script>",不能缺少,例如:

@Select({"<script>",

"sql语句",

"</script>"})

2、sql语句行与行之间需要使用逗号连接:

二、条件判断

1、多条件判断时,使用 "", "sql语句", "" 或者

"", "sql语句", "" 的形式。其中state==1为判断的条件,格式必须保持一致。

2、判断条件为字符串时,test里面的字符串的双引号要转义,例如:test='dbtype!=\"mysql\"'

三、大于、小于符号的替换

编写注解的动态sql语句中,where部分使用的大于、小于等符号,不能直接使用">" 和 "<",需要进行替换,mybatis才能正常运行。替换对照如下:

关键词: sql 教程