1. 程式人生 > >mybatis自定義動態sql傳入物件

mybatis自定義動態sql傳入物件

現在有一需求,要求頁面顯示懸賞列表,要求該懸賞未過期,沒有人接受以及附帶分頁查詢。

這裡我們很容易能得到滿足該需求的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,可以使用了。