主表:MASTER

字段:ORDER_ID  --主键

RELATE_ID --申请单位

STOCK_ADDRESS --仓库地址

TERMINAL_VENDER --供应商

PROVINCE_ID --省分ID

STATE --状态

子表:DETAIL

字段:ORDER_ID   --与主表ORDER_ID关联

PROPERTY_CODE  --属性编码

SALE_PRICE  --价格

TERMINAL_VENDER --供应商 与主表TERMINAL_VENDER关联

PROVINCE_ID --省分ID 与主表PROVINCE_ID关联

主键为 ORDER_ID + PROPERTY_CODE

要求,取得 主表:MASTER 中STATE为1的记录,并映射成易于操作的java对象。

并关联子表,ORDER_ID、TERMINAL_VENDER、PROVINCE_ID作为查询子表的条件。

将查询出的子表数据映射成List ,作为 主表映射成对象的一个 成员变量。

以便后续操作。

定义java对象 Master,对应主表数据:

1

packagecom.test.ibatis.po;23importjava.util.List;45

/** *//**6 * 主表对应数据7*/8

publicclassMasterimplementsjava.io.Serializable{9privatestaticfinallongserialVersionUID=1L;10

/** *//**ID*/11privateString            channelsId=null;12

/** *//**地址*/13privateString            deliveryLoc=null;1415

/** *//**对应子表数据*/16privateListdetails=null;1718

publicString getChannelsId(){19returnchannelsId;20    }2122

publicvoidsetChannelsId(String channelsId){23this.channelsId=channelsId;24    }2526

publicString getDeliveryLoc(){27if(deliveryLoc==null)28return"";29returndeliveryLoc;30    }3132

publicvoidsetDeliveryLoc(String deliveryLoc){33this.deliveryLoc=deliveryLoc;34    }3536

publicListgetDetails(){37returndetails;38    }3940

publicvoidsetDetails(Listdetails){41this.details=details;42    }43}

定义Detail类,对应子表数据:

1

packagecom.test.ibatis.po;23importjava.text.DecimalFormat;45

publicclassDetailimplementsjava.io.Serializable{6privatestaticfinallongserialVersionUID=1L;78privatestaticfinalDecimalFormat df=newDecimalFormat("###0.00");9

/** *//**产品编号*/10privateString                     partNo=null;11

/** *//**价格*/12privateString                     price=null;1314

publicString getPartNo(){15returnpartNo;16    }1718

publicvoidsetPartNo(String partNo){19this.partNo=partNo;20    }2122

publicString getPrice(){23if(price==null)24return"0";25returndf.format(Double.parseDouble(price)/1000.0);26    }2728

publicvoidsetPrice(String price){29this.price=price;30    }31}

sql如下配置:

1

<?xml  version="1.0" encoding="gbk"?>23sqlMap4    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"5    "http://ibatis.apache.org/dtd/sql-map-2.dtd">678910111213            select="select-dtl"/>15161718192021223940

这样所有的工作都OK,

执行

List masters = (List) sqlMap.queryForList("selectData", param);

// param 为HashMap, put("PROVINCE_ID", "BJ"); 作为查询条件用。

得到 List,其中每个Master对象,都会持有 List。

要点在于

select="select-dtl" />

的配置,

即 将主表中的值传到 子查询当中作为查询条件,

这样取得的数据就是 有关系的了。

本文为原创,欢迎转载,转载请注明出处BlogJava。

java mybtis关联查询,iBatis/MyBatis 主子表关联查询相关推荐

  1. JimuReport积木报表(SQLserver)主子表关联查询

    1,主子表关联查询 sqlserver语句:主表语句正常查询自己的条件就行(建议先去数据库测试一下语句行不行) select prd_id,status,start_date from prd_hdr ...

  2. mybatis主从表关联查询,返回对象带有集合属性

    昨天有同事让我帮着看一个问题,mybatis主从表联合查询,返回的对象封装集合属性.我先将出现的问题记录一下,然后再讲处理方法也简单说明一下: VersionResult为接收返回数据对象,get\s ...

  3. SpringBoot+MyBatis多表联合查询

    SpringBoot+MyBatis多表联合查询 写在前面 联合查询在实际工作中用的并不多,因为很多表的数据比较大,或者说未来比较大的表,都要谨慎使用联合查询 数据准备 建表语句 create tab ...

  4. 大主子表关联的性能优化方法

    [摘要] 主子表是数据库最常见的关联关系之一,最典型的包括合同和合同条款.订单和订单明细.保险保单和保单明细.银行账户和账户流水.电商用户和订单.电信账户和计费清单或流量详单.当主子表的数据量较大时, ...

  5. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  6. 查询:使用多表连接查询数据

    /**********************************   查询:使用多表连接查询数据 ***********************************/ /*    SQL S ...

  7. 14、mybatis多表关联查询 association定义关联对象封装规则及懒加载

    文章目录 1.使用association单步查询 1).EmployeeMapper 2).EmployeeMapper.xml 3).Test 2.使用association进行分步查询 4).De ...

  8. Mybatis多表关联查询(一对多关联查询)

    1.Mybatis一级缓存与二级缓存 目的:提高查询效率,降低数据库查询压力,提升系统整体性能. 一级缓存:默认开启,Session级别,同一个会话内生效. 命中缓存的情况:statementid.S ...

  9. MyBatis主子表查询

    一.Mybatis查询语句 <select id="selectByProblemId" resultMap="findByProblemId">S ...

最新文章

  1. Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能
  2. Java 文件及文件夹复制
  3. Linux管事器战略 Web站点的悄然八要素
  4. ios之第一个程序Hello word, I am chenyu !
  5. python实现解释器_Python设计模式之解释器模式
  6. java 搭建 web服务器 socket实现
  7. .Net Discovery 系列之一--string从入门到精通(上)
  8. 迁移学习SSD深度网络模型,实现文本行检测
  9. schedule_timeout与mdelay的区别
  10. lammps教程:推荐几个比较实用的lammps自带函数
  11. DLAN 连接和使用体验——Twonky
  12. android三分钟快速集成手势密码功能
  13. php errorcode,errorCode.php
  14. 【超图+CESIUM】【基础API使用示例】45、超图|CESIUM - 点光源设置
  15. 什么是飞书机器人?如何定时发送飞书机器人消息?
  16. ubuntu由于安装搜狗拼音导致的黑屏(或屏幕显示异常)
  17. python 制作 多种 词云
  18. 根据坐标点在图片上标记
  19. 【NDN基础】Named Data Networking 全文翻译
  20. 廖雪峰老师个人网站推荐

热门文章

  1. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第十九集
  2. 解决「问题」,不要解决问题
  3. WordPress免费主题JianYue如何设置和添加友情链接?
  4. 流利地回答出面试官提出的八股问题,面试官却突然说“背得不错”,该怎么回答?...
  5. 裂脑DNS(Split DNS)的那点旧事研究
  6. 【ES6】es6新特性
  7. NEON intrinsic 简易入门指南
  8. 第十六章 SQL函数 ABS
  9. “看得到的解说”上线 咪咕视频智能字幕带来暖心陪伴
  10. 小鹅通前端春招一面面经(2021.4.1)