條件構造器Wrapper
@Test
void selectByWarpper(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("email","123");
List<User> users1 = userMapper.selectList(wrapper);
users1.forEach(System.out::println);
wrapper.clear();
wrapper.eq("name","劉備");
System.out.println(userMapper.selectOne(wrapper));
wrapper.clear();
wrapper.isNotNull("age");
List<User> users2 = userMapper.selectList(wrapper);
users2.forEach(System.out::println);
wrapper.clear();
wrapper.between("age",10,25);
List<User> users3 = userMapper.selectList(wrapper);
users3.forEach(System.out::println);
wrapper.clear();
wrapper.inSql("id","select id from user where id<3");
List<User> users4 = userMapper.selectList(wrapper);
users4.forEach(System.out::println);
wrapper.clear();
wrapper.orderByDesc("age");
userMapper.selectList(wrapper);
}
更多條件構造器用法參照官網:條件構造器
使用Wrapper自定義sql
在使用了mybatis-plus
之后, 自定義SQL的同時也想使用Wrapper
的便利應該怎么辦? 在mybatis-plus
版本3.0.7
得到了完美解決 版本需要大於或等於3.0.7
, 以下兩種方案取其一即可.
Service.java
mysqlMapper.getAll(Wrappers.<MysqlData>lambdaQuery().eq(MysqlData::getGroup, 1));
#方案一注解方式mapper-java方案一 注解方式 Mapper.java
@Select("select * from mysql_data ${ew.customSqlSegment}")
List<MysqlData> getAll(@Param(Constants.WRAPPER) Wrapper wrapper);
#方案二 XML形式 Mapper.xml
<select id="getAll" resultType="MysqlData">
SELECT * FROM mysql_data ${ew.customSqlSegment}
</select>