mybatisflex QueryWrapper去重
MyBatis-Plus是一个基于MyBatis的增强工具,提供了一系列的增强功能,其中包括QueryWrapper用于构建查询条件。在使用QueryWrapper进行查询时,如果需要去重,可以通过使用distinct方法来实现。
例如,假设我们有一个User表,其中有一个字段为name,我们想要查询不重复的name列表,可以按照以下步骤进行操作:
导入相关的依赖:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本</version> </dependency>
在代码中使用QueryWrapper进行查询:
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct name").eq("age", 18); List<User> userList = userMapper.selectList(queryWrapper);
在上述代码中,我们通过select方法指定了要查询的字段为distinct name,表示只查询name字段,并且去重。eq方法用于添加等值条件,这里添加了一个age等于18的条件。
QueryWrapper<PsItemRoutingsValue>().eq(“plant_code”, psItemRoutingsValue.getPlantCode()));这个为空则不做筛选,如果不为空则筛选的,你提供这样的mybatisflex代码
这段代码是在MyBatis Plus的QueryWrapper API中使用的,用于SQL查询操作。QueryWrapper<PsItemRoutingsValue>
是一个动态查询构建器,它允许你在运行时构造复杂的SQL查询条件。.eq("plant_code", psItemRoutingsValue.getPlantCode())
这一部分表示如果psItemRoutingsValue
对象的plantCode
属性有值,那么就添加一个等于(eq
)的条件到查询中,即只选择plant_code
字段等于该值的记录。如果plantCode
为空,则不会加入这个条件,因此查询将返回所有数据,如果没有特别设置其他过滤条件。
如果你想创建类似这样的MyBatis Plus代码示例,可以这样做:
if (psItemRoutingsValue.getPlantCode() != null) {
QueryWrapper<PsItemRoutingsValue> wrapper = new QueryWrapper<>();
wrapper.eq("plant_code", psItemRoutingsValue.getPlantCode());
// 执行查询
List<PsItemRoutingsValue> results = itemRoutingsMapper.selectList(wrapper);
} else {
// 如果plant_code为空,直接获取所有数据
List<PsItemRoutingsValue> allData = itemRoutingsMapper.selectAll();
}
这里假设itemRoutingsMapper
是PsItemRoutingsValue
对应的Mapper接口。
mybatisflex
MyBatis-Flex 是一个基于 Java 的开源 ORM 框架,它提供了一种简单的方式来映射数据库中的关系对象。MyBatis-Flex 具有灵活性和可配置性,可以自动生成 SQL 语句,还可以执行复杂的查询,支持动态 SQL 和存储过程等功能。MyBatis-Flex 还支持多种数据库,包括 MySQL、Oracle、SQL Server 等常见关系型数据库。它的优点在于简单易用,配置灵活,支持多种数据库,适用于中小型项目。
相关推荐















