网站首页 > java教程 正文
默认:单个、列表
默认单个对象对应一个Map或实体
多条数据自动装进一个List
com.jerry.mapper.TestMapper.java
// 查询单个结果直接返回 Map<String, Object>
Map<String, Object> selectById(Long id);
//查询结果列表返回 List<Map<String, Object>>
List<Map<String, Object>> selectList(Map<String, Object> paramsMap);
com.jerry.mapper.TestMapper.xml
要map直接设置resultType即可。要list返回多个对象自动就是list,只要设置list里的对象类型即可。
<select id="selectById" resultType="map" parameterType="java.lang.Long">
select *
from test_table as tt
where tt.id = #{id}
</select>
<select id="selectList" resultType="map" parameterType="map">
select *
from test_table as tt
</select>
返回 Map集合
查询收藏按 article_id 分组统计。返回类型HashMap。如果默认类型不符合需求,可以添加 一个resultMap来定义一下。
<!-- 按文章主键 article_id 分组统计收藏量 -->
<resultMap id="myMap" type="Map" >
<result property="id" javaType="Long" column="id"/>
<result property="collection" javaType="Integer" column="collection"/>
</resultMap>
<select id="selectCollection" resultMap="myMap">
SELECT c.article_id AS id, Count(c.id) AS collection
FROM collections AS c
GROUP BY c.article_id
</select>
在接口上添加 @MapKey("id")指定key,通常就是用主键。返回实现Map集合。
@MapKey("id")
Map<Long, Map<Long, Integer>> selectCollection();
返回 Pair
虽然这里接收是用的Pair<Long, Integer>,但mybatis返回实际还是Pair<Integer, Long>,因为id字段在表中int,而统计结果collection默认Long
这会导致一个问题,后续我想再对 pair.getKey()转换类型时,它会理外不是人。
所以正确的应该是使用与Mybatis返回类型一至的变量来接收。这样后续类型转换时才不会报错。
List<Pair<Integer, Long>> selectCollection(); // 正常
<select id="selectCollection" resultType="javafx.util.Pair">
SELECT c.article_id AS id, Count(c.id) AS collection
FROM collections AS c
GROUP BY c.article_id
</select>
猜你喜欢
- 2024-10-03 SpringBoot中如何根据JSON数据生成一个动态对象?
- 2024-10-03 边玩手机边学Java----Java基础之Map
- 2024-10-03 Java Stream API:优雅地操作Map(java map stream filter)
- 2024-10-03 聊聊Mybatis的初始化之Mapper.xml映射文件的解析
- 2024-10-03 MapStruct 使用教程, 万字详解(mapstruct enum)
- 2024-10-03 看似简单,在JAVA中如何将一个Object转换成Array
- 2024-10-03 java8函数式Map操作也太强大了吧,1次就帮我省了10多行代码
- 2024-10-03 map的一个骚操作!你学废了么?#互联网
- 2024-10-03 轻松搞定!用JavaScript将列表转换为Map
- 2024-10-03 告别 BeanUtils,拥抱 MapStruct:高效 Java 对象映射的经典之选
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)