day03-MyBatis的动态SQL语句查询
2024-08-29 21:35:51
场景一:
例如当我们想实现这样的查询的时候之前的操作貌似满足不了我们。
场景二:
还有些时候我们如果输入的信息越多满足要求的就越多,所查找出来的用户就越少
当我们之输入姓名的时候可能查找出10个人,当再输入性别的时候可能人数就会减少一半
mybatis为了解决例如上面的问题引入了一些标签例如:
<if></if>
<where></where>
<foreach></foreach>
<when></when>
<set></set>
场景一的解决:
UserDao中的方法:
QueryVo实体类:
package com.zyb.pojo; import java.util.List; public class QueryVo { private User user;
private List<Integer> ids; public QueryVo() {
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public List<Integer> getIds() {
return ids;
} public void setIds(List<Integer> ids) {
this.ids = ids;
}
}
对应mapper.xml的SQL语句:
<select id="selByids" resultType="user" resultMap="userMap" parameterType="com.zyb.pojo.QueryVo">
<include refid="defaultSql"></include>
<where>
<if test="ids!=null and ids.size()>0">
<foreach collection="ids" open="and id in (" close=")" item="uid" separator=",">
#{uid}
</foreach>
</if>
</where> </select>
上面的<include refid="defaultSql"></include>是因为抽取了常用的代码段
场景二的解决:
UserDao的方法:
对应的mapper.xml的SQL语句:
<select id="selByCondition" resultType="user" resultMap="userMap" parameterType="user">
select * from my_user
<where>
<if test="uname!=null">
and username=#{uname}
</if>
<if test="userSex!=null">
and sex=#{userSex}
</if>
</where>
</select>
set标签和if搭配使用:
参考:https://www.cnblogs.com/ysocean/p/7289529.html#_label3
最新文章
- 番外特别篇之 为什么我不建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起
- jQuery Mobile Datepicker 使用
- 循环日期的shell
- git安装步骤
- 图中最短路径算法(Dijkstra算法)(转)
- 小结JS中的OOP(下)
- linux驱动程序之电源管理 之linux休眠与唤醒(2)
- 2. shell之shell配置文件
- Java 8:如何使用流方式查询数据库?
- java中的进制转换方法
- 单点登录CAS使用记(八):使用maven的overlay实现无侵入的改造CAS
- zoj 3197 Google Book
- [置顶] jeecg-framework-3.3.2-RELEASE 最新版本发布
- jenkins+ant+jmeter接口自动化测试(持续构建)
- CentOS6.9编译安装Nginx1.12
- On-Heap与Off-Heap
- CSS中的选择器之类选择器和id选择器
- servlet之session设置
- win10安装MySQL5.7.21
- ado.net常用操作
热门文章
- main函数的参数详解
- Java入门学习路线目录索引
- 关于进程,I/O模型的文章
- C#中的循环:while do...while for
- UVA 11384 Help is needed for Dexter(递归)
- 论STA | POCV/SOCV 对lib 的要求 (4)
- php 基础 二维数组以某个重复值累加
- Spring IoC(一)bean实例化和依赖注入
- [Linux kali] linux kali [KDE]一些软件切换输入法无效
- tensorflow 学习记录