1. 程式人生 > >mybatis查詢物件集合注意事項

mybatis查詢物件集合注意事項

第一步:LiveRateMapper裡面定義查詢方法:

通過物件作為引數查詢物件集合

List<LiveRatePage> findAllLiveRate(LiveRatePage liveRatePage);

第二步:根據查詢條件寫出正確的sql語句:

select (@i:[email protected]+1) as rank,a.* from (select DATE_FORMAT(l.CREATE_DT , '%Y-%m-%d')CREATE_DT,l.DAY_AGE,l.FARMER_NAME,l.LIVE_RATE,l.AREA FROM liverate l WHERE
DATE_FORMAT(l.CREATE_DT , '%Y-%m-%d') >=DATE_FORMAT('2017-06-01','%Y-%m-%d')
and DATE_FORMAT(l.CREATE_DT , '%Y-%m-%d')<=DATE_FORMAT('2017-06-10','%Y-%m-%d')
ORDER BY l.LIVE_RATE desc
LIMIT 0,20)a,(select @i:=0) as it
;

第三步:LiveRateMapper.xml定義查詢語句:

改寫mybatis動態sql

<select id="findAllLiveRate" resultMap="BaseResultMap2" parameterType="com.znyq.wfCloud.admin.pageModel.LiveRatePage">
  select (@i:[email protected]+1) as rank,a.* from (select DATE_FORMAT(l.CREATE_DT , '%Y-%m-%d')CREATE_DT,l.DAY_AGE,l.FARMER_NAME,l.LIVE_RATE,l.AREA
     FROM liverate l
     WHERE 1 = 1
    <if test="date1 != null and ''!= date1">
          <![CDATA[ and  DATE_FORMAT(l.CREATE_DT, '%Y-%m-%d') >=DATE_FORMAT(#{date1},'%Y-%m-%d') ]]>
    </if>
     <if test="date2 != null and ''!= date2">
          <![CDATA[ and  DATE_FORMAT(l.CREATE_DT, '%Y-%m-%d') <=DATE_FORMAT(#{date2},'%Y-%m-%d') ]]>
    </if>
    ORDER BY l.LIVE_RATE desc
   limit #{curSize},#{pageSize})a,(select @i:=0) as it
        
 </select>

第四步:配置正確返回物件屬性

<resultMap id="BaseResultMap2" type="com.znyq.wfCloud.admin.pageModel.LiveRatePage" >
    <result column="rank" property="rank" jdbcType="VARCHAR" />
    <result column="DAY_AGE" property="dayAge" jdbcType="VARCHAR" />
    <result column="LIVE_RATE" property="liveRate" jdbcType="VARCHAR" />
    <result column="FARMER_NAME" property="farmerName" jdbcType="VARCHAR" />
    <result column="AREA" property="area" jdbcType="VARCHAR" />
    <result column="CREATE_DT" property="rankDate" jdbcType="VARCHAR" />
  </resultMap>

物件:LiveRatePage

屬性:private String dayAge;

     public String getDayAge() {

        return dayAge;
    }

    public void setDayAge(String dayAge) {
        this.dayAge = dayAge;
    }

ps物件的其他屬性和set,get省略了,注意的地方我都標紅了查詢的id要唯一

返回的結果集配置id要唯一對應,查詢的列欄位和物件屬性要注意對應

相關推薦

mybatis查詢物件集合注意事項

第一步:LiveRateMapper裡面定義查詢方法: 通過物件作為引數查詢物件集合 List<LiveRatePage> findAllLiveRate(LiveRatePage liveRatePage); 第二步:根據查詢條件寫出正確的sql語句: se

Mybatis List列表In查詢實現的注意事項

上圖中標紅的兩處,很驚訝的發現,一個引數與多個引數的處理方式是不同的(後續很多同學遇到的問題,就有一大部分出自這個地方)。如果引數個數大於一個,則會被封裝成Map, key值如果使用了Mybatis的 Param註解,則會使用該key值,否則預設統一使用資料序號,從1開始。這個問題先記下,繼續分析程式碼,接

mybatis寫mapper檔案注意事項

xml中某些特殊符號作為內容資訊時需要做轉義,否則會對檔案的合法性和使用造成影響 Html程式碼   &lt; <    &gt;&n

mybatis selectMap方法使用注意事項

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

mybatis 返回主鍵注意事項

有時候當一條記錄插入之後,需要用到當前記錄的id, 方法有二: 一:插入當前記錄之後,在根據條件去表中查詢; 二:插入記錄時直接返回主鍵; 第一種方法就不說了,我就說說第二種方法:       <insert id="insert

EL表示式中關於四個作用域物件注意事項!

主要說明獲取作用域資料獲取這方面的注意事項! 傳統方式獲取作用域資料缺點: 需要匯入java包 需要將型別強制轉換 書寫麻煩容易出現問題 使用EL表示式就可以完美解決傳統方式的缺點: 作用:獲取四個作用物件中的資料,其他宣告的變數不予理會,只獲取下邊四個作用域中

初次使用Mybatis的理解以及注意事項

原生的開發模式   使用原生模式開發的時候,通常是這個過程:   1、通常會建立實體類,每一個實體類對應一張表。   2、為一個實體類建立一個dao的介面   3、建立一個實現dao介面的實現類   4、建立一個處理業務邏輯service介面   5、建立一個類,用來實現service介面。  

JAVA集合注意事項-Set

所有的Java集合類都位於java.util包下 集合裡只能儲存物件 Set中元素不能重複 List類似陣列且其長度可變 Map儲存鍵值對 Collection是List,Set,Queue介面的父介面  所有Collection都重寫了toString()方法 當

使用easyui datagrid框架的查詢功能,注意事項

使用datagrid框架的查詢功能時候,它對應的後臺控制器處理方法就是datagrid的url對應的控制層處理方法,所以在控制層的需要對按這個條件進行的查詢做出對應的處理。在下面的例子中,就是在路徑 url="${pageContext.request.contextPath}/Produ

mybatis寫xml時注意事項

mybatis寫xml時注意事項: 1. 如果資料庫欄位中有關鍵字,使用`關鍵字`,最好是隻要是欄位就用``符號,可以減少很多錯誤 2. 如果更新的欄位中有 時間戳,更新時,使用如下(加上jdbcType可以防止出錯): <if test="updateTime !=null"> &

mybatis中陣列傳遞注意事項--簡

mybatis傳遞陣列資料---本人瞭解兩種 第一種:直接傳遞陣列資料 mapper中的配置: <delete id="deleteBrandByIdsArray" parameterT

sql查詢case when 注意事項

第一種case when A is null then 'false' else 'true' end 第二種case A when  null then 'false' else 'true' end 這兩種語法沒錯,但是判斷null必須用第一種

ORACLE資料庫查詢語句使用注意事項

2、儘量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。 3、不用NOT IN操作符,可以用NOT EXISTS或者外連線+替代。 4、Oracle在執行IN子查詢時,首先執行子查詢,將查詢結果放入臨時表再執行主查詢。而EXIST則是首先檢查主查詢,然後執行子查詢直到找到第一個匹配項。NOT

c++常成員函式和常物件注意事項

1.什麼是常成員函式 常成員函式,它就是在成員函式後面加一個const,用來修飾this指標所指的物件,使this指標所指的物件不受更改,保護它的資料安全。當常成員函式沒有引數的時候修飾的是this指標,有引數的時候就是修飾的引數和this!!反正就是不能變一切!! 除非

struts2接收javabean物件注意事項

struts2在接收javabean物件的時候,action的中的屬性既要有get方法也要有set方法,不然只能接收到一個屬性。 示例如下: xtype: 'form', itemId : '

myBatis開發注意事項(二)查詢某元素是否在集合

一般的,如果1張表的ID是1個欄位,當我們要在b表中查詢a表ID的資料時,可以這樣寫:select * from TableA as a left TableB as b on a.id = b.id如果,d表中的ID有2個欄位組成,borrowApplyId和current

mybatis查詢結果集,返回List的物件集合

mapper介面中寫的方法的返回值為List的物件陣列首先需要在mapper.xml中對映一個resultmap,column為類中的屬性也就是表中所對應的欄位。程式碼如下:<resultMap id="seeShare" type="com.example.demo.

mybatis查詢的結果集物件中包含物件集合的用法

平時專案中使用mybatis查詢資料庫,物件結果集可能比較複雜,物件中巢狀物件或者集合。 如下圖所示,返回結果集物件project中包含其他子物件(查詢的主表與關聯子表資料一對一關係)和list集合(查詢的主表與關聯子表資料一對多關係): 解決方案: 物件下面巢狀的物件採用<

關於mybatis查詢集合返回為[null]的問題

sql查詢 http 分享圖片 null ima 必須 如果 lis bubuko 最近項目當中做功能遇到查詢集合list為null,判非空卻還是進入了非空的判斷裏面,後面才知道sql查詢中 如果你是查詢幾個字段,必須加上不為空,否則sql查詢前面的值是有值得,只是恰巧你查

Mybatis查詢結果List集合數量正確,但全為null

最近在把一些之前做過的專案改成SSM框架,在一個簡單的查詢SQL中,出現了沒有查詢結果的情況(返回值為POJO),經過不斷的測試,發現集合的數量正確,但是值全為NULL,在參考了很多的網上的例項後,東改瞎改也沒有效果。 TeachDao.java TeachDao.xml TeachS