文档章节

使用ibatis返回复合对象(一对多)

书中迷梦
 书中迷梦
发布于 2016/07/11 18:46
字数 398
阅读 251
收藏 2

1.定义订单对象(domain或者POJO)

public class DailySalesOrderModel {
    private String freighter = " ";        /*送货人*/
    private String fullAddress = " ";        /* 完整地址*/
    private List<OrdOrderDetail> orderDetails = new ArrayList<OrdOrderDetail>();/*订单明细*/
    private String actualAmount = "";        /* 实际结算金额*/
    private String debtAmount = " ";        /* 欠款金额*/
    private String payMethod = " ";         /* 支付方式*/
    private String freightNo = " ";        /* 货运单号*/
    private String patientName = " ";        /* 患者名称*/
    private String digest="";/*摘要*/

    //省略get和set方法

}

2.定义sqlMap

2.1 销售订单sql

标红的语句比较关键

<resultMap id="resultOrderInfo" class="com.baosight.b2c.yo.domain.DailySalesOrderModel">
        <result property="freighter" column="FREIGHTER"/>
        <result property="fullAddress" column="FULL_ADDRESS"/>
           <result property="orderDetails" column="{orderId=ID}" select="YO0101.queryOrderDetail"/>
            <result property="actualAmount" column="ACTUAL_AMOUNT"/>
            <result property="payMethod" column="PAY_METHOD"/>
            <result property="freightNo" column="EBS_ORDER_NO"/>
            <result property="patientName" column="PATIENT_NAME"/>
    </resultMap>

2.2 销售明细sql

<resultMap id="resultOrderDetail" class="com.yiyaobao.b2c.common.order.domain.OrdOrderDetail">
        <result property="sku" column="SKU"/>
        <result property="medName" column="MED_NAME"/>
        <result property="commonName" column="COMMON_NAME"/>
        <result property="amount" column="AMOUNT"/>
    </resultMap>

2.3  查询主表sql

<select id="exportDailySalesList" parameterClass="java.util.HashMap" 
            resultMap="resultOrderInfo">
        SELECT
         DISTINCT
                 oo.ID,
                 oo.FREIGHTER,  <!-- 送货员 -->
                 oo.FULL_ADDRESS,  <!-- 完整地址 -->
                 oo.ACTUAL_AMOUNT,  <!-- 实际结算金额 -->
                 CASE oo.PAY_METHOD
                WHEN '01' THEN
                '现金'
                WHEN '02' THEN
                '刷卡'
                WHEN '11' THEN
                '银联'
                WHEN '12' THEN
                '网上银行'
                WHEN '13' THEN
                '微信'
                WHEN '14' THEN
                '支付宝'
                WHEN '21' THEN
                '金融支付'
                END as "PAY_METHOD",  <!-- 支付方法(01-现金;02-刷卡;11-银联;12-网上银行) -->
                 oo.EBS_ORDER_NO,  <!-- EBS订单号 -->
                 oo.PATIENT_NAME <!-- 患者名称 (备注)-->
        FROM (yiyao_b2c.ord_order as  oo LEFT JOIN yiyao_user.usr_user as usr ON oo.USER_ID = usr.ID
            left join yiyao_b2c.ord_order_detail as oodtl on oo.id = oodtl.ORDER_ID)
            LEFT JOIN yiyao_prs.prs_prescription_app as prsapp ON oo.ID=prsapp.ORDER_ID 
       WHERE 1=1 and oo.IS_DELETE=0

</select>

2.4 查询明细

<select id="queryOrderDetail" parameterClass="java.util.HashMap" 
            resultMap="resultOrderDetail">
        SELECT
                SKU,  <!-- SKU -->
                MED_NAME,  <!-- 药品名称 -->
                COMMON_NAME,  <!-- 药品通用名 -->
                AMOUNT <!-- 数量 -->
        FROM yiyao_b2c.ord_order_detail WHERE 1=1
        <isNotEmpty prepend=" AND " property="id">
            ID = #id#
        </isNotEmpty>
        <isNotEmpty prepend=" AND " property="orderId">
            ORDER_ID = #orderId#
        </isNotEmpty>
    </select>

© 著作权归作者所有

共有 人打赏支持
书中迷梦
粉丝 3
博文 29
码字总数 8994
作品 0
徐汇
程序员
私信 提问
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
iBatis SqlMap的配备总结

iBatis SqlMap的配置总结 核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素...

mjZhang
2014/04/30
0
1
ibatis sqlMap 使用

SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: 在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: 如果有用到的全名的地...

为了美好的明天
04/27
0
0
iBatis和Hibernate浅析

iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hiber...

JAVA__
2012/08/16
0
1
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

我在最初的选型的时候是打算选择 Hibernate 的,在研究的过程中发现了 iBatis,经过 分析比较之后我选择了 iBatis。现在我已经使用 iBatis 完成了一个中小型的项目。这个 项目在性能、可维护...

mj4738
2012/02/18
0
3
ibatis学习(一)--ibatis介绍以及用例 [转]

介绍 iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。 iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元...

B.H.
2012/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
1
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
4
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
1
0
技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部