久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Spring如何集成ibatis項目并實現dao層基類封裝

瀏覽:5日期:2023-08-11 15:54:53

Apache iBatis(現已遷至Google Code下發展,更名為MyBatis)是當前IT項目中使用很廣泛的一個半自動ORM框架,區別于Hibernate之類的全自動框架,iBatis對數據庫的操作擁有更加靈活的控制,對于那些經常需要調用本地數據庫函數自定義SQL語句,或是喜歡自己優化SQL執行效率的開發者來說,iBatis是一個非常不錯的選擇。

而得到廣泛應用的開源企業架構SpringFramework,也很好的將其進行了集成,使得iBatis在 SpringFramework中的使用更加便利、快捷。開發者所要做的就是繼承SpringFramework中提供的SqlMapClientDaoSupport類即可。下面將簡單介紹使用spring中集成的ibatis進行項目中dao層基類封裝,以方便開發。

1、SqlMapClientFactoryBean 的裝配

SqlMapClientFactoryBean是SqlMapClientTemplate使用的基礎,如果在SpringFramework應用中沒有裝配SqlMapClientFactoryBean,那么SqlMapClientTemplate將不可用,報空指針錯誤。其配置信息如下:

<bean class='org.springframework.orm.ibatis.SqlMapClientFactoryBean'> <!-- iBatis sqlmap config 文件位置 --> <property name='configLocation'> <value> /WEB-INF/classes/org/bussiness/config/ibatis/SqlMapConfig.xml </value> </property> <!-- 在SpringFramework配置文件中使用的數據源 --> <property name='dataSource'> <ref local='dataSource' /> </property> <!-- 如果需要讀寫Lob字段,需要注入在SpringFramework配置文件中配置好的Handler,這里是Oracle的數據庫 --> <property name='lobHandler' ref='oracleLobHandler'/></bean>

2、繼承使用SqlMapClientDaoSupport類

2.1)首先定義一個IBaseDao接口提供各種場景的查詢、修改、刪除、分頁查詢的各種抽象功能方法

package org.biframework.dao.ibatis;import com.ibatis.common.util.PaginatedList;import java.util.List;import org.biframework.exception.DaoException;public abstract interface IBaseDao{ public abstract Object getObject(String paramString, Object paramObject) throws DaoException; @SuppressWarnings('unchecked') public abstract List getList(String paramString, Object paramObject) throws DaoException; public abstract PaginatedList getPgntList(String paramString1, Object paramObject, String paramString2) throws DaoException; public abstract PaginatedList getPgntList(String paramString1, Object paramObject, String paramString2, int paramInt) throws DaoException; @SuppressWarnings('unchecked') public abstract List getListUseSameStmt(String paramString, Object[] paramArrayOfObject) throws DaoException; public abstract int update(String paramString, Object paramObject) throws DaoException; public abstract int transUpdateSameOpt(String paramString, Object[] paramArrayOfObject) throws DaoException; public abstract int transUpdate(Object[][] paramArrayOfObject) throws DaoException; @SuppressWarnings('unchecked') public List getList(String statementName, Object parameterObject, int skipResults, int maxResults) throws DaoException;}

備注:該層也可以不寫

2.2)繼承使用SqlMapClientDaoSupport類并實現IBaseDao接口

package org.biframework.dao.ibatis;import java.util.ArrayList;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.biframework.exception.DaoException;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;import com.ibatis.common.util.PaginatedList;public class BaseDao extends SqlMapClientDaoSupport implements IBaseDao { @SuppressWarnings('unused') private static Log log; protected static final int PAGE_SIZE = 15; @SuppressWarnings('unchecked') static Class class$0; /* synthetic field */ public BaseDao() { } /* 使用spring中集成的ibatis實現數據的查詢、修改、刪除 1)當請求參數被封裝為一個普通對象,查詢結果為List集合: 使用queryForList返回List 源碼方法如下:getSqlMapClientTemplate(),獲取SqlMapClientTemplate對象, 參數說明:a、statementName sql聲明;b、parameterObject請求參數對象 queryForList方法源碼如下 public List queryForList(String statementName, Object parameterObject) throws DataAccessException { executeWithListResult(new SqlMapClientCallback() { private final String val$statementName; private final Object val$parameterObject; public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForList(this.val$statementName, this.val$parameterObject); } }); } */ @SuppressWarnings('unchecked') public List getList(String statementName, Object parameterObject) throws DaoException { List list = getSqlMapClientTemplate().queryForList(statementName,parameterObject); return list; } /* 2)當請求參數被封裝為一個數組對象時: 即使用數組存放多個傳參對象(obj1、obj2...)而后使用相同sql,進行多次查詢,將多次查詢的結果list1、list2...放到結果集List中) 使用queryForList返回List 封裝的方法如下: */ @SuppressWarnings('unchecked') public List getListUseSameStmt(String statementName, Object objectParam[]) throws DaoException { List list = null; List temp = null; if (statementName == null || objectParam == null|| objectParam.length == 0){ return list; }else{ for (int i = 0; i < objectParam.length; i++) {if (list == null){ list = new ArrayList(); temp = getSqlMapClientTemplate().queryForList(statementName,objectParam[i]);} if (temp != null){ list.addAll(temp);}} } return list; } /* 3)當請求參數被封裝為一個普通對象,查詢結果為Object對象 */ @SuppressWarnings('unchecked') public Object getObject(String statementName, Object parameterObject) throws DaoException { Object result = null; List list = getSqlMapClientTemplate().queryForList(statementName,parameterObject); if (list != null && list.size() > 0){ result = list.get(0); } return result; } /* 4)ibatis-common-2.jar、使用ibatis自身封裝的PaginatedList工具類進行分頁查詢,每頁15條數據。 public PaginatedList queryForPaginatedList(String statementName, Object parameterObject, int pageSize) throws DataAccessException { if (((this.sqlMapClient instanceof ExtendedSqlMapClient)) && (((ExtendedSqlMapClient)this.sqlMapClient).getDelegate().getTxManager() == null)) { throw new InvalidDataAccessApiUsageException('SqlMapClient needs to have DataSource to allow for lazy loading - specify SqlMapClientFactoryBean’s ’dataSource’ property'); } (PaginatedList)execute(new SqlMapClientCallback() { private final String val$statementName; private final Object val$parameterObject; private final int val$pageSize; public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForPaginatedList(this.val$statementName, this.val$parameterObject, this.val$pageSize); } }); } */ public PaginatedList getPgntList(String statementName, Object parameterObject, String pageDirection) throws DaoException { PaginatedList list = getSqlMapClientTemplate().queryForPaginatedList(statementName, parameterObject, 15); if ('next'.equals(pageDirection)) list.nextPage(); else if ('previous'.equals(pageDirection)) list.previousPage(); else if ('first'.equals(pageDirection)) list.isFirstPage(); else if ('last'.equals(pageDirection)) list.isLastPage(); return list; } /* 4)自己指定分頁查詢的數量 */ public PaginatedList getPgntList(String statementName, Object parameterObject, String pageDirection, int pageSize) throws DaoException { PaginatedList list = getSqlMapClientTemplate().queryForPaginatedList(statementName, parameterObject, pageSize); if ('next'.equals(pageDirection)) { System.out.println('下一頁'); list.nextPage(); } else if ('previous'.equals(pageDirection)) { System.out.println('上一頁'); list.previousPage(); } else if ('first'.equals(pageDirection)) { System.out.println('首頁'); list.isFirstPage(); } else if ('last'.equals(pageDirection)) { System.out.println('末頁'); list.isLastPage(); } return list; } /* 5)該方法暫時未理解其主要是處于何種場景使用 */ public int update(String statementName, Object parameterObject) throws DataAccessException { Integer result = (Integer)execute(new SqlMapClientCallback() { private final String val$statementName; private final Object val$parameterObject; public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return new Integer(executor.update(this.val$statementName, this.val$parameterObject)); } }); return result.intValue(); } */ public int transUpdate(Object statementAndparameter[][]) throws DaoException { Object statements[] = statementAndparameter[0]; Object parameters[] = statementAndparameter[1]; int result = 0; for (int i = 0; i < statements.length; i++) { String name = (String) statements[i]; Object param = parameters[i]; result += getSqlMapClientTemplate().update(name, param); } return result; } /* 6)請求參數被封裝為一個數組對象,返回結果為成功更新的記錄數使用spring封裝的update方法進行更新操作 */ public int transUpdateSameOpt(String statementName, Object objectParam[]) throws DaoException { int result = 0; if (statementName == null || objectParam == null|| objectParam.length == 0) return result; for (int i = 0; i < objectParam.length; i++) result += getSqlMapClientTemplate().update(statementName, objectParam[i]); return result; } /* 7)請求參數被封裝為一個普通對象,返回結果為成功更新的記錄數 */ public int update(String statementName, Object parameterObject) throws DaoException { int result = getSqlMapClientTemplate().update(statementName,parameterObject); return result; } static { log = LogFactory.getLog(org.biframework.dao.ibatis.BaseDao.class); } /* 8)請求參數被封裝為一個普通對象,并對查詢的結果記錄指定跳躍數和最大結果集 */ @SuppressWarnings('unchecked') public List getList(String statementName, Object parameterObject, int skipResults, int maxResults) throws DaoException { return getSqlMapClientTemplate().queryForList(statementName,parameterObject, skipResults, maxResults); }}

3、進行dao層配置,并進行查詢等操作

3.1)所有的dao層都繼承BaseDao類

import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.biframework.dao.ibatis.BaseDao;import org.biframework.exception.DaoException;import org.bussiness.product.detailquery.bo.StPolicyBean;public class StPolicyDao extends BaseDao { protected static Log log = LogFactory.getLog(StPolicyDao.class); @SuppressWarnings('unchecked') public List getStPerm(StPBean param) throws DaoException{ return super.getList('getShortPrem', param); } public Object getStPermCount(StPBean param) throws DaoException{ return super.getObject('getShortPremCount', param); } }}

3.2)進行dao裝配 detailQuery-applicationContext.xml

<bean class='org.bussiness.product.detailquery.dao.NstPolicyDao'> <property name='dataSource'> <ref bean='dataSource' /> </property> <property name='sqlMapClient'> <ref bean='sqlMapClient' /> </property></bean>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 午夜免费观看网站 | 免费黄色片一区二区 | 亚洲电影一区 | 91精品国产综合久久久久久蜜月 | 自拍偷拍视频网站 | 亚洲tv国产 | 国产视频一区二区 | 日韩一区精品视频 | 成人午夜性a一级毛片免费看 | 亚洲成人影院在线观看 | 免费色在线 | 日本精品久久 | 久久久久中文字幕 | 男女18免费网站视频 | 国产精品久久久久久吹潮 | 热久久久久 | 国产中文视频 | 精品美女久久久 | 亚洲一区二区三区在线 | 国产亚洲一区二区三区在线观看 | 免费一二三区 | 国产成人精品一区二区三区视频 | 日韩成人精品 | 亚洲综合中文网 | 高清一区二区三区 | 91天堂 | 久久久av| 中文字幕欧美日韩 | 国产精品乱码久久 | 精品美女久久久 | xxxx免费视频 | 激情久久久久 | 人人看人人插 | 国产成人av综合 | 国产永久免费 | 国产精品久久久久久久久 | 91资源总站| 国产在线网 | 四色成人av永久网址 | 日韩视频一区二区三区 | 日韩av电影免费 | 久久手机视频 | 国产富婆一级全黄大片 | 狠狠色综合久久丁香婷婷 | 亚洲精品一区在线观看 | 麻豆一区一区三区四区 | 国产精品久久久久久久久久妞妞 | 一级片在线观看 | 91手机精品视频 | 日韩免费一区 | 999在线视频免费观看 | 不卡一区二区三区四区 | www视频在线观看 | 亚洲不卡视频在线观看 | 亚洲精品视频在线看 | 伊人久操| 在线电影亚洲 | 国产中文字幕一区 | 一区二区三区高清不卡 | 亚洲精品一区二区三区樱花 | 日韩视频在线一区二区 | 资源av | 久久99精品一区二区三区三区 | 男人天堂视频在线观看 | 国产精品不卡视频 | 色婷婷综合久久久中文字幕 | 久久久久久极品 | 日韩福利在线观看 | 日韩中文字幕欧美 | 国产精品久久久久久久电影 | 国产亚洲精品久久久久久久久 | 精品国产欧美一区二区三区成人 | 亚洲精品成人 | 国产一级黄色大片 | 久久精品久久久 | 特一级黄色片 | 成人久久 | 香蕉视频黄色 | 国产日韩精品视频 | 91在线精品秘密一区二区 | 久久久久国产一区二区三区四区 | 欧美韩日 | 亚洲一区二区在线看 | 精品少妇一区二区三区日产乱码 | 一区二区三区视频 | 国产精品一区二区在线观看 | 成人免费毛片嘿嘿连载视频 | 中文无码日韩欧 | 一区二区三区四区精品 | 国产成人免费视频 | 在线成人免费视频 | 免费日韩 | 久久精品综合 | 99影视| 激情久久久久 | 久久久久久久久久一区二区 | 一区二区三区免费在线观看 | 国产色片在线 | 亚洲激情在线 | 精品久久香蕉国产线看观看亚洲 | 日韩av免费在线观看 | 国产精品久久久久久久久费观看 | 麻豆国产露脸在线观看 | 日日操视频 | 中文字幕在线观看 | 成人国产精品视频 | 成人影院av| 日韩在线一区二区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 一本色道精品久久一区二区三区 | 欧洲一级毛片 | 成人久久久久久久久 | av在线免费观看一区二区 | 欧美日韩精品在线观看 | 97国产在线视频 | 一级在线播放 | 免费黄色在线 | 免费看片一区二区三区 | 国产精品久久久久久久久久久免费看 | 国产精品视频入口 | 可以在线观看的黄色 | 成人二区 | 综合伊人 | 欧美成人精品一区二区三区 | 韩日免费视频 | 99久久婷婷国产综合精品电影 | 国产在线免费 | 精品一区二区av | 国产精品久久久久久久久久东京 | 91免费在线看| 久久精品国产一区二区电影 | 国产视频福利一区 | 91精品久久 | 三级色黄| 久久精品国产精品亚洲 | 久久久在线 | 久久中文字幕一区 | www国产亚洲精品久久网站 | 91亚洲国产成人久久精品网站 | 在线观看国产视频 | 日韩中文视频 | 久在线 | 精品无人乱码一区二区三区的优势 | 国产日韩精品视频 | 日日干夜夜骑 | 成人午夜剧场 | 日韩欧美一级精品久久 | 国产精品亚洲综合 | 超碰8| 99成人 | 久久亚洲免费 | 看片天堂 | 亚洲欧洲一区二区三区 | 亚洲激情一区 | 精品国产欧美一区二区 | 日本久久久久久 | 国产91色在线 | 亚洲 | 成人a网| 日韩一区电影 | 免费看男女www网站入口在线 | 国内av网站| 四虎精品在线 | 久久久久国产 | 中文字幕日韩欧美一区二区三区 | 亚洲aaa| 成年人免费在线视频 | 久久久久国产一区二区三区 | 久久亚洲欧美日韩精品专区 | 国产99久久久精品视频 | 一级毛片免费完整视频 | 国产成人午夜视频 | 国产成人jvid在线播放 | 青青草久草在线 | 天天操网 | 午夜在线观看视频网站 | 99色在线视频 | 久久99国产精品久久99大师 | 色婷婷一区二区三区四区 | 欧美激情精品久久久久 | 另类免费视频 | 日日夜夜免费精品视频 | 久久之精品| 久久精品一区二区三区不卡牛牛 | 日产一区二区 | aaa在线免费观看 | 久久久极品 | 涩久久 | 2019亚洲日韩新视频 | 久久久久久久久久久久网站 | 国产精品第一区 | 久草免费在线视频 | 日韩免费一级 | 黄色一级毛片免费 | 久久久精品影院 | 九草在线 | 国产精品永久免费自在线观看 | 亚洲网站在线播放 | 久久精品网 | 国产a免费 | 国产精品久久久久久久久久久杏吧 | 成人h视频在线观看 | 免费一区二区三区 | 日韩一区二区在线播放 | 日韩一区二区在线免费观看 | 日日爱886| 精品乱子伦一区二区三区 | 久久网页 | 色免费在线观看 | 成人黄色在线观看 | 精品亚洲永久免费精品 | 国产不卡在线 | 久久国产精品首页 | 成人一级片 | 亚洲国产精品一区二区第一页 | 一区二区在线视频 | 久久a国产 | 国产精品1页 | 久久久久9999国产精品 | 久久久成人精品 | 九九热免费精品视频 | 韩国精品视频在线观看 | 亚洲男人天堂网 | 蜜桃视频一区二区 | 精品免费一区二区 | 久久亚洲欧美日韩精品专区 | www.亚洲一区二区 | 午夜精品网站 | 国产成人免费 | 国产精品91久久久久 | 久久久久久亚洲精品 | 欧美中文在线 | 不卡一区 | 欧洲一区二区在线观看 | 日本黄色电影网站 | 最新国产在线 | 黄色片视频免费 | 在线a级毛片 | 一级毛片电影 | 精品无码久久久久国产 | 国产一区中文字幕 | 黄色片在线 | 亚洲欧美国产一区二区三区 | 欧美性猛交xxxx黑人猛交 | 香蕉综合久久 | 欧美精品成人一区二区三区四区 | 日本视频在线 | 欧美福利在线观看 | 国产欧美精品区一区二区三区 | 久久综合av | av一区二区在线观看 | 国产女人爽到高潮免费视频 | 亚洲国内精品 | 一色屋精品久久久久久久久久 | 欧洲国产伦久久久久久久 | 久久伊人一区二区 | 天天碰天天操 | 精品国产91| 国产精品久久久久aaaa九色 | 国产视频中文字幕 | 精品一二区| 亚洲综合国产 | 国产视频三区 | jizz在线看片| 一区免费在线观看 | 91大片| 亚洲一区精品在线 | aaa在线免费观看 | 中文字幕在线精品 | 国产精品色哟哟哟 | 亚洲成人一区二区 | 国产97在线 | 亚洲 | 成人免费看| 日韩精品久久 | 美女久久 | 久久免费精品视频 | 精品久久久久国产免费 | 国产xxx在线观看 | 国产无套丰满白嫩对白 | 国产激情偷乱视频一区二区三区 | 人人av在线| 亚洲网站视频 | 亚洲欧美激情在线 | 精品国内| 成人精品一区二区三区中文字幕 | 欧美黄色网 | www.日韩| 欧产日产国产精品一二 | 久草精品视频在线播放 | av黄在线观看 | 国产精品欧美日韩在线观看 | 国产精品不卡视频 | 在线视频一区二区三区 | 波多野结衣在线网址 | 亚洲日韩中文字幕一区 | 精品国产黄色片 | 成人二区| 中文字幕免费看 | 国产a免费 | 国产亚洲精品久久久久动 | 国产日韩精品在线观看 | 欧美日韩精品一区二区三区在线观看 | 亚洲综合在线一区 | 日韩欧美综合在线 | 每日更新亚洲 | 天天操狠狠操网站 | 一级免费毛片 | 在线观看日韩av | 欧美日韩精品 | 一区二区不卡视频 | 亚洲一区二区三区免费视频 | 国产一区精品电影 | 国产精品久久久久久久久久久小说 | 日日夜夜国产 | 日韩av免费在线观看 | 欧美精品在线一区二区 | 国产成人午夜视频 | 中文字幕亚洲一区二区三区 | 国产成人久久精品一区二区三区 | 免费观看日韩一级片 | 欧美日韩精品一区二区在线播放 | 国产美女高潮 | 国产一区二 | 一级在线看 | 成人在线观看免费 | 国产乱码精品一区二区三区av | 一级黄色毛片免费 | 欧美午夜寂寞影院 | 亚洲不卡免费视频 | 成人免费xxx在线观看 | 国产精品影院在线观看 | 成人片在线播放 | 欧美成人免费在线视频 | 国产精品久久久一区二区三区 | 日韩在线欧美 | 精品国产欧美一区二区三区成人 | 国产精品毛片无码 | 欧美综合一区二区 | 亚洲成人免费视频 | 国产精品美女久久久久久久网站 | 精品久久久久久久久久久久包黑料 | 91精彩视频在线观看 | 一区二区欧美视频 | 日韩欧美在线综合 | 久久久性色精品国产免费观看 | 日韩视频www| 裸体的日本在线观看 | 久久精品久久久久电影 | 天天碰天天操 | 欧美夜夜爽 | 婷婷久久综合九色综合绿巨人 | 国产精品2区 | 在线观看一区 | 欧美日本国产一区 | 国产欧美网址 | 成人精品久久久 | 91在线免费看 | 欧美国产日韩一区 | 久久久久综合狠狠综合日本高清 | 婷婷综合一区 | 久久www免费人成看片高清 | 国产一区二区在线看 | 国产一级黄色av | 成人毛片视频免费 | 亚洲综合在线一区二区 | 国产精品一区二区三区av | 国产精品国产精品国产专区不片 | 二区三区在线观看 | 一区亚洲| 91看片淫黄大片一级在线观看 | 午夜激情免费在线观看 | 国产精品视频一区二区免费不卡 | 在线欧美 | 成人欧美一区二区三区视频xxx | 一区在线视频 | 久久久蜜桃一区二区人 | 成人a级片在线观看 | 中文字幕av在线 | 成人av观看| www.在线播放| 国产精品国产a级 | 涩涩视频在线观看 | 日韩在线观看三区 | 亚洲伊人精品酒店 | 国产精品一区二区三区免费 | 国产欧美日韩精品一区 | 在线免费观看色视频 | 天天操天天插天天干 | 成人亚洲精品 | 国产女人爽到高潮免费视频 | 久久久精品国产 | 色婷婷综合网 | 国产 欧美 日韩 一区 | 欧美一级片在线观看 | 日本成人高清视频 | 四季久久免费一区二区三区四区 | 欧美激情视频一区二区三区 | 久久久xxxx | 欧美一区永久视频免费观看 | 久久久久亚洲av毛片大全 | 欧美 日韩 国产 一区 | 国产最好的精华液网站 | 午夜剧院官方 | 久草网在线视频 | 国产在线中文字幕 | 欧洲一级黄 | 国产福利91精品 | 日韩在线视频精品 | 亚洲免费小视频 | 国产日韩精品视频 | 日本精品999 | 国产一区二区三区免费视频 | 国产ts人妖另类 | 最新日韩免费 | 色综合久久88色综合天天 | 四虎永久免费影院 | 久久久久综合狠狠综合日本高清 | 欧美视频在线观看一区 | 毛片a级片 | 黄色一级片看看 | 中文字幕亚洲字幕一区二区 | 在线视频 中文字幕 | 久久国产精品一区二区 | 欧美日韩一区二区在线 | 精品久久国产老人久久综合 | 一区二区三区四区精品 | 欧美福利在线观看 | 国产精品一区二区在线观看 | 夜夜骚 | 日韩在线免费 | 久久综合热 | 激情毛片 | 色综合色综合网色综合 | 亚洲香蕉视频 | 国产精品揄拍一区二区久久国内亚洲精 | 黄色a视频| 天天草天天插 | av网站免费看| 日韩av在线中文字幕 | 亚洲成人中文字幕 | 91精品国产一区二区三区四区在线 | 久久亚洲国产精品 | 亚洲综合在 | 玖玖爱视频在线 | 精品一区二区三区在线观看 | 久久一视频 | 一区二区三区 在线 | 91高清视频在线观看 | 亚洲国产福利一区 | 成人一区二区三区久久精品嫩草 | 国产伦精品一区二区三区四区视频_ | 亚洲男人天堂2024 | 91精品国产91久久久久久 | av手机在线播放 | 北条麻妃一区二区三区中文字幕 | av免费网站在线观看 | 欧美成人高清视频 | 国产精品18久久久 | 成人黄页在线观看 | 亚洲一区二区在线播放 | 欧美日韩中文字幕在线 | 欧美激情一区二区三级高清视频 | www.在线播放 | 精品一区二区国产 | 亚洲视频在线免费观看 | 毛片网站在线 | 亚洲精品电影在线观看 | 国产精品一二区 | 国产精品久久久久久久久久久小说 | 婷婷中文字幕 | 在线成人一区 | 一本大道综合伊人精品热热 | 亚洲a网站| 国产一级片 | 中文字幕一二三 | 亚洲综合色自拍一区 | 91精品国产91久久久久游泳池 | 欧美日韩一区二区视频在线观看 | 国产a级毛片 | 成人精品一区二区三区中文字幕 | 欧美高清成人 | 免费看的毛片 | 久久久一区二区三区 | 97碰碰碰 | 日韩一区二区三区在线 | 久在线视频 | 黑人巨大精品欧美一区二区三区 | 免费视频一区 | 毛片黄色| 中文字幕亚洲欧美 | 伊人激情av一区二区三区 | 亚洲三级在线观看 | av网址在线播放 | 国产精品一区二区三区四区 | 伊人久久综合影院 | 在线观看免费av的网址 | 日韩在线视频在线观看 | 国产日韩欧美在线 | 色综合网站| 97综合色 | 在线不卡一区 | 成人a网| a黄视频 | 国产成人精品一区二区三区视频 | 欧美精品一区二区三区在线播放 | 99久久婷婷国产综合精品电影 | 亚洲国产成人久久综合一区,久久久国产99 | 亚洲精品乱码 | 欧美视频免费 | 亚洲精品乱码8久久久久久日本 | 久久一区二区视频 | 成人黄页在线观看 | 久久久网 | 一区二区影院 | 超碰香蕉 | 成人免费影院 | 一区二区视频免费 | 99精品欧美一区二区三区综合在线 | 999国产在线观看 | 97理论片 | 激情久久av一区av二区av三区 | 久久久久久一区 | 一级片网| 国产99久久久精品视频 | 成人免费在线观看 | 久久国产精品视频 | 国产精品不卡视频 | 国产成人久久精品一区二区三区 | 国产精品九九久久99视频 | a国产在线 | 日韩中文字幕免费观看 | 国产精品亚洲综合 | 欧美电影一区 | 中文字幕国产 | 成人欧美在线视频 | 国产一级免费视频 | 久久99深爱久久99精品 | av亚洲在线 | 欧美精产国品一二三区 | 国产精品久久久久久久久久久久久久 | 国产久精品 | 亚洲午夜精品久久久久久app | 精品国产天堂 | h小视频| 久久在线播放 | 日韩在线视频中文字幕 | 免费 视频 1级 | 永久黄网站色视频免费 | 色吊丝在线永久观看最新版本 | 国产精品日韩一区二区 | 性大毛片视频 | 一区二区久久 | 成人免费在线观看视频 | 91精品国产自产91精品 | 91精品综合久久久久久五月天 | 久久久久久精 | 国产免费黄视频 | 国产成人精品一区二区视频免费 | 好姑娘影视在线观看高清 | 色综合天天综合网国产成人网 | 久久综合中文字幕 | 91社区在线播放 | 久久亚| 国产精品网站在线观看 | 欧美一区二区三区在线观看视频 | 久久国内精品 | 亚洲不卡视频 | 热re99久久精品国产99热 | 欧美黄色一区 | 99视频免费在线观看 | www.成人| 久久久免费看 | 一区二区三区在线播放 | 日韩理论在线 | 亚洲国产精品久久久 | 日韩电影免费在线观看中文字幕 | 久久久一区二区 | www国产成人免费观看视频 | 国产精品久久久久不卡 | 欧美福利专区 | 国产一极毛片 | 日韩三及片 | 一色屋精品久久久久久久久久 | 国产成人av免费 | 一区二区三区四区免费看 | 国产在线在线 | 中文字幕日韩视频 | 久久天堂av综合合色蜜桃网 | 久色视频 | 国外成人在线视频网站 | 丁香婷婷久久久综合精品国产 | 欧美日韩中文字幕 | 亚洲一区在线视频 | 中文av在线免费观看 | 国产99久久精品一区二区永久免费 | 欧美日韩国产在线 | 久久亚洲国产精品日日av夜夜 | 国产区视频在线 | 欧美成人高清视频 | 91视频国产区 | 国产在线h | av影片在线播放 | 久久国产一 | 性培育学校羞耻椅子调教h 欧美精品网站 | 国产日韩欧美一区 | 久久久久国产精品视频 | 色噜噜狠狠狠综合曰曰曰88av | 国产精品日本一区二区在线播放 | 国产成人a亚洲精品 | 精品无人乱码一区二区三区 | 亚洲美女在线视频 | 国产毛片精品 | av网站免费线看 | wwwsihu | 国产精品久久久久久吹潮 | 免费大片在线观看网站 |