?介绍 :
1.上图绿色框为抽象类abstract 2.蓝色框为正常class类,可new对象 3.黄色箭头指向为父子类关系,箭头指向为父类
废话不多说,直接上示例 :
注:示例中的 Service接口 都继承了 IService 的接口?
继承自?AbstractWrapper ?,自身的内部属性?entity ?也用于生成 where 条件 及?LambdaQueryWrapper , 可以通过?new QueryWrapper().lambda() ?方法获取到
1.1 select函数
//String... sqlSelect 表示不定参数,也就是调用这个方法的时候这里可以传入多个String对象。
select(String... sqlSelect)
select(Predicate<TableFieldInfo> predicate)
select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)
过滤查询字段,入参不包含 class 的调用前需要wrapper 内的entity 属性必须有值! 这两类方法重复调用以最后一次调用为准!
@Test
public void test(){
QueryWrapper<Demo> queryWrapper = new QueryWrapper<>();
//需要查询出来的字段
queryWrapper.select("test1","test2");
List<Demo> list = demoMapper.selectList(queryWrapper);
list.forEach(System.out::println);
}
?控制台输出
Demo(id=null, test1=1111, test2=2222, test3=null, test4=null)
Demo(id=null, test1=5555, test2=6666, test3=null, test4=null)
QueryWrapper<Demo> wrapper = new QueryWrapper<>();
//常量在前,变量再后避免空指针
wrapper.select(Demo.class,i -> !"1111".equals(i.getTest1()));
继承自?AbstractWrapper ?,自身的内部属性?entity ?也用于生成 where 条件 及?LambdaUpdateWrapper , 可以通过?new UpdateWrapper().lambda() ?方法获取!
2.1 set函数
//column 表字段,val 值 ,condition表示该条件是否加入最后生成的sql中
set(String column, Object val)
set(boolean condition, String column, Object val)
UpdateWrapper<ManagerSection> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("status",status);
updateWrapper.eq("id",id);
boolean result = iProjectUnitService.update(updateWrapper);
2.2 setSql函数
setSql(String sql)
@Test
public void test(){
UpdateWrapper<Demo> updateWrapper = new UpdateWrapper<>();
// 设置sql语句部分
updateWrapper.setSql("test3 = 18");
updateWrapper.eq("test1","1111");
userService.update(updateWrapper);
}
3.1 LambdaQueryWrapper
LambdaQueryWrapper<ManagerSectionPerson> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ManagerSectionPerson::getId,id)
.between(ManagerSectionPerson::getInvalid,0,1);
List<ManagerSectionPerson > personList = this.list(queryWrapper);
3.2 LambdaUpdateWrapper
LambdaUpdateWrapper<ManagerSectionPerson> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ManagerSectionPerson::getId, id)
.le(ManagerSectionPerson::getLockStatus,30)
.set(ManagerSectionPerson::getInvalid,1)
.setSql("status = 1");
this.update(updateWrapper);
4.1? 注解方式 Mapper.java
@Select("select * from mysql_data ${ew.customSqlSegment}")
List<MysqlData> getAll(@Param(Constants.WRAPPER) Wrapper wrapper
4.2? XML形式 Mapper.xml
<select id="getAll" resultType="MysqlData">
SELECT * FROM mysql_data ${ew.customSqlSegment}
</select>
?下面图表为条件构造器使用中的各个方法格式和说明,如有不懂可参考官方文档内容
|