精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實例說明ibatis動態查詢

開發 后端
可能很多朋友對于ibatis中的排序以及一些狀態字段動態查詢產生過疑問。實際上,這些都是ibatis動態查詢的問題。掌握了ibatis動態查詢,很多問題便會迎刃而解。這篇文章就是一個總的ibatis動態查詢,幫助您以不變應萬變。

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

ibatis動態查詢里面的sql代碼:

ibatis動態查詢Xml代碼:

<select id="getTopics" resultClass="topic" parameterClass="map">  
        <![CDATA[  
                select * from p_Topic   
        ]]>  
    <dynamic prepend=" WHERE ">  
        <isPropertyAvailable property="authorId">  
            <isNotNull property="authorId" prepend=" and ">  
                authorId=#authorId#    
               </isNotNull>  
        </isPropertyAvailable>  
        <isPropertyAvailable property="marketId">  
            <isNotNull property="marketId" prepend=" and ">  
                marketId=#marketId#    
               </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="isDelete">  
            <isNotNull property="isDelete" prepend=" and ">  
                isDelete=#isDelete#    
               </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="isBest">  
            <isNotNull property="isBest" prepend=" and ">  
                isBest=#isBest#   
            </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="statusStr">  
            <isNotNull property="statusStr" prepend=" and ">  
                $statusStr$   
            </isNotNull>  
        </isPropertyAvailable>  
        <isPropertyAvailable property="marketIdList">  
            <isNotNull property="marketIdList" prepend=" and marketId in ">  
                <iterate property="marketIdList" conjunction="," close=")" open="(">  
                    #marketIdList[]#   
                </iterate>  
            </isNotNull>  
        </isPropertyAvailable>  
    </dynamic>  
  
    <dynamic prepend=" order by ">  
        <isPropertyAvailable property="orderStr">  
            <isNotNull property="orderStr">  
                $orderStr$   
               </isNotNull>  
        </isPropertyAvailable>  
    </dynamic>  
  
    <dynamic>  
        <isPropertyAvailable property="begin">  
            <isNotNull property="begin">  
                limit #begin#    
               </isNotNull>  
        </isPropertyAvailable>  
        <isPropertyAvailable property="max" prepend=" , ">  
            <isNotNull property="max">  
                #max#   
               </isNotNull>  
        </isPropertyAvailable>  
    </dynamic>  
</select>  
  
  
  
<select id="getTopicCount" resultClass="java.lang.Long"  
    parameterClass="map">  
        <![CDATA[  
                select count(id) from p_Topic   
        ]]>  
    <dynamic prepend=" WHERE ">  
        <isPropertyAvailable property="authorId">  
            <isNotNull property="authorId" prepend=" and ">  
                authorId=#authorId#    
               </isNotNull>  
        </isPropertyAvailable>  
        <isPropertyAvailable property="marketId">  
            <isNotNull property="marketId" prepend=" and ">  
                marketId=#marketId#    
               </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="isDelete">  
            <isNotNull property="isDelete" prepend=" and ">  
                isDelete=#isDelete#    
               </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="isBest">  
            <isNotNull property="isBest" prepend=" and ">  
                isBest=#isBest#   
            </isNotNull>  
        </isPropertyAvailable>  
  
        <isPropertyAvailable property="statusStr">  
            <isNotNull property="statusStr" prepend=" and ">  
                $statusStr$   
            </isNotNull>  
        </isPropertyAvailable>  
        <isPropertyAvailable property="marketIdList">  
            <isNotNull property="marketIdList" prepend=" and marketId in ">  
                <iterate property="marketIdList" conjunction="," close=")" open="(">  
                    #marketIdList[]#   
                </iterate>  
            </isNotNull>  
        </isPropertyAvailable>  
    </dynamic>  
</select>

ibatis動態查詢Xml代碼:

<select id="getTopics" resultClass="topic" parameterClass="map"> 
        <![CDATA[ 
                select * from p_Topic  
        ]]> 
    <dynamic prepend=" WHERE "> 
        <isPropertyAvailable property="authorId"> 
            <isNotNull property="authorId" prepend=" and "> 
                authorId=#authorId#   
               </isNotNull> 
        </isPropertyAvailable> 
        <isPropertyAvailable property="marketId"> 
            <isNotNull property="marketId" prepend=" and "> 
                marketId=#marketId#   
               </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="isDelete"> 
            <isNotNull property="isDelete" prepend=" and "> 
                isDelete=#isDelete#   
               </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="isBest"> 
            <isNotNull property="isBest" prepend=" and "> 
                isBest=#isBest#  
            </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="statusStr"> 
            <isNotNull property="statusStr" prepend=" and "> 
                $statusStr$  
            </isNotNull> 
        </isPropertyAvailable> 
        <isPropertyAvailable property="marketIdList"> 
            <isNotNull property="marketIdList" prepend=" and marketId in "> 
                <iterate property="marketIdList" conjunction="," close=")" open="("> 
                    #marketIdList[]#  
                </iterate> 
            </isNotNull> 
        </isPropertyAvailable> 
    </dynamic> 
 
    <dynamic prepend=" order by "> 
        <isPropertyAvailable property="orderStr"> 
            <isNotNull property="orderStr"> 
                $orderStr$  
               </isNotNull> 
        </isPropertyAvailable> 
    </dynamic> 
 
    <dynamic> 
        <isPropertyAvailable property="begin"> 
            <isNotNull property="begin"> 
                limit #begin#   
               </isNotNull> 
        </isPropertyAvailable> 
        <isPropertyAvailable property="max" prepend=" , "> 
            <isNotNull property="max"> 
                #max#  
               </isNotNull> 
        </isPropertyAvailable> 
    </dynamic> 
</select> 
 
 
 
<select id="getTopicCount" resultClass="java.lang.Long" 
    parameterClass="map"> 
        <![CDATA[ 
                select count(id) from p_Topic  
        ]]> 
    <dynamic prepend=" WHERE "> 
        <isPropertyAvailable property="authorId"> 
            <isNotNull property="authorId" prepend=" and "> 
                authorId=#authorId#   
               </isNotNull> 
        </isPropertyAvailable> 
        <isPropertyAvailable property="marketId"> 
            <isNotNull property="marketId" prepend=" and "> 
                marketId=#marketId#   
               </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="isDelete"> 
            <isNotNull property="isDelete" prepend=" and "> 
                isDelete=#isDelete#   
               </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="isBest"> 
            <isNotNull property="isBest" prepend=" and "> 
                isBest=#isBest#  
            </isNotNull> 
        </isPropertyAvailable> 
 
        <isPropertyAvailable property="statusStr"> 
            <isNotNull property="statusStr" prepend=" and "> 
                $statusStr$  
            </isNotNull> 
        </isPropertyAvailable> 
        <isPropertyAvailable property="marketIdList"> 
            <isNotNull property="marketIdList" prepend=" and marketId in "> 
                <iterate property="marketIdList" conjunction="," close=")" open="("> 
                    #marketIdList[]#  
                </iterate> 
            </isNotNull> 
        </isPropertyAvailable> 
    </dynamic> 
</select>

這里需要注意的是:

#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動態查詢里要注意它的iterate。

Java代碼

<isPropertyAvailable property="marketIdList">   
    <isNotNull property="marketIdList" prepend=" and marketId in ">   
        <iterate property="marketIdList" conjunction="," close=")" open="(">   
            #marketIdList[]#   
        </iterate>   
    </isNotNull>   
</isPropertyAvailable>

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

ibatis動態查詢中的數據訪問層代碼:

Java代碼

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

ibatis動態查詢中的服務層代碼:

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動態查詢中的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動態查詢實例,您在實際工作中遇到相應的ibatis動態查詢問題可以參考一下。

【編輯推薦】

  1. ibatis標簽詳解
  2. ibatis插件的安裝方式
  3. ibatis下加入c3p0連接池的方法
  4. ibatis也能用proxool連接池
  5. 避免ibatisN+1查詢的方法
責任編輯:桑丘 來源: tntxie的blog
相關推薦

2009-07-22 13:04:41

iBATIS動態查詢

2009-07-22 11:27:36

iBATIS模糊查詢

2009-07-24 17:20:59

iBatis配置

2009-07-15 17:58:07

iBATIS 動態映射

2009-07-22 09:44:05

iBATIS Para

2009-07-17 17:16:48

Spring iBAT

2009-09-15 09:45:23

Linq動態條件

2009-07-21 10:39:19

動態Mapped St

2009-07-24 16:59:57

iBatis模糊查詢

2009-07-21 17:06:35

iBATIS.NET執

2009-07-17 17:45:56

iBATIS Spri

2009-07-22 11:11:39

iBATIS分頁實例ObjectDataS

2009-07-20 14:56:18

iBATIS.NET動態選擇DAO

2009-07-16 17:40:48

iBATIS高級查詢iBATIS使用

2009-07-20 10:06:07

iBATIS.net查詢方式

2009-07-17 10:20:24

iBATIS實例

2009-07-20 16:07:19

Struts2.0 S

2009-07-20 15:37:09

iBatis like注入漏洞

2009-07-20 16:41:27

Struts2.0+i

2009-07-20 17:01:11

Struts2.0+i
點贊
收藏

51CTO技術棧公眾號

欧亚av在线| 91免费视频播放| 国产欧美日韩影院| 欧美视频一区二区在线观看| 日韩欧美一区二区视频在线播放| 瑟瑟视频在线免费观看| 一区二区蜜桃| 日韩国产欧美区| 无需播放器的av| 色呦呦在线视频| 91麻豆福利精品推荐| 成人写真福利网| 国产成人亚洲欧洲在线| 日韩一区电影| 日韩精品在线视频美女| 日韩精品你懂的| 九色porny自拍视频在线观看| 国产日韩欧美一区二区三区乱码 | 亚洲欧美日本国产有色| 成人高潮片免费视频| 日韩精品久久久久久| 欧美国产日韩在线| 91视频免费看片| 日韩高清电影免费| 91精品国产乱| 美女网站视频黄色| 亚洲精品动漫| 一区二区免费看| 亚洲一区二区免费视频软件合集| 日日夜夜精品免费| 国产精品一品视频| 国产欧美中文字幕| 国产污视频网站| 国产午夜久久| 久久久久久久久久久久av| 亚洲综合图片一区| 国产一区二区三区四区五区| 欧美成人性福生活免费看| 久久国产精品国产精品| 网友自拍亚洲| 色综合久久综合| 日韩日韩日韩日韩日韩| 影音先锋男人资源在线| 中文字幕一区在线| 天天综合色天天综合色hd| 少妇激情av一区二区| 成人av网站免费| 国产精品国产一区二区| 精品毛片一区二区三区| 国内精品在线播放| 国产精品1234| 五月天中文字幕| 日韩综合小视频| 日本欧美中文字幕| 亚洲欧美综合自拍| 噜噜噜91成人网| 秋霞午夜一区二区| 中文字幕一区在线播放| 亚洲女同同性videoxma| 2019亚洲日韩新视频| 永久免费看片在线播放| 亚洲三级国产| 91高清免费在线观看| 欧美精品一区二区成人| 午夜日韩av| 欧美二区在线播放| 久久精品国产亚洲AV无码男同 | 成 年 人 黄 色 大 片大 全| 欧美精品videossex少妇| 亚洲综合在线免费观看| 久久99久久99精品| 蜜桃视频在线网站| 色综合色狠狠天天综合色| 牛夜精品久久久久久久| av在线精品| 精品国产一二三区| 中国极品少妇videossexhd| 欧美人妖视频| 在线观看中文字幕亚洲| 久久爱一区二区| 狠狠爱成人网| 青青在线视频一区二区三区| 中文字幕人妻精品一区| 国产精品伊人色| 国产精品一区二区免费看| 头脑特工队2免费完整版在线观看| 久久精品人人爽人人爽| 亚洲最大免费| а_天堂中文在线| 一本大道久久精品懂色aⅴ| 欧美午夜aaaaaa免费视频| 嫩呦国产一区二区三区av| 亚洲国产精品成人va在线观看| 精品无码人妻一区| 香蕉精品视频在线观看| 91精品国产91久久久久久不卡 | xxxcom在线观看| 色天使久久综合网天天| 91亚洲一区二区| 欧美黄色影院| 久久精品国产免费观看| 激情五月色婷婷| 久久99精品国产麻豆婷婷| 国产高清精品一区| 福利视频在线看| 亚洲一区在线电影| 亚洲成人福利在线观看| 北条麻妃一区二区三区在线| 亚洲一级片在线看| 欧美日韩在线国产| 欧美影院久久久| 欧美18视频| 成人日韩欧美| 色视频成人在线观看免| 中文字幕乱码在线人视频| 竹菊久久久久久久| 欧美大片免费观看| 中文字幕日韩三级| 91丨九色丨黑人外教| 手机成人av在线| 涩涩在线视频| 精品人在线二区三区| 快灬快灬一下爽蜜桃在线观看| 欧美午夜在线视频| 成人做爽爽免费视频| 青青草免费在线| 亚洲国产日韩综合久久精品| 色啦啦av综合| 国产亚洲第一伦理第一区| 欧美裸身视频免费观看| 中文字幕+乱码+中文字幕明步| 99久久婷婷国产综合精品电影| 午夜探花在线观看| av在线播放一区| 亚洲理论在线a中文字幕| 久久97人妻无码一区二区三区| 免费人成精品欧美精品| 欧美12av| 欧美性猛交xxx高清大费中文| 亚洲高清在线观看| 精品少妇久久久久久888优播| 久久国产剧场电影| 色一情一区二区三区四区| xx欧美视频| 精品丝袜一区二区三区| 日韩成人免费观看| 99免费精品在线观看| 日韩xxxx视频| 欧美一级一片| 7m精品福利视频导航| 亚洲三级中文字幕| 欧美特级www| 成年人免费观看视频网站| 免费永久网站黄欧美| 欧美一区国产一区| 日韩在线免费| 日韩在线观看高清| 国产丝袜视频在线观看| 一区二区三区在线高清| 成年女人免费视频| 99在线精品视频在线观看 | 狠狠久久伊人| 欧美一级电影久久| 国产黄色片在线播放| 欧美色图一区二区三区| 欧美色视频一区二区三区在线观看| 精品一区二区三区av| 男人的天堂视频在线| 成人三级av在线| 欧美一级在线播放| 成人在线免费视频| 欧美精品日韩一区| 久久免费精彩视频| 久久久精品免费网站| 色悠悠久久综合网| 羞羞色午夜精品一区二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产精品老女人视频| yiren22亚洲综合伊人22| 欧美视频在线一区| 中文国语毛片高清视频| 老司机午夜精品视频在线观看| 婷婷久久五月天| 日韩在线电影| 成人444kkkk在线观看| 亚洲高清在线观看视频| 色综合天天综合| 欧美亚洲色综久久精品国产| 激情五月激情综合网| wwwjizzjizzcom| 久久午夜影院| 成人久久久久爱| 毛片大全在线观看| 日韩国产一区三区| 亚洲 欧美 日韩 在线| 亚洲人成精品久久久久| 国产女人18毛片水真多18 | 久久久久久久久久久久久久久久久久av| 四虎永久在线精品免费网址| 天天综合网天天综合色| 波多野结衣久久久久| 成人激情视频网站| 国产亚洲欧美在线视频| 日韩欧美一区二区三区在线视频| 91天堂在线视频| 国产乱码精品一区二三赶尸艳谈| 亚洲精品久久久久久下一站| 国产精品福利电影| 亚洲成人av福利| 91狠狠综合久久久久久| 国产不卡一区视频| 狠狠干狠狠操视频| 雨宫琴音一区二区在线| 亚洲成人第一| 国产精品久久久久久久久久白浆 | 日韩天堂在线观看| 国产一卡二卡在线| 中文字幕在线视频一区| youjizz.com日本| 日本特黄久久久高潮| 六月婷婷激情网| 色男人天堂综合再现| 国产成人免费观看| 国产精品诱惑| 777777777亚洲妇女| 色综合999| 日韩一区二区三区国产| 特黄视频在线观看| 538prom精品视频线放| 中文字幕一区二区三区人妻四季| 亚洲国产婷婷综合在线精品| а天堂中文在线资源| 97久久人人超碰| 国内自拍第二页| 美国十次了思思久久精品导航 | 黑人玩欧美人三根一起进| 中文字幕精品久久久久| 日韩精品视频无播放器在线看| 亚洲国产欧美一区二区三区同亚洲 | 中文字幕欧美日韩va免费视频| 青青草免费在线| 亚洲国产精品女人久久久| 国产同性人妖ts口直男| 欧美午夜一区二区三区| 国产精品国产精品国产| 欧美日韩午夜激情| 国产在线视频卡一卡二| 一区二区三区在线视频观看58| 国产亚洲精品精品精品| 久久伊99综合婷婷久久伊| 中文字幕免费高清视频| 国产91精品一区二区麻豆网站| 无人在线观看的免费高清视频 | 在线观看免费的av| 丝袜美腿一区二区三区| 97xxxxx| 久久精品男女| 成年人黄色片视频| 麻豆精品网站| 激情网站五月天| 青青草91视频| 99sesese| 狠狠久久亚洲欧美| 中文字幕在线观看日 | av免费观看不卡| 成人av手机在线观看| 亚洲日本久久久| av日韩在线网站| 亚洲狠狠婷婷综合久久久久图片| 粉嫩嫩av羞羞动漫久久久| 中文字幕无人区二| 国产成a人无v码亚洲福利| 国产艳妇疯狂做爰视频| 国产超碰在线一区| 污污免费在线观看| 国产精品18久久久久久vr| 久久久男人的天堂| 97国产精品videossex| 加勒比一区二区| 国产精品成人免费在线| 曰本女人与公拘交酡| 亚洲va欧美va人人爽午夜| 妺妺窝人体色www婷婷| 欧美午夜无遮挡| 亚洲视屏在线观看| 欧美高清精品3d| 亚洲欧洲国产综合| 亚洲人成网在线播放| 日本成人在线播放| 欧美高清在线观看| 亚洲精品国产嫩草在线观看| 国产精品视频区1| 国产精品亚洲四区在线观看| 超碰97在线人人| 麻豆国产欧美一区二区三区r| 欧美一区2区三区4区公司二百| 欧美一区二区三区高清视频| 日本丰满大乳奶| 亚洲精选在线| 高清av免费看| 高清视频一区二区| 欲求不满的岳中文字幕| 国产精品久久夜| 精品一区免费观看| 色香蕉久久蜜桃| 亚洲欧美另类日韩| 亚洲人成在线播放| 中中文字幕av在线| 日本一区二区不卡| 极品国产人妖chinesets亚洲人妖| 品久久久久久久久久96高清| 亚洲女同中文字幕| 17c丨国产丨精品视频| 久久爱另类一区二区小说| 日本人添下边视频免费| 国产精品区一区二区三区| 不卡的免费av| 在线播放欧美女士性生活| 日本中文字幕电影在线观看| 另类色图亚洲色图| 日本久久二区| 蜜桃久久精品乱码一区二区| 91成人网在线观看| 乌克兰美女av| 99国产精品一区| 欧美日韩在线视频免费播放| 在线中文字幕一区二区| 天天操天天干天天插| 欧美精品在线网站| 成人精品电影在线| 国产精品美女诱惑| 亚洲成av人片一区二区密柚| wwwxxx黄色片| 国产在线精品视频| 欧美亚洲日本在线| 欧美在线免费视屏| 香蕉av在线播放| 26uuu另类亚洲欧美日本一| 日本99精品| 在线播放豆国产99亚洲| 蜜臀av一区二区三区| a天堂中文字幕| 欧美日韩中文字幕在线视频| 日韩在线观看视频网站| 欧美精品生活片| 青青国产精品| 午夜免费电影一区在线观看| 奇米影视一区二区三区| 中文字幕人妻一区二区| 五月激情六月综合| 四虎影视在线观看2413| 欧美精品18videos性欧| 日本一区二区三区电影免费观看| 亚洲乱码一区二区三区| 视频在线观看一区二区三区| 中文字幕在线观看网址| 一区二区视频在线看| 欧美一区二区三区激情| 欧美极品欧美精品欧美视频 | 久热这里只精品99re8久| 亚洲三级观看| 少妇精品一区二区| 日韩欧美国产高清91| 日本一本草久在线中文| 欧美一级电影在线| 色天天久久综合婷婷女18| 天天爽天天爽夜夜爽| 国产无人区一区二区三区| 夜夜躁狠狠躁日日躁av| 久久久精品网站| 亚洲精品v亚洲精品v日韩精品| 熟女视频一区二区三区| 国产乱妇无码大片在线观看| 免费看一级一片| 欧美一区二区三级| 激情aⅴ欧美一区二区欲海潮| 国产一区在线观| 亚洲尤物影院| 三级黄色在线观看| 欧美成人video| 国产盗摄——sm在线视频| 日本一区二区三区四区高清视频 | 国产精品无人区| 精品区在线观看| 97久久精品人人澡人人爽缅北| 亚欧日韩另类中文欧美| 五月天开心婷婷| 亚洲一区二区三区自拍| 水莓100国产免费av在线播放| 国产免费一区二区三区在线能观看 | 亚洲国产精品久久久久秋霞蜜臀| av日韩电影| 成人手机视频在线| 99精品一区二区| 中文字幕二区三区| 国产69精品久久久久9999| 欧美日中文字幕| 波多野结衣先锋影音| 在线91免费看| 欧美成人精品一区二区男人小说|