springboot怎么将用户表sys_user中积分score的值为1的数据信息中的job的值存在数组中,该数组的值不能重复,例如两个人的job刚好是医生,但是只存一次,再将获取到job数组进行查询,该sys_user中job为该获取到的job数组的内容,此过程用mapper的mybatis实现
时间: 2024-04-11 09:27:25 浏览: 56
要实现根据sys_user表中积分score为1的数据信息中的job值存在数组中,并且数组的值不能重复,然后根据获取到的job数组进行查询sys_user表中job为该数组内容的数据,可以按照以下步骤进行操作:
1. 创建一个Mapper接口,例如UserMapper,用于定义查询方法。
```java
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("SELECT DISTINCT job FROM sys_user WHERE score = 1")
List<String> getDistinctJobsWithScoreOne();
@Select({
"<script>",
"SELECT * FROM sys_user WHERE job IN",
"<foreach item='job' collection='jobs' separator=',' open='(' close=')'>",
"#{job}",
"</foreach>",
"</script>"
})
List<User> getUsersByJobs(@Param("jobs") List<String> jobs);
}
```
2. 创建一个对应的实体类User,用于映射sys_user表中的数据。
```java
public class User {
private Long id;
private String name;
private String job;
// 其他属性和getter/setter方法省略
}
```
3. 在需要使用用户信息的地方,注入UserMapper,并调用查询方法获取数据。
```java
@Service
public class UserService {
private final UserMapper userMapper;
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public List<User> getUsersByScoreOneJob() {
List<String> distinctJobs = userMapper.getDistinctJobsWithScoreOne();
return userMapper.getUsersByJobs(distinctJobs);
}
}
```
这样,调用`getUsersByScoreOneJob()`方法即可获取sys_user表中积分score为1的数据信息中的不重复job值,并根据这些job值查询sys_user表中对应的数据。注意,以上代码仅为示例,实际应用中可能需要根据具体情况进行调整。
阅读全文