Java开发 | mybatis使用注解编写动态sql注意事项

寻龙剑侠 2025-05-12 22:14:14 50 阅读 JAVA

在spring+springmvc+mybatis框架中开发,编写sql语句以前都是直接使用xml的方式编写,现在由于新的项目框架搭建过程中,同事配置的是使用注解的方式编写sql语句,因此我也开始学习使用注解编写sql语句。 项目刚开始的时候,涉及的sql语句比较简单,因此直接通过注解@Select、@Update、@Insert直接编写就好了,

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

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

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

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

image.png

一、编写格式

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

@Select({""})

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

二、条件判断

1、多条件判断时,使用 "", "sql语句", "" 或者 "", "sql语句", "" 的形式。其中state==1为判断的条件,格式必须保持一致。 image.png 2、判断条件为字符串时,test里面的字符串的双引号要转义,例如:test='dbtype!="mysql" '

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

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

image.png

标签: Java

评论

评论先审后显;邮箱仅用于生成头像(MD5),不会公开显示