Springboot中的MyBatis中怎么把查出来的两列数据转为Map
时间: 2024-05-13 18:19:27 浏览: 89
在Springboot中使用MyBatis进行查询并返回结果集时,可以使用MyBatis的`MapResultHandler`将查询结果转换为一个Map对象。
下面是一个示例代码:
```java
@Mapper
public interface MyMapper {
@Select("SELECT id, name FROM my_table")
void selectToMap(MapResultHandler handler);
}
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
public Map<Integer, String> getDataAsMap() {
Map<Integer, String> result = new HashMap<>();
myMapper.selectToMap(new MapResultHandler() {
@Override
public void handleResult(ResultContext<? extends Map.Entry<Integer, String>> resultContext) {
Map.Entry<Integer, String> entry = resultContext.getResultObject();
result.put(entry.getKey(), entry.getValue());
}
});
return result;
}
}
```
在上面的示例中,`@Mapper`注解表示这是一个MyBatis的Mapper接口,`@Select`注解表示要执行的SQL语句。`MapResultHandler`是MyBatis提供的一个结果处理器,用于将查询结果转换为一个Map对象。在`MyService`中,我们可以通过调用`selectToMap`方法并传入一个实现了`MapResultHandler`接口的匿名类来获取查询结果,并将其转换为一个Map对象。
阅读全文