使用mybatis-plus判断输入手机号,不存在则创建
时间: 2023-12-03 12:43:21 浏览: 27
可以按照以下步骤使用 MyBatis-Plus 实现输入手机号不存在则创建的功能:
1. 创建实体类
首先,需要创建一个实体类,用于映射数据库中的表和字段。假设我们创建了一个名为 User 的实体类,其中包含一个名为 mobile 的字段,代表用户的手机号。
```java
public class User {
private Long id;
private String mobile;
// 其他字段省略
// getter 和 setter 方法省略
}
```
2. 创建 Mapper 接口
然后,需要创建一个 Mapper 接口,用于定义数据库操作的方法。假设我们创建了一个名为 UserMapper 的接口,其中包含一个名为 insertIfNotExist 的方法,用于插入用户信息。
```java
public interface UserMapper extends BaseMapper<User> {
@Insert("INSERT INTO user (mobile) SELECT #{mobile} FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM user WHERE mobile = #{mobile})")
int insertIfNotExist(@Param("mobile") String mobile);
}
```
在上面的代码中,使用了 SQL 语句中的 SELECT FROM DUAL WHERE NOT EXISTS 子句,用于判断手机号是否已存在。如果不存在,则插入一条新的用户信息。
3. 使用 Mapper 接口
最后,在业务逻辑中调用 UserMapper 的 insertIfNotExist 方法即可。例如,以下代码演示了如何根据手机号查询用户信息,如果不存在则创建新用户。
```java
@Autowired
private UserMapper userMapper;
public User getUserByMobile(String mobile) {
User user = userMapper.selectOne(new QueryWrapper<User>().eq("mobile", mobile));
if (user == null) {
// 如果用户不存在,则创建新用户
user = new User();
user.setMobile(mobile);
userMapper.insertIfNotExist(mobile);
}
return user;
}
```
在上面的代码中,首先使用 MyBatis-Plus 提供的 QueryWrapper 对象创建查询条件,然后调用 selectOne 方法查询用户信息。如果查询结果为 null,则说明用户不存在,此时创建一个新的 User 对象,并调用 userMapper 的 insertIfNotExist 方法插入新的用户信息。最后,返回查询结果或新创建的用户信息。