文档章节

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

书中迷梦
 书中迷梦
发布于 2016/07/11 18:46
字数 398
阅读 250
收藏 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
博文 27
码字总数 8593
作品 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
JAVA持久层框架的概述(ibatis>>mybatis)

现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据...

battier
2011/06/21
0
2
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

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

mj4738
2012/02/18
0
3

没有更多内容

加载失败,请刷新页面

加载更多

web打印控件 LODOP的详细api

web打印控件 LODOP的详细api

wangxujun59
25分钟前
1
0
从一次小哥哥与小姐姐的转账开始, 浅谈分布式事务从理论到实践

分布式事务是个业界难题,在看分布式事务方案之前,先从单机数据库事务开始看起。 什么是事务 事务(Transaction)是数据库系统中一系列操作的一个逻辑单元,所有操作要么全部成功要么全部失...

中间件小哥
28分钟前
5
0
荣登Github日榜!微信最新开源MMKV

MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序...

腾讯开源
37分钟前
2
0
前端取色工具:jcpicker

http://annystudio.com/software/colorpicker/#jcp-download

轻量级赤影
39分钟前
1
0
Swift - 将图片保存到相册

import Photos func loadImage(image:UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), ni......

west_zll
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部