假如返回多条记录,接纳单个实体类接收会怎样 ?
查询结果是一条的话可以使用List聚集接收吗?固然可以。
就是List 聚集当中,只会存储一个记录的内容POJO5. SQL查询结果,返回为Map 聚集
Mybatis 在 查询结果放到 Map 聚集中存放的方式是:复制代码
- * Map<String, Object>
- * key value
- * "id" 131
- * "car_num" 999
- * "brand" 小米su7
- * 查询数据库中的字段名 对于单个对应字段的值
这里你想将查询结果中的那个字段的值,赋值给“最外面的Map”聚集的 key ,就填写对应上的查询上的字段名即可
留意:我们这里是一个Map中套装一个Map,
Map聚集比力特殊(存在两个值:key,value) 所以要
继承使用Map存储查询结果
resultMap 1.专门定义一个结果映射,在这个结果映射当中指定数据库表的字段名和Java类的属性名的对应关系
type属性,用来指定POJO类的类名
id属性,指定resultMap的唯一标识,这个id将来要在select标签中使用,启用了别名机制, 也可以用别名
留意:resultMap属性的值必须和resultMap标签中id属性值同等
留意:setting 标签方式的位置,可以根据错误提示进行修正位置。
11. 最后:
- 留意:对于查询结果返回多条记录时,resultType的值是(聚集/数组存储的元素的类型(除了Map聚集是放Map聚集本身))
- 留意:只有返回的是单个记录的时候,才可以用单个Map聚集存储担当 ,假如是多个记录的话,可以将Map聚集放到List聚集中。反过来,假如返回的不是一条记录,是多条记录的话,只接纳单个Map聚集接收,这样同样会出现之前的非常:TooManyResultsException
- 这里我们须要使用 @MapKey 注解,该注解的作用就是将:将查询结果的 id 字段的值作为整个Map(最外面的那个Map)聚集的key。
复制代码
- 这里你想将查询结果中的那个字段的值,赋值给“最外面的Map”集合的 key ,就填写对应上的查询上的字段名即可
- resultMap 结果映射: 留意:resultMap属性的值必须和resultMap标签中id属性值同等。property 后面填写的值是:POJO类的属性名;column 后面填写数据库表查询显示的的字段名(用了别名的话,是别名)
- 开启驼峰命名自动映射。属性名遵照Java驼峰 命名规范,数据库表列名遵照SQL的下划线 命名规范。,同时留意:留意:setting 标签方式的位置,可以根据错误提示进行修正位置。
- 假如查询的结果是一个数值,则可以用数值类型进行担当。
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上汲取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继承在其他的范畴奋斗。感谢你们,我们总会在某个时刻再次相遇。”
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |