2
回答
MyBatis+Oracle 结果集查询+分页
科大讯飞通用文字识别100000次/天免费使用。立即申请   

一张床位表+一个就诊记录表+患者表+医嘱记录

由床位表的CaseNo字段可以查询到就诊记录

由床位的MrNo可以查询到患者

由床位的CaseNo可以查到多个医嘱项目

写一个分页的查询语句

例如查询10条数据,返回的map对象里面包含4个对象(床位+就诊记录+患者+List<医嘱>)

<无标签>
举报
共有2个答案 最后回答: 2年前
<!-- Result Map -->
    <!-- resultmap -->
    <resultMap id="resultMap" type="xxxxx">
        <id property="id" column="id" />
        <result property="caseNo" column="caseNo" />
        <result property="mrNo" column="mrNo" />        
        <collection property="jiuzhengList" resultMap="jiuzhengMap" />
        <collection property="huanzheList" resultMap="huanzheMap" />
        <collection property="yizhuList" resultMap="yizhuMap" />
    </resultMap>

 <!-- 就诊resultmap -->
    <resultMap id="jiuzhengMap" type="xxxx">
        <id property="id" column="id" />
        <result property="caseNo" column="caseNo" />
    </resultMap>

    <!-- 患者resultmap -->
    <resultMap id="huanzheMap" type="xxxx">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="mrNo" column="mrNo" />
    </resultMap>


    <!-- 医嘱resultmap -->
    <resultMap id="yizhu" type="xxxx">
        <id property="id" column="id" />
        <result property="caseNo" column="caseNo" />
    </resultMap>


   <!-- 分页 -->
   <select .... resultMap="resultMap">  
   
   
select * from (

select rownum as r ,count(*) over() total,a.* from (

select * from 床位A,就诊B,患者C,医嘱D 

where a.CaseNo = b.CaseNo 

and a.MrNo= c.MrNo

and a.CaseNo = d.CaseNo??

))b

where b.r > 0 and b.r <10


   
   </select>
   
pojo:

List<xxx> jiuzhengList;

List<xxx> yizhuList;

List<xxx> huanzheList;



顶部