目录
一MyBatis动态拼接SQL
1:if标签
2、where标签
3:foreach标签
二 MyBatisPlus条件构造器
2.1使用QueryWrapper进行各种条件构造
2.1.1案例一组装条件查询
2.1.2、例2:组装排序条件
2.1.3、例3:组装删除条件
2.1.4、例4:条件的优先级
2.1.5实现子查询
2.2常用的QueryWrapper查询语法总结
一MyBatis动态拼接SQL
1:if标签
<select resultType="User">
<include ref></include>
<where>
<if test="money!=null and money!=''">
and money>1000
</if>
</where>
</select>
2、where标签
<select resultType="User">
<include ref></include>
<where>
<if test="money!=null and money!=''">
and money>1000
</if>
</where>
</select>
where标签的作用是可以自动处理掉第一个and
3:foreach标签
<select resultType="User">
<include ref></include>
<where>
<foreach collection="ids" open="and id in(" item="id" separator="," close=")">
#{id}
</foreach>
</where>
</select>
二 MyBatisPlus条件构造器
2.1使用QueryWrapper进行各种条件构造
2.1.1案例一组装条件查询
@RequestMapping("/hello15")
//查询用户名中包含a和余额在1000-9000之间的用户信息
public List<User> text15(){
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
("user_name","a");
("money",1000,9000);
("password","111");
List<User> list = (queryWrapper);
return list;
}
2.1.2、例2:组装排序条件
@RequestMapping("/hello16")
public List<User> text16(){
//根据用户余额降序排序,如果遇到相同余额的则按照id升序排序
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.orderByDesc("money")
.orderByAsc("id");
List<User> list = (queryWrapper);
return list;
}
2.1.3、例3:组装删除条件
@RequestMapping("/hello17")
public int text17(){
//删除余额为空的用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
queryWrapper
.isNull("money");
int count = (queryWrapper);
return count;
}
2.1.4、例4:条件的优先级
@RequestMapping("/hello18")
public int text18(){
//修改余额大于1000并且用户名等于admin或者余额为空的用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.gt("money",1000)
.eq("user_name","admin")
.or().isNull("money");
//通过对象set方法修改信息
User user = new User();
("大胖");
("888");
int count = (user, queryWrapper);
return count;
}
2.1.5实现子查询
@RequestMapping("/hello19")
public List<User> text19(){
//查询余额大于3等于3000的用户信息
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
("id","select id from t_user where money>=3000");
List<User> list = (queryWrapper);
return list;
}
2.2常用的QueryWrapper查询语法总结
() 小于
() 小于等于
() 大于
() 大于等于
() 等于
() 不等于
(“属性”,“值”) 模糊查询%值%
(“属性”,“值”) 模糊查询不包含%值%
(“属性”,“值”) 模糊查询%值 以什么结尾
(“属性”,“值”) 模糊查询 值% 以什么开始
() 值为空或者为null
() 值不为空 或者为null
(“属性”,“条件”,“条件”) 符合多个条件的值
(“属性”,“条件”,“条件”) 不符合多个条件的值
() 或者
() 和
(sql语句) 符合sql语句的值
(sql语句) 不符合SQL语句的值