springboot +mybatis获取MySQL多个字段的一个字段的多个数据并存储到数组中
时间: 2024-05-06 11:20:48 浏览: 227
springboot+mybatisplus+mysql 多数据源
可以使用MyBatis的`ResultMap`来解决这个问题。假设有一个表`user`,其中有`id`、`name`和`age`三个字段,现在需要获取所有用户的`name`字段,并将它们存储到一个数组中。
1. 定义`ResultMap`
```xml
<resultMap id="nameMap" type="java.lang.String">
<result property="name" column="name"/>
</resultMap>
```
这里定义了一个`ResultMap`,它的id为`nameMap`,类型为`java.lang.String`,表示这个`ResultMap`返回的是字符串类型的数据。`<result>`标签定义了如何将数据库中的`name`字段映射到Java对象中的`name`属性。
2. 编写MyBatis Mapper接口
```java
@Mapper
public interface UserMapper {
@Select("SELECT name FROM user")
@ResultMap("nameMap")
List<String> getAllNames();
}
```
这里使用`@Select`注解定义了一个SQL语句,它查询出所有用户的`name`字段。`@ResultMap`注解指定了返回的结果集应该使用哪个`ResultMap`进行映射。
3. 调用Mapper接口方法
```java
@Autowired
private UserMapper userMapper;
public void test() {
List<String> names = userMapper.getAllNames();
System.out.println(names);
}
```
这里调用了`UserMapper`接口的`getAllNames()`方法,它返回一个`List<String>`类型的结果集,其中包含了所有用户的`name`字段。可以将它们存储到一个数组中,例如:
```java
String[] namesArray = names.toArray(new String[0]);
```
阅读全文