MyBatis-Plus條件構造器Wrapper


條件構造器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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM