mybatis自定義動態sql傳入物件
阿新 • • 發佈:2019-01-10
現在有一需求,要求頁面顯示懸賞列表,要求該懸賞未過期,沒有人接受以及附帶分頁查詢。
這裡我們很容易能得到滿足該需求的sql語句:
select *
from bounty
where DeadTime > nowtime AND status = 0 limit (page-1) , count
其中nowtime為當前時間,0是我設定的未接收引數,page為頁數,count為每頁條數.
當專案使用mybatis自動生成增刪改查程式碼功能時,我們要執行上述sql語句必須要在**Mapper.xml檔案中新增動態sql函式。
我們新建一個select函式
由於這裡我們需要傳三個引數,date、page以及count且函式型別不同,所以我們只能選擇用一個自定義物件來儲存三個引數並傳入**Mapper.xml檔案.
public class Paging {
private String date;
private int page;
private int count;
}
這裡注意一下,我們自定義的class裡面一定要手動新增getter和setter方法,可以用快捷鍵alt+Ins選擇getter and setter快捷生成。
**Mapper.xml中的自定義sql語句如下:
<select id="selectTime" resultMap="BaseResultMap" parameterType="com.springmvc.entity.Paging" >
select *
from bounty
where DeadTime > #{date} AND status = 0 limit #{page} , #{count}
</select>
這樣就能將物件的三個引數全部都成功傳入該語句。
最後在dao檔案以及service檔案中新增該函式,ok,可以使用了。