日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
實例說明ibatis動態(tài)查詢

最近做了很多動態(tài)的查詢,尤其是排序,以及一些狀態(tài)字段,所以就做了一個總的動態(tài)查詢,以不變應萬變,呵呵

創(chuàng)新互聯從2013年成立,是專業(yè)互聯網技術服務公司,擁有項目成都做網站、成都網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元河東做網站,已為上家服務,為河東各地企業(yè)和個人服務,聯系電話:13518219792

ibatis動態(tài)查詢里面的sql代碼:

ibatis動態(tài)查詢Xml代碼:

  
  
  
  

ibatis動態(tài)查詢Xml代碼:

 
 
 
 

這里需要注意的是:

#xxx#  代表xxx是屬性值,map里面的key或者是你的pojo對象里面的屬性,ibatis會自動在它的外面加上引號,表現在sql語句是這樣的 where xxx = 'xxx' ;而$xxxx$ 則是把xxxx作為字符串拼接到你的sql語句中,比如 order by  topicId , 如果你不用$來拼接而用#的話,外面就會被加上引號的哦    比如你的語句這樣寫  ... order by #xxx# (xxx就是你傳進來的字符串topicId),ibatis 就會把他翻譯成  order by 'topicId' 這樣就報錯了,用$的結果就是這樣  order by topicId。

另外在ibatis動態(tài)查詢里要注意它的iterate。

Java代碼

   
       
           
            #marketIdList[]#   
       
   
   
   

注意 iterate 的property屬性 ,雖然你上面的isNotNull什么的都有這句,但這里一定要寫清楚,否則ibatis會找不到你的list的,ibatis動態(tài)查詢自然無法實現。

ibatis動態(tài)查詢中的數據訪問層代碼:

Java代碼

public List getTopics(Map map) {   
  
        return getSqlMapClientTemplate().queryForList("getTopics", map);   
    }  

ibatis動態(tài)查詢中的服務層代碼:

Java代碼

public List getTopicsByMarketIdList(Long authorId,List marketIdList,   
        Integer orderby, Integer status, Pagination pagination) {   
    Map map = new HashMap ();   
    map.put("authorId", authorId);   
    map.put("isDelete", false);   
    map.put("marketIdList", marketIdList);   
    map.put("orderStr", "這里你組裝你的order字符串");   
    map.put("statusStr","這里你組裝你的status字符串");   
    map.put("begin", pagination.getOffset());   
    map.put("max", pagination.getPageSize());   
              //這個getTopicCount()方法和getTopics()大體是一致的,所以我的dao里面省略了它   
    Long total = topicDao.getTopicCount(map);   
    if (total == 0) {   
        return new ArrayList ();   
    } else {   
        pagination.setTotal(total);   
        List res = topicDao.getTopics(map);   
        return res;   
    }   
}

Java代碼

public List getTopicsByMarketIdList(Long authorId,List marketIdList,  
        Integer orderby, Integer status, Pagination pagination) {  
    Map map = new HashMap ();  
    map.put("authorId", authorId);  
    map.put("isDelete", false);  
    map.put("marketIdList", marketIdList);  
    map.put("orderStr", "這里你組裝你的order字符串");  
    map.put("statusStr","這里你組裝你的status字符串");  
    map.put("begin", pagination.getOffset());  
    map.put("max", pagination.getPageSize());  
              //這個getTopicCount()方法和getTopics()大體是一致的,所以我的dao里面省略了它  
    Long total = topicDao.getTopicCount(map);  
    if (total == 0) {  
        return new ArrayList ();  
    } else {  
        pagination.setTotal(total);  
        List res = topicDao.getTopics(map);  
        return res;  
    }  
}

Java代碼

public class Topic extends BaseObject implements Serializable {   
    /**  
     *   
     */  
    private static final long serialVersionUID = -851973667810710701L;   
  
    private Long id;   
    private Long authorId;   
    private String authorName;   
    private Long marketId;   
    private String title;   
    private String tags;   
    private String content;   
    private Date pubdate;   
    private Integer isBest;   
    private Integer status;   
    private Integer isDelete;   
    private Integer clickCount;   
    private Integer replyCount;   
    private Date lastReplyTime;   
       //getter and setter 省略...   
}

Java代碼

public class Topic extends BaseObject implements Serializable {  
    /** 
     *  
     */ 
    private static final long serialVersionUID = -851973667810710701L;  
 
    private Long id;  
    private Long authorId;  
    private String authorName;  
    private Long marketId;  
    private String title;  
    private String tags;  
    private String content;  
    private Date pubdate;  
    private Integer isBest;  
    private Integer status;  
    private Integer isDelete;  
    private Integer clickCount;  
    private Integer replyCount;  
    private Date lastReplyTime;  
       //getter and setter 省略...  

ibatis動態(tài)查詢中的Pagination代碼:

Java代碼:

public class Pagination {   
  
    /**  
     * 要查看的頁碼  
     */  
    private int page;   
  
    /**  
     * 每頁顯示數  
     */  
    private int pageSize;   
  
    /**  
     * 一共有多少頁  
     */  
    private int totalPage;   
  
    /**  
     * 一共有多少條記錄  
     */  
    private long total;   
  
    /**  
     * 當前頁的記錄數  
     */  
    private int size;   
  
    /**  
     * 只需要topxx,不需要頁數信息了  
     */  
    private boolean topOnly;   
  
      /**  
       *從第幾條記錄開始      
       */  
    private int offset;   
       
    public void setOffset(int offset) {   
        this.offset = offset;   
    }   
  
    public Pagination(int page, int pageSize) {   
        this.page = page;   
        this.pageSize = pageSize;   
    }   
  
    public Pagination() {   
    }   
  
    public boolean require() {   
        return pageSize > 0 ? true : false;   
    }   
  
    public int from() {   
        return page * pageSize;   
    }   
  
    public int to() {   
        return from() + size;   
    }   
  
    public int getPage() {   
        return page;   
    }   
  
    public void setPage(int page) {   
        this.page = page;   
    }   
  
    public int getPageSize() {   
        return pageSize;   
    }   
  
    public void setPageSize(int pageSize) {   
        this.pageSize = pageSize;   
    }   
  
    public int getTotalPage() {   
        return totalPage;   
    }   
  
    public void setTotalPage(int totalPage) {   
        this.totalPage = totalPage;   
    }   
  
    public long getTotal() {   
        return total;   
    }   
  
    public void setTotal(long total) {   
        this.total = total;   
        if (pageSize > 0) {   
            this.totalPage = (int) Math.ceil(total / (double) pageSize);   
        } else {   
            this.totalPage = 1;   
        }   
        if (page >= totalPage) {   
            page = totalPage - 1;   
        }   
        if (page < 0)   
            page = 0;   
        if (pageSize > 0) {   
            if (page < totalPage - 1)   
                this.size = pageSize;   
            else  
                this.size = (int) (total % pageSize);   
        } else

雖然代碼量有些大,但是這是一個總的ibatis動態(tài)查詢實例,您在實際工作中遇到相應的ibatis動態(tài)查詢問題可以參考一下。


網頁題目:實例說明ibatis動態(tài)查詢
本文URL:http://m.5511xx.com/article/dpdjpio.html