我们之前已经讲过了基本的增删改查语句,现在我们来讲一下深一点的,动态sql语句。
(if、where、foreach、sql)标签使用方法:
一、if 标签
第一个举例:创建一个查询方法

我们对传入的user中的username 进行判断,判断用户名是否为空,不为空就执行后面的sql语句

运行测试方法,没有问题,数据查出来了

第二个举例:有时候啊,我们不单单要判断username,我们还要判断sex,那这个 if 标签怎么写呢,看下面,在下面再加一个 if 进行判断

运行我们的测试方法,我们查出来的数据是:名称为“ 百狗夜行 ”,性别为“ 男 ”的三个用户

二、where 标签
通过我们的前两个例子,我们发现都有 where 1 = 1,那么能不能不写呢?答案是能的,用我们的 where 标签去替换它

运行我们的测试方法,没有问题

三、foreach 标签
看一张图片

看我们的上面的图片,我们发现,这是一条带有子查询的查询语句。。那么这种带有子查询的sql语句,在我们的框架Mybatis中又该如何去写呢??这个时候就要用到 foreach 标签了
在我们的QueryVo这个类中我们创建一个集合 ids,并生成set,get方法 ,这个 ids 是用来存放 id

创建一个查询方法

接着在我们的 IUserDao.XMl 文件中就是重头戏了,直接看图了,图片已经解释很清楚了,放大看

运行我们的测试方法,没有问题

四、sql 标签
通过上面的那么多例子,我们发现一个问题,就是我们的 select * from user 查询语句用的最多,多次书写很麻烦,那怎么办?我们可以用sql标签来把它抽取出来。看图:

MyBatis动态SQL详解
本文详细介绍了MyBatis框架中动态SQL的实现方法,包括if、where、foreach及sql标签的具体应用。通过实例展示了如何根据条件动态拼接SQL语句,提高开发效率。
758

被折叠的 条评论
为什么被折叠?



