lect的 resulttype属性为map时:
通过mapkey指定map的key值
@mapkey("id")map<long, urinfo> geturinfomap();
@mapkey("id")map<long, map<string,object>> geturvaluemap();
@mapkey("name")map<name, urinfo> geturinfomap(); ..............返回一条记录...............map<string, object> geturinfomapbyid();
背景:今天使用mybatis查询一些记录,数据涉及到两个表里的数据,需要连表查询,但我mybatis的返回结果不想创建新的do对象,因此使用@mapkey注解返回一个map集合。
含义:@mapkey注解用于mapper.xml文件中,一般用于查询多条记录中各个字段的结果,存储在map中。map结构的示例如下:map<long, map<string, string>>。范型类型可以修改。
map的key:一般存储每条记录的主键,也可以用其他值表示,主要取决于dao层@mapkey注解后面的字段(如@mapkey(“id”));map的value:也是一个map,表示查询出这条记录的每个字段的字段名称和字段值。1. mapper.xml文件
<lect id="getinfobyid" resulttype="java.util.map"> lect ext.id as id, info.produce_area as area, ext.attribute_value as companyname from product_info info left join product_ext ext on info.id=ext.id where info.id=#{id} and ext.attribute_name=#{name}</lect>
2. dao.java
@不识有诸mapkey(南雪"id")map<long,map<string,s传统技艺tring>> getinfobyid(@param("id") long id, @param("name") string name);
3. manager.java
// 查询,返回结果:{1={area:上海,companyname=西西公司}}// 如果是多条记录,返回结果如:{1={area:上海,companyname:西西公司},2={area:南京,compantyname:猴猴公司}}map<lo情感基调ng, map<string, string>> map = productdao.getinfobyid(id, "公司名称");if(map==null || map.impty() || !map.containskey(id)){ return null;}// 获取结果str虎门销烟的故事ing area = produceinfomap.get(id).get("area");string companyname = produceinfomap.get(producttracinfoid).get("companyname");
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 17:33:59,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1ad608865ce5218636715e1c9385deda.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:mybatis返回map结果集@MapKey使用的场景分析.doc
本文 PDF 下载地址:mybatis返回map结果集@MapKey使用的场景分析.pdf
留言与评论(共有 0 条评论) |