热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javamybtis关联查询,iBatis/MyBatis主子表关联查询

主表:MASTER字段:ORDER_ID--主键RELATE_ID--申请单位STOCK_ADDRESS--仓库地址TERMINAL_VENDER--供

主表: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

4f1150b881333f12a311ae9ef34da474.pngpackagecom.test.ibatis.po;24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.pngimportjava.util.List;44f1150b881333f12a311ae9ef34da474.png51fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gif/** *//**6d18c02628675d0a2c816449d98bda930.png * 主表对应数据78f1ba5b45633e9678d1db480c16cae3f.png*/81fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassMasterimplementsjava.io.Serializable9b8a8a44dd1c74ae49c20a7cd451974e.png{9d18c02628675d0a2c816449d98bda930.pngprivatestaticfinallongserialVersionUID=1L;1097e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**ID*/11d18c02628675d0a2c816449d98bda930.pngprivateString            channelsId=null;1297e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**地址*/13d18c02628675d0a2c816449d98bda930.pngprivateString            deliveryLoc=null;14d18c02628675d0a2c816449d98bda930.png1597e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**对应子表数据*/16d18c02628675d0a2c816449d98bda930.pngprivateListdetails=null;17d18c02628675d0a2c816449d98bda930.png1897e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicString getChannelsId()9b8a8a44dd1c74ae49c20a7cd451974e.png{19d18c02628675d0a2c816449d98bda930.pngreturnchannelsId;20ecedf933ec37d714bd4c2545da43add2.png    }21d18c02628675d0a2c816449d98bda930.png2297e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicvoidsetChannelsId(String channelsId)9b8a8a44dd1c74ae49c20a7cd451974e.png{23d18c02628675d0a2c816449d98bda930.pngthis.channelsId=channelsId;24ecedf933ec37d714bd4c2545da43add2.png    }25d18c02628675d0a2c816449d98bda930.png2697e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicString getDeliveryLoc()9b8a8a44dd1c74ae49c20a7cd451974e.png{27d18c02628675d0a2c816449d98bda930.pngif(deliveryLoc==null)28d18c02628675d0a2c816449d98bda930.pngreturn"";29d18c02628675d0a2c816449d98bda930.pngreturndeliveryLoc;30ecedf933ec37d714bd4c2545da43add2.png    }31d18c02628675d0a2c816449d98bda930.png3297e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicvoidsetDeliveryLoc(String deliveryLoc)9b8a8a44dd1c74ae49c20a7cd451974e.png{33d18c02628675d0a2c816449d98bda930.pngthis.deliveryLoc=deliveryLoc;34ecedf933ec37d714bd4c2545da43add2.png    }35d18c02628675d0a2c816449d98bda930.png3697e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicListgetDetails()9b8a8a44dd1c74ae49c20a7cd451974e.png{37d18c02628675d0a2c816449d98bda930.pngreturndetails;38ecedf933ec37d714bd4c2545da43add2.png    }39d18c02628675d0a2c816449d98bda930.png4097e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicvoidsetDetails(Listdetails)9b8a8a44dd1c74ae49c20a7cd451974e.png{41d18c02628675d0a2c816449d98bda930.pngthis.details=details;42ecedf933ec37d714bd4c2545da43add2.png    }438f1ba5b45633e9678d1db480c16cae3f.png}

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

1

4f1150b881333f12a311ae9ef34da474.pngpackagecom.test.ibatis.po;24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.pngimportjava.text.DecimalFormat;44f1150b881333f12a311ae9ef34da474.png51fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassDetailimplementsjava.io.Serializable9b8a8a44dd1c74ae49c20a7cd451974e.png{6d18c02628675d0a2c816449d98bda930.pngprivatestaticfinallongserialVersionUID=1L;7d18c02628675d0a2c816449d98bda930.png8d18c02628675d0a2c816449d98bda930.pngprivatestaticfinalDecimalFormat df=newDecimalFormat("###0.00");997e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**产品编号*/10d18c02628675d0a2c816449d98bda930.pngprivateString                     partNo=null;1197e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**价格*/12d18c02628675d0a2c816449d98bda930.pngprivateString                     price=null;13d18c02628675d0a2c816449d98bda930.png1497e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicString getPartNo()9b8a8a44dd1c74ae49c20a7cd451974e.png{15d18c02628675d0a2c816449d98bda930.pngreturnpartNo;16ecedf933ec37d714bd4c2545da43add2.png    }17d18c02628675d0a2c816449d98bda930.png1897e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicvoidsetPartNo(String partNo)9b8a8a44dd1c74ae49c20a7cd451974e.png{19d18c02628675d0a2c816449d98bda930.pngthis.partNo=partNo;20ecedf933ec37d714bd4c2545da43add2.png    }21d18c02628675d0a2c816449d98bda930.png2297e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicString getPrice()9b8a8a44dd1c74ae49c20a7cd451974e.png{23d18c02628675d0a2c816449d98bda930.pngif(price==null)24d18c02628675d0a2c816449d98bda930.pngreturn"0";25d18c02628675d0a2c816449d98bda930.pngreturndf.format(Double.parseDouble(price)/1000.0);26ecedf933ec37d714bd4c2545da43add2.png    }27d18c02628675d0a2c816449d98bda930.png2897e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicvoidsetPrice(String price)9b8a8a44dd1c74ae49c20a7cd451974e.png{29d18c02628675d0a2c816449d98bda930.pngthis.price=price;30ecedf933ec37d714bd4c2545da43add2.png    }318f1ba5b45633e9678d1db480c16cae3f.png}

sql如下配置:

1

4f1150b881333f12a311ae9ef34da474.png24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.pngsqlMap44f1150b881333f12a311ae9ef34da474.png    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"54f1150b881333f12a311ae9ef34da474.png    "http://ibatis.apache.org/dtd/sql-map-2.dtd">64f1150b881333f12a311ae9ef34da474.png74f1150b881333f12a311ae9ef34da474.png84f1150b881333f12a311ae9ef34da474.png94f1150b881333f12a311ae9ef34da474.png104f1150b881333f12a311ae9ef34da474.png114f1150b881333f12a311ae9ef34da474.png124f1150b881333f12a311ae9ef34da474.png134f1150b881333f12a311ae9ef34da474.png            select="select-dtl"/>154f1150b881333f12a311ae9ef34da474.png164f1150b881333f12a311ae9ef34da474.png174f1150b881333f12a311ae9ef34da474.png184f1150b881333f12a311ae9ef34da474.png194f1150b881333f12a311ae9ef34da474.png204f1150b881333f12a311ae9ef34da474.png214f1150b881333f12a311ae9ef34da474.png224f1150b881333f12a311ae9ef34da474.png394f1150b881333f12a311ae9ef34da474.png404f1150b881333f12a311ae9ef34da474.png

这样所有的工作都OK,

执行

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

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

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

要点在于

select="select-dtl" />

的配置,

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

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

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



推荐阅读
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 本文详细介绍了如何将Spring框架与Hibernate ORM框架进行集成,包括配置文件的设置和数据持久化操作的实现。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 可参照github代码:https:github.comrabbitmqrabbitmq-tutorialsblobmasterjavaEmitLogTopic.ja ... [详细]
  • 本文介绍了如何在Spring框架中使用AspectJ实现AOP编程,重点讲解了通过注解配置切面的方法,包括方法执行前和方法执行后的增强处理。阅读本文前,请确保已安装并配置好AspectJ。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文讨论了在 Oracle 10gR2 和 Solaris 10 64-bit 环境下,从 XMLType 列中提取数据并插入到 VARCHAR2 列时遇到的性能问题,并提供了优化建议。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
author-avatar
兰州老头_337
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有