博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBaties中resultMap简单入门
阅读量:5929 次
发布时间:2019-06-19

本文共 2032 字,大约阅读时间需要 6 分钟。

hot3.png

一、简介

resultType可以把查询结果封装到pojo类型中,但必须pojo类的属性名和查询到的数据库表的字段名一致。 如果sql查询到的字段与pojo的属性名不一致,则需要使用resultMap将字段名和属性名对应起来,进行手动配置封装,将结果映射到pojo中。resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

二、简单使用

order订单表:id,user_id,number,createtime,note

   
   
   
   
       
       
       
       
       
       
       
       
       
   

三、关联查询

一对一数据模型:订单用户 
一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询
首先在Order类中增加属性User,然后编写mapper:

   
   
   
   
   
   
   
       
   
       
       
       
       
   

一对多数据模型:用户订单

从用户信息出发查询用户下的订单信息则为一对多查询,因为一个用户可以下多个订单
首先在User类中增加属性List<Order> orders,然后编写mapper:

   
   
   
   
   
   
   
       
       
       
       
       
   

四、对返回数据进行分组

假设有如下sql查询语句:
select id, otherId from mytalbe 
返回数据:
id   otherId
01   00001
01   00002
01   00003
02   00004

有java实体类如下:

class Id{
  private String id;
  private List<String> otherId;
}
怎样通过执行一次查询,返回如下形式的数据呢?
List<Id> aa = new ArrayList<Id>();
aa = ...//通过mybatis执行slq
aa:[
     {01,[00001,00002,00003,00004]},
     {02,[00004]} 
   ]
实现方法如下:

 
 
     
 

需要注意的是<id> 标签,这是分组的标识。一定要注意。
 
文章参考:https://blog.csdn.net/qq_42780864/article/details/81429114

文章参考:https://blog.csdn.net/shijunjoy/article/details/75119671

转载于:https://my.oschina.net/u/3387320/blog/2981150

你可能感兴趣的文章
面试中的复杂度分析
查看>>
前端面试6:面向对象
查看>>
数据结构和算法
查看>>
扎心一问:分库分表就能无限扩容吗
查看>>
草根学Python(十)Python 的 Magic Method
查看>>
EA - indicator
查看>>
牵引力技术部告诉你,学java哪里好?
查看>>
阿里云智能对话分析服务使用教程
查看>>
做了「负载均衡」就可以随便加机器了吗?这三招来帮你!
查看>>
leetCode 8 String to Integer
查看>>
让我们荡起双桨,Android 小船波浪动画
查看>>
Angular 6 服务端渲染之 udao 终章
查看>>
数字货币跨品种对冲的探讨及DEMO
查看>>
Java集合系列之LinkedHashMap
查看>>
前端面试中容易让你忽略的知识点(一)
查看>>
android 多aar上传私人maven服务器
查看>>
iOS隐藏某个页面导航栏的方法
查看>>
Vue源码中为什么要const _toStr = Object.prototype.toString?
查看>>
数组扁平化
查看>>
《ios编程第四版》随感,随想
查看>>