-
动态 SQL 之foreach标签
-
- 需求
-
在 QueryVo 中加入一个 List 集合用于封装参数
-
持久层 Dao 接口
-
持久层 Dao 映射配置
-
测试代码
-
Mybatis中简化编写的 SQL 片段
-
- 定义代码片段
-
引用代码片段
==============================================================
======================================================================
/**
-
根据传入的参数条件
-
@param user 查询的条件,有可能有用户名 ,性别,或都没有
-
@return
*/
List finduserCondition(User user);
select * from user where 1=1
and username = #{userName}
and sex = #{userSex}
/**
-
根据条件查询 if标签
-
@throws Exception
*/
@Test
public void testfinduserCondition() throws Exception {
User u = new User();
u.setUserName(“老王”);
u.setUserSex(“男”);
//5.使用代理对象执行方法
List users = userDao.finduserCondition(u);
for (User user : users) {
System.out.println(user);
}
}
测试结果:
=========================================================================
为了简化上面 where 1=1 的条件拼装,我们可以采用
<where>
标签来简化开发。
select * from user
and username = #{userName}
and sex = #{userSex}
效果和上面的if标签一样
===========================================================================
**传入多个 id 查询用户信息,用下边两个 sql 实现:
SELECT * FROM USERS WHERE username LIKE ‘%王%’ AND (id =10 OR id =19 OR id=36)
SELECT * FROM USERS WHERE username LIKE ‘%王%’ AND id IN (10,19,36)**
这样我们在进行范围查询时,就要将一个集合中的值,作为参数动态添加进来。
QueryVo:
package com.keafmd.domain;
import java.util.List;
/**
-
Keafmd
-
@ClassName: QueryVo
-
@Description:
-
@author: 牛哄哄的柯南
-
@date: 2021-02-08 21:08
*/
public class QueryVo {
private User user;
private List ids;
public List getIds() {
return ids;
}
public void setIds(List ids) {
this.ids = ids;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
/**
-
根据QueryVo中提供的id集合查询
-
@param vo
-
@return
*/
List findUserInIds(QueryVo vo);
#{uid}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://img-blog.csdnimg.cn/img_convert/044c4c80f5dec6faf0591e8225cd731b.jpeg)
最后的最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取
**
![](https://img-blog.csdnimg.cn/img_convert/044c4c80f5dec6faf0591e8225cd731b.jpeg)
最后的最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取
[外链图片转存中…(img-tszzAaZs-1712195296904)]
[外链图片转存中…(img-GbqSpiAs-1712195296904)]
[外链图片转存中…(img-MmrNiGNN-1712195296905)]
[外链图片转存中…(img-ux41YKY7-1712195296905)]