mybatisPlus条件构造器实现,传入手机号查询用户表中username或telephone等于传入的手机号的数据
时间: 2024-10-16 11:19:34 浏览: 34
MyBatis Plus 提供了一种便捷的方式来构建动态 SQL 条件,它通过条件构造器(Criteria API 或者 ModelHelper)实现了对数据库的高效查询。如果你想要根据手机号查询用户表中 `username` 或 `telephone` 字段,可以按照以下步骤操作:
1. 首先,你需要创建一个 `User` 对象或者一个对应的实体类,该类应该是 MyBatis Plus 的 Model 继承自 `BaseEntity`。
```java
public class User extends BaseEntity {
private String username;
private String telephone;
// getters and setters
}
```
2. 然后,你可以使用 `ModelHelper` 类的静态方法 `eq()`、`orEq()` 来构建动态条件。假设你有一个手机号 `String phone`,你可以这样做:
```java
List<User> users = User.where()
.eq("username", phone)
.orEq("telephone", phone) // 这里假设电话号码也可能作为username字段存在
.list();
```
这里 `.where()` 初始化了一个查询条件,`.eq()` 表示等于,`.orEq()` 表示或等于。如果 `telephone` 只能在电话字段上使用,则应移除 `username` 那部分。
3. 如果你是在 Service 层面进行这样的查询,可能会更像下面的样子:
```java
Service service = new UserService();
List<User> result = service.getUserByPhone(phone);
```
其中 `UserService` 中的 `getUserByPhone` 方法内部会调用上述的条件构造。
阅读全文