How to retrieve values from a map returned by MyBatis?
When MyBatis returns a Map, you can retrieve the values using the following methods:
- Retrieve a value based on a key: use the `get(key)` method, where `key` is the key in the Map. For example, if the key of the Map is “username”, you can use `get(“username”)` to retrieve the corresponding value.
- Iterate through a Map: retrieve a set of key-value pairs in the Map using the entrySet() method, and then iterate through the set to access the keys and values. For example:
Map<String, Object> resultMap = sqlSession.selectOne("selectUserById", 1);
for (Map.Entry<String, Object> entry : resultMap.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// 进行相应的处理
}
- By using annotations: If you choose to use annotations, you can simply use the @Param annotation to specify the key in the Map, and then retrieve the value using the parameter name. For example:
@Select("SELECT * FROM user WHERE id = #{map.id}")
User selectUserById(@Param("map") Map<String, Object> map);
In the example above, you can use map.id to retrieve the value corresponding to the id key in the Map.
In general, there are two common ways to retrieve values from a Map: by accessing key-value pairs and by iterating through the Map. The choice of which method to use depends on specific business requirements and code implementation.