mybatisPlus 根据表某个字段查询对象集合
时间: 2024-06-11 22:09:30 浏览: 132
可以使用MybatisPlus提供的Wrapper类来实现根据表某个字段查询对象集合的功能,示例如下:
假设有一个User实体类,对应数据库表user,其中有一个字段为name,需要根据name查询出所有User对象:
```
String name = "张三";
List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("name", name));
```
其中,QueryWrapper<User>()表示创建一个User对象的查询条件,eq("name", name)表示查询条件为name字段等于指定值name。selectList()方法表示查询满足条件的所有User对象,返回一个List集合。
相关问题
mybatisplus根据字段批量删除
### 使用 MyBatis-Plus 根据字段批量删除
MyBatis-Plus 支持基于特定字段的条件进行批量删除操作。对于这种情况,可以利用 `wrapper` 来构建查询条件并执行删除命令。
#### 构建 Wrapper 对象
为了实现按字段批量删除的功能,通常会创建一个 `QueryWrapper` 或者 `UpdateWrapper` 实例,并通过调用其方法设置过滤条件:
```java
// 创建 QueryWrapper 对象用于定义删除条件
LambdaQueryWrapper<Entity> wrapper = new LambdaQueryWrapper<>();
```
#### 设置删除条件
接着,在 `wrapper` 中加入具体的匹配逻辑,比如等于某个值、属于某几个值之一等:
```java
// 假设 entity 是对应的实体类名, field 表示要作为筛选依据的属性名称
List<String> idsToDelete = Arrays.asList("value1", "value2");
wrapper.in(Entity::getField, idsToDelete);
```
#### 调用 delete 方法完成批删
最后一步就是调用 Mapper 接口中的 `delete` 函数传入之前配置好的 `wrapper` 参数即可达到目的:
```java
int affectedRows = mapper.delete(wrapper); // 返回受影响行数
if (affectedRows > 0){
System.out.println("删除成功!");
} else {
System.out.println("未找到符合条件的数据或发生错误");
}
```
上述代码展示了如何使用 MyBatis-Plus 的 API 完成根据给定字段值集合来进行批量删除的操作[^2]。
mybatisplus根据实体类查询
MyBatis-Plus 提供了非常方便的方法来根据实体类进行查询,以下是一个示例:
```java
// 创建一个 QueryWrapper 对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 设置查询条件,例如设置 name 字段为 "Tom"
queryWrapper.eq("name", "Tom");
// 调用 MyBatis-Plus 提供的 selectOne() 方法进行查询
User user = userMapper.selectOne(queryWrapper);
```
在上面的示例中,我们先创建了一个 QueryWrapper 对象,然后通过 `eq()` 方法设置了查询条件,最后调用 `selectOne()` 方法执行查询。
除了 `eq()` 方法之外,MyBatis-Plus 还提供了很多其他的方法来设置查询条件,例如:
- `ne()`:不等于
- `gt()`:大于
- `ge()`:大于等于
- `lt()`:小于
- `le()`:小于等于
- `like()`:模糊查询
- `in()`:包含在某个集合中
你可以根据自己的需求选择不同的方法来设置查询条件。
阅读全文