1. 程式人生 > >mybatis query多級List級聯類 之collection標籤使用《示例》上

mybatis query多級List級聯類 之collection標籤使用《示例》上

需求:查詢時需要對比stationStatsInfo 充電裝置,介面資訊的基本資訊的最後修改時間,三者只要有一處修改,就認為是最新修改時間,然後與輸入引數lastQueryTime進行對比,最後符合條件的站資訊資料全部顯示。

sql:比較lastQueryTime   PK  updateTime

 <select id="query_Stations_info" parameterType="java.util.Map" resultMap="StationInfoMap" > 
 SELECT a.GRID_STATION_SEQ,a.GRID_STATION_NAME,a.AREACODE,a.ADDRESS,a.CONTACT_MOBILE,a.station_type,
FROM
${projectSchema}.grid_station a where UNIX_TIMESTAMP(a.UPDATED_TIME)>UNIX_TIMESTAMP(#{LastQueryTime,jdbcType=VARCHAR}) 


or ( EXISTS  ( select 1 from ${projectSchema}.carport_info b LEFT JOIN ${projectSchema}.grid_stake c ON b.GRID_STAKE_SEQ = c.GRID_STAKE_SEQ  where b.GRID_STATION_SEQ = a.GRID_STATION_SEQ and (UNIX_TIMESTAMP(b.UPDATED_TIME)>UNIX_TIMESTAMP(#{LastQueryTime,jdbcType=VARCHAR}) orUNIX_TIMESTAMP(c.UPDATED_TIME)>UNIX_TIMESTAMP(#{LastQueryTime,jdbcType=VARCHAR})) )  )
ORDER BY a.GRID_STATION_SEQ 


javaBean-------------------------------------------------------------

第一級:stationStatsInfo.java

第二級:EquipementStatsInfo.java

第三極:ConnectStatsInfo.java


mapper=-------------------------------------------------------------

   <resultMap id="StatsResultMap" type="com.extracme.evshare.business.tfriftbean.StationStatsInfo">


    <result column="Station_Id" jdbcType="VARCHAR" property="StationID" />
    <result column="Station_Electricity" jdbcType="DOUBLE" property="StationElectricity" />
    <result column="Start_Time" jdbcType="TIMESTAMP" property="StartTime" />
    <result column="End_Time" jdbcType="TIMESTAMP" property="EndTime" />
<collection property="EquipmentStatsInfos" javaType="ArrayList"  select="com.extracme.evshare.business.tserver.mapper.EquipmentStatsMapper.queryEquipmentStatsInfoByStatsId"
                column="{StationStatsId=stationStatsId}" ofType="com.extracme.evshare.business.entity.EquipmentStatsInfo">
     </collection>

  </resultMap>
      <!-- 此查詢用於定期獲取充電站,在某個週期內的統計資訊 -->
  <select id="queryStationStats" parameterType="java.util.Map" resultMap="StatsResultMap">

    select 
Station_Stats_Id stationStatsId ,Station_Id, Station_Electricity, Start_Time, End_Time
    from station_stats
    where 1=1 
     <if test="stationId != null and stationId !='' " >
and Station_Id = #{stationId,jdbcType=VARCHAR}
     </if>
     <if test="startTime != null and startTime !='' " >
and Start_Time = #{startTime,jdbcType=TIMESTAMP}
     </if>
     <if test="endTime != null and endTime !='' " >
and End_Time = #{endTime,jdbcType=TIMESTAMP}
     </if>
     ORDER BY End_Time 
  </select>




   <resultMap id="EquipmentResultMap" type="com.extracme.evshare.business.tfriftbean.EquipmentStatsInfo">
   <!--  <id column="Equipment_Stats_Id" jdbcType="BIGINT" property="EquipmentStatsId" /> -->
    <result column="Equipment_Id" jdbcType="VARCHAR" property="EquipmentID" />
    <result column="Equipment_Electricity" jdbcType="DOUBLE" property="EquipmentElectricity" />
    <!-- <collection property="ConnectorStatsInfos" resultMap="ConnectorResultMap" /> -->
     <collection property="ConnectorStatsInfos" javaType="ArrayList"  select="com.extracme.evshare.business.tserver.mapper.ConnectorStatsMapper.queryStatsInfoById"
                column="{EquipmentStatsId=equipmentStatsId}" ofType="com.extracme.evshare.business.tfriftbean.ConnectorStatsInfo">
     </collection>
  </resultMap>

    <!-- 此查詢用於定期獲取充電站下,在某個週期內的裝置介面統計資訊 -->
     <select id="queryEquipmentStatsInfoByStatsId" parameterType="java.util.Map" resultMap="EquipmentResultMap">
    select 
e.Equipment_Stats_Id as equipmentStatsId,
   e.Equipment_Id EquipmentID,
   e.Equipment_Electricity
   <!-- ,c.Connector_Id  ConnectorID,
   c.Connector_Electricity -->

    from 
equipment_stats e
  <!-- LEFT JOIN connector_stats c ON e.Equipment_Stats_Id = c.Equipment_Stats_Id -->
    where e.Station_Stats_Id = #{StationStatsId,jdbcType=INTEGER}
  </select>


---------------------分級依次查詢List--------------------------


相關推薦

mybatis query多級List collection標籤使用《示例

需求:查詢時需要對比stationStatsInfo 充電裝置,介面資訊的基本資訊的最後修改時間,三者只要有一處修改,就認為是最新修改時間,然後與輸入引數lastQueryTime進行對比,最後符合條

MyBatis】-----【MyBatis】--CURD---表系【一對一】

去除 style print alt 得到 tag ack clas return 一、核心配置文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PU

mybatis關系(一對一、一對多)

res cit tar country 參考 ace ctype ride turn 1. 一對一關系 1.1 entiry 1.1.1 TPersonInfo.java package com.blueStarWei.entity; pub

JAVAWEB開發Hibernate詳解(二)——Hibernate的持久化狀態與轉換、以及一級快取詳解、關聯關係的對映(一對多、多對多、

package cn.test.hibernate3.demo2; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import cn.test.hibernate3.demo2.

MyBatis】-----【MyBatis】---表系【一對多】

new pda 聯合 測試 asr exc ack 負責 trace 一、核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//myba

mybatis查詢,分步查詢和延遲加載

enabled 4.2 res 標簽 mapper last pac mes 方式 級聯查詢: 1.Employee表: id;lastName;email; gender;d_id(外鍵關聯Department的ID) 2.Department表: id;deptNa

Mybatis查詢

username tac 實現 數據 配置 級聯查詢 builder java 3.0 轉自:http://blog.csdn.net/yulei_qq/article/details/22039815 工程的目錄結構: 有兩個表,一個文章表article ,一個用戶表u

JavaScript高程序設計引用型(

5-0 歸並 高級 new es5 順序 回調函數 比較 並且 引用類型是比較復雜的一種類型。在面向對象的編程中,會經常用到引用類型,可以說它是編程語言的核心。在JS中內置了幾種引用類型,下邊會進行一一的介紹。 內置引用類型 Object類型 1、聲明方式:直接使用new操

Python學習day02---學習建立三級選單

1、要求使用"key-value"字典,建立一個三級級聯選單,每個選單下面包含相應的子選單:例如:map ={ '山東省':{"濟南":{"高新區":["科技園","會展中心"]}}} 2、要求可以逐級選單進行返回上級選單。 #  一、定義選單內容 map_list =

POI問題總結,關於數字多級(三級以上)

    目錄        最近公司業務需要用到excel,並且要匯出模板,今天為止所有的功能都已經實現了,在這裡對出現的一些問題做一個總結。 效果圖: 這是一個五級聯動的資料,其中第一列是數字開頭,實現了五級

hibernate 刪除時候的兩種情況 (二) 刪除從表,無法刪除關係表

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

下拉表(二級)

<!DOCTYPE html> <html lang="zh"> <head>     <meta charset="UTF-8" />     <meta name="viewport

Hibernate Validator 6.0.7.Final 之一(宣告Bean約束約束)

前幾篇文章講的校驗都是針對簡單屬性,那麼,如果一個bean的屬性是一個複雜物件呢,我們該怎麼校驗,其實也簡單,只需要在這個屬性上使用@Valid註解就可以了。 Person的定義 public class Person { @NotNull(message

Hibernate Validator 6.0.7.Final 三(方法約束約束)

和bean屬性約束之級聯約束一樣,方法約束也支援級聯約束。直接看例子: Car定義 public class Car { @NotNull private String manufacturer; @NotNull @Size(min

學會MyBatis中的

一、概述 MyBatis中的級聯分為三種 鑑別器(discriminator): 根據一些條件決定實現類級聯的方案。比如體檢表需要根據性別區分。 一對一(association): 比如學生與學生證就是一對一的關係。 一對多(collection): 比如班級

javaEE MybatisMybatis與Spring整合傳統Dao開發(不推薦)。SqlSessionDaoSupport(Mybatis提供的Dao層基)

src/applicationContext.xml(Spring核心配置檔案): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.or

MyBatis多個物件屬性賦值

一個客戶有多個訂單,   一個訂單對應一個客戶 需求:查詢一個使用者,得到對應的使用者及相關訂單   兩個實體類 package com.itlike.domain; import lombok.Getter; import lombok.Setter; imp

MyBatis一個物件屬性賦值

兩個pojo類如下: package com.itlike.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; @[email protected]@ToString pub

【機器學習】傳統目標檢測演算法分類器Cascade

先附上參考文章吧。 文章其實是“P. Viola, M. Jones. Rapid Object Detection using a Boosted Cascade of Simple Features[J].CVPR, 2001”的學習筆記,下面第二個連結是文獻的中英文版

MyBatis查詢(兩種方式)

https://blog.csdn.net/zhupengqq/article/details/78575767 與上次唯一不同的一下幾個類 Department.java package com.cn.zhu.bean;   public class Department