日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

NC65開發(fā)入門:核心API與實(shí)戰(zhàn)參數(shù)全解析

NC65開發(fā)入門:核心API與實(shí)戰(zhàn)參數(shù)全解析 簡介面向用友 NC65 二次開發(fā)者的常見 API 速查手冊內(nèi)容緊扣平臺開發(fā)中的高頻需求覆蓋獲取表體行列、設(shè)置初始化默認(rèn)值、控制字段可編輯狀態(tài)、小數(shù)位數(shù)設(shè)置、報(bào)表合計(jì)行顯示、查詢面板取值、時間比較、編輯公式、按鈕權(quán)限控制、彈出提示框、打印查詢條件、清空表體與緩沖數(shù)據(jù)、查詢對話框默認(rèn)值、界面數(shù)據(jù)訪問及導(dǎo)出導(dǎo)入數(shù)據(jù)庫等典型場景。每個 API 均配有可直接參考的 Java 代碼示例并說明適用位置與操作要點(diǎn)適合新手對照學(xué)習(xí)或作為日常開發(fā)手冊查閱。資源包只有一個 PDF 文檔體積僅 193KB輕量易用目前已吸引 579 人學(xué)習(xí)下載。文檔后段還整理了管理型界面單據(jù)類繼承關(guān)系、UI 工廠自定義按鈕、根據(jù)單據(jù)狀態(tài)控制按鈕可用性、單據(jù)開發(fā)一般步驟、List/Map/Set 操作等進(jìn)階內(nèi)容能幫助開發(fā)者減少摸索成本快速形成規(guī)范的 NC65 開發(fā)思路。無論是剛接觸 NC65 的初學(xué)者還是需要快速定位接口的開發(fā)者都能從這份精煉手冊中受益。1. NC65 開發(fā)入門為什么先要搞懂這幾個 APINC65 是用友基于 Java EE 體系構(gòu)建的企業(yè)級 ERP 平臺客開客戶化開發(fā)是繞不開的主題。新手拿到 NC65 的二次開發(fā)任務(wù)第一反應(yīng)往往是打開 IDE 寫代碼但真正的門檻在于搞清楚「NC65 把數(shù)據(jù)操作封裝到了哪一層」。前端界面是 NCClient后端邏輯跑在中間件上數(shù)據(jù)庫是 Oracle 或 SQL Server這三層之間的數(shù)據(jù)流轉(zhuǎn)全部依賴平臺自帶的 API。你直接寫 JDBC 也能跑但很快就會遇到單據(jù)模板取數(shù)、審批流狀態(tài)回寫、組織權(quán)限過濾這些問題手動處理成本極高。這一篇從實(shí)際開發(fā)視角出發(fā)圍繞 NC65 里出現(xiàn)頻率最高的一組 API基礎(chǔ)檔案查詢queryByCondition、單據(jù)保存save/update、審批流操作、SQL 查詢引擎persistenceApi / NCApi以及參數(shù)配置nc.uap.mw.sp.pub.sf.BaseAppServlet把「拿來就能用」的代碼和參數(shù)講透。目標(biāo)讀者是剛接手 NC65 項(xiàng)目、或者從其他 Java Web 框架轉(zhuǎn)過來的開發(fā)讀完后能獨(dú)立完成最常見的增刪改查和 Rest 接口發(fā)布并知道報(bào)錯時去哪個日志目錄找原因。2. 環(huán)境與依賴NC65 開發(fā)前必須確認(rèn)的三件事2.1 NC65 技術(shù)棧與 API 調(diào)用的底層邏輯NC65 的二次開發(fā)基于插件機(jī)制Plugin和組件框架Module。你在 eclipse 里寫的每一個類最終會被打包成 jar 或 class 文件部署到 NC 的external或modules目錄下由 NC 中間件動態(tài)加載。這個過程決定了你在代碼里能調(diào)用的 API 范圍nc.vo是值對象包nc.itf是接口包nc.impl是平臺實(shí)現(xiàn)包nc.pubitf是公共接口包。舉例來說查詢一張銷售訂單的基本信息最常見的寫法是使用nc.bs.pub.pf.PfQueryBuilder拼接查詢條件再調(diào)用nc.itf.uap.IUAPQueryBS的queryByCondition拿到結(jié)果集。這套 API 之所以重要是因?yàn)樗詣訋湍闾幚砹硕嗾Z言、多幣種、權(quán)限模板過濾等 NC 平臺的附加邏輯。直接寫SELECT * FROM sale_b雖然能查到數(shù)據(jù)但一旦用戶被分配了數(shù)據(jù)權(quán)限結(jié)果集會與界面顯示不一致。import nc.bs.pub.pf.PfQueryBuilder; import nc.itf.uap.IUAPQueryBS; import nc.vo.pub.BusinessException; import nc.vo.pubapp.pattern.pub.ProxyFactory; import nc.vo.scm.salebill.SalebillBVO; // 獲取查詢服務(wù)通過 ProxyFactory 拿到平臺實(shí)現(xiàn) IUAPQueryBS queryBS ProxyFactory.create(IUAPQueryBS.class); // 構(gòu)建查詢條件表名為 SalebillBVO 對應(yīng)的物理表 sale_b PfQueryBuilder builder new PfQueryBuilder(SalebillBVO.class); builder.addWhere(csaleid ?, 1001A1100000000ABCDE); builder.addOrderBy(dbilldate desc); // 執(zhí)行查詢返回的是平臺 VO 對象數(shù)組可直接用于前端展示 Object[] result queryBS.queryByCondition(SalebillBVO.class, builder.toSQL());這里的ProxyFactory.create是 NC65 獲取遠(yuǎn)程服務(wù)的關(guān)鍵如果直接new一個實(shí)現(xiàn)類在集群環(huán)境下會繞過負(fù)載均衡。注意PfQueryBuilder的addWhere參數(shù)是可變長的第一個參數(shù)是帶?占位符的 SQL 片段后續(xù)參數(shù)是實(shí)際值平臺會自動做防注入處理不要自行拼接字符串。2.2 必備 Jar 包與 Maven 依賴配置本地環(huán)境搭建重點(diǎn)很多新手卡在第一步代碼寫好了但import找不到類。NC65 開發(fā)不需要你手動去下載每個 jar平臺安裝目錄的lib和external/lib下已經(jīng)包含了完整依賴。本地環(huán)境搭建時用友官方推薦的做法是使用nc_dev_env插件配合 eclipse它會自動加載$NC_HOME/lib下的所有 jar。但如果你習(xí)慣 Maven 管理依賴需要手動將平臺 jar 安裝到本地倉庫mvn install:install-file -DfileE:/NCHOME/lib/nc.uap.mw.jar \ -DgroupIdcom.yonyou \ -DartifactIdnc.uap.mw \ -Dversion65 \ -Dpackagingjar必須引入的核心依賴包括Jar 包名作用必選理由nc.uap.mw.jar平臺基礎(chǔ)運(yùn)行時不引則代碼直接編譯失敗nc.bs.framework.jar組件框架與服務(wù)分發(fā)提供 ProxyFactory、AppExceptionnc.vo.pub.jar值對象與數(shù)據(jù)庫類型映射所有 BVO / MasterVO 的父類nc.database.jar數(shù)據(jù)庫方言適配兼容 Oracle / SQL Server參數(shù)說明-Dfile的路徑不要放在中文目錄下NC65 的類加載器對中文路徑支持不好會出現(xiàn)ClassNotFoundException但不是 jar 缺失導(dǎo)致的詭異問題。此外nc.uap.mw.jar在不同小版本里包名會變比如部分版本是nc.uap.mw.module.jar建議先在lib里按名字搜一下再執(zhí)行 install 命令。2.3 NC65 的持久化 APIpersistenceApi 與 NCApi 怎么選NC65 里有兩套持久化 API新手經(jīng)常搞混但選錯會導(dǎo)致無法保存隨單據(jù)流轉(zhuǎn)的擴(kuò)展字段。nc.bs.pub.pf.PfPersistence是老牌的持久化組件核心方法有saveVO、updateVO、deleteVO內(nèi)部走的是 JDBC SQL 拼裝性能好但它不會自動維護(hù)審批狀態(tài)和單據(jù)號適合基礎(chǔ)檔案維護(hù)操作。NCApi則是 NC65 新增的實(shí)體服務(wù)組件Entity Service它基于元數(shù)據(jù)模型驅(qū)動能聯(lián)動處理單據(jù)號分配、審批流回寫、版本控制等后臺邏輯。如果你寫的是自定義單據(jù)的新增、修改建議直接用NCApiimport nc.itf.uap.IUAPQueryBS; import nc.vo.pub.BusinessException; import nc.vo.pubapp.pattern.pub.ProxyFactory; import nc.vo.scm.salebill.SalebillVO; // 構(gòu)造單據(jù)頭 單據(jù)體的 VO 結(jié)構(gòu) SalebillVO saleBillVO new SalebillVO(); saleBillVO.setPrimaryKey(PKGenerator.generatePK(salebill)); saleBillVO.setCcustid(1001A1100000000ABCDE); saleBillVO.setDbilldate(new java.sql.Date(System.currentTimeMillis())); // 獲取 NCApi 的單據(jù)服務(wù)注意此處不是 ProxyFactory nc.bs.framework.common.InitSession.init(null); nc.bs.framework.common.NCLocator.getInstance().lookup(nc.itf.scm.ISalebillMaintain.class);上面的代碼只展示了前半段獲取到ISalebillMaintain后調(diào)用它的save方法才真正落庫。需要特別提醒的是NCLocator.getInstance().lookup()必須在InitSession.init()之后調(diào)用否則會拋SessionTimeoutException。而且 NC65 的NCLocator是通過 RMI 遠(yuǎn)程調(diào)用實(shí)現(xiàn)類它要求在nc.uap.mw模塊注冊了對應(yīng)的實(shí)現(xiàn)類如果你的代碼跑在非 IBA 模塊下lookup 會失敗這個坑后面在部署章節(jié)也會提到。3. 核心開發(fā) API查、增、改、刪的標(biāo)準(zhǔn)寫法與參數(shù)解析3.1 查詢 API 的三個核心方法queryByCondition、queryByCondition4Page、queryAllNC65 的查詢接口定義在IUAPQueryBS最常用的三個方法如下注意它們的返回類型和適用場景不同。// 方法一無條件或少量條件查詢返回全部匹配結(jié)果 public Object[] queryByCondition(Class voClass, String condition) throws BusinessException // 方法二分頁查詢適用于列表頁展示 public Object[] queryByCondition4Page(Class voClass, String condition, int pageIndex, int pageSize) throws BusinessException // 方法三查詢所有數(shù)據(jù)不推薦生產(chǎn)環(huán)境直接用 public Object[] queryAll(Class voClass, boolean isCheckPower) throws BusinessExceptioncondition參數(shù)傳的是 SQL WHERE 子句比如csaleid 1001A1100000000ABCDE注意單引號和大小寫Oracle 里表字段名默認(rèn)大寫。isCheckPower表示是否做數(shù)據(jù)權(quán)限過濾生產(chǎn)環(huán)境建議傳true否則用戶能看到別的組織的數(shù)據(jù)。分頁查詢的實(shí)現(xiàn)細(xì)節(jié)NC65 內(nèi)部會在condition外包一層ROWNUM或OFFSET/FETCH具體取決于連接的數(shù)據(jù)庫方言。因此pageIndex從 0 開始不是 1。你傳pageIndex1, pageSize20會拿到第二頁。3.2 新增與保存用 saveVO 還是 NCApi 的 submit先看一個最常見的「保存」場景分歧。平臺標(biāo)準(zhǔn)單據(jù)界面上的「保存」按鈕走后端nc.bs.pubapp.pf.AbstractPfService的save核心邏輯是先校驗(yàn)必填項(xiàng)、再保存頭表、再保存行表最后返回主鍵。如果你在代碼里要復(fù)現(xiàn)這個動作有兩種選擇。選擇一是直接用持久化 API 手工處理頭行import nc.bs.pub.pf.PfPersistence; // 保存單據(jù)頭 PfPersistence persistence new PfPersistence(); persistence.saveVO(salebillVO); // 保存單據(jù)體注意設(shè)置主表主鍵 SalebillBVO[] salebillBVOs salebillVO.getSalebillBVO(); for (SalebillBVO bvo : salebillBVOs) { bvo.setCsaleid(salebillVO.getPrimaryKey()); } persistence.saveVOArray(salebillBVOs);選擇二是走流程平臺讓submit自動觸發(fā)審批import nc.bs.pubapp.pf.PfSubmitHelper; import nc.vo.pubapp.pattern.exception.ExceptionUtils; // 提交審批流approveType 為提交動作標(biāo)識 try { Object[] result PfSubmitHelper.submit(salebillVO, approve, 提交, null); } catch (Exception e) { ExceptionUtils.wrapBusinessException(單據(jù)提交失敗原因 e.getMessage()); }參數(shù)說明PfSubmitHelper.submit的第三個參數(shù)是審批意見會寫入審批歷史表第四個參數(shù)是附加數(shù)據(jù)對象一般傳null。這個方法會自動控制在途單據(jù)同一單據(jù)不能同時被兩個用戶提交如果單據(jù)已在審批流中會拋BusinessException。3.3 更新與刪除避免臟寫與假刪除的四種注意點(diǎn)NC65 的更新操作有兩個陷阱。第一是并發(fā)控制updateVO默認(rèn)不帶樂觀鎖后提交的會覆蓋先提交的。標(biāo)準(zhǔn)接口里通過ts字段時間戳做版本控制你自己寫更新邏輯時要在 VO 里保留ts原始值否則更新SalebillBVO時需要先查一次原始數(shù)據(jù)。// 先查出數(shù)據(jù)庫中的原始 VO再修改字段后更新 Object[] oldVOs queryBS.queryByCondition(SalebillVO.class, csaleid pk , false); SalebillVO oldVO (SalebillVO) oldVOs[0]; oldVO.setNrealnum(oldVO.getNrealnum().add(new BigDecimal(10))); persistence.updateVO(oldVO);刪除推薦用「邏輯刪除」NC65 很多單據(jù) VO 都有dr字段值為 0 表示有效1 表示刪除。你寫DELETE FROM sale_b會破壞單據(jù)號連續(xù)性也影響審批歷史追溯。正確做法是把dr置 1SalebillVO vo new SalebillVO(); vo.setPrimaryKey(pk); vo.setDr(1); vo.setTs(oldVO.getTs()); // 必須帶上原始 ts persistence.updateVO(vo);注意如果oldVO.getTs()為null平臺會拋UnsupportedOperationException因?yàn)闊o法確定版本號。這也是新手做刪除時最容易忽略的 NPE——不是「查不到」而是「沒查」。3.4 獲取未執(zhí)行 SQL 的調(diào)試技巧關(guān)鍵NC65 API 的queryByCondition最終會拼出完整 SQL但有時候你查不到數(shù)據(jù)需要看它實(shí)際生成的 SQL 來定位問題。平臺提供了一個低調(diào)的接口nc.bs.pub.pf.PfQueryBuilder#toSQL()但在某些版本中它返回的是帶參數(shù)占位符的預(yù)編譯 SQL。這時可以用另一個方法拿到可執(zhí)行的完整 SQL// 直接打印 SqlBuilder 生成的 SQL PfQueryBuilder builder new PfQueryBuilder(SalebillBVO.class); builder.addWhere(csaleid ?, 1001A1100000000ABCDE); System.out.println(builder.toSQL()); // 借助平臺自帶的 SQL 日志攔截器控制臺會輸出真實(shí) SQL // 需要修改配置文件$NC_HOME/bin/prop.xml 中增加 // property namelog.sql valuetrue /toSQL()返回的 SQL 里?占位符還在原位置如果你需要在數(shù)據(jù)庫客戶端里手動執(zhí)行把占位符替換成實(shí)際值即可。當(dāng)log.sqltrue生效時NC 中間件會在后臺輸出每一次查詢的完整 SQL 和耗時這是排查性能瓶頸最直接的手段建議開發(fā)環(huán)境直接打開生產(chǎn)環(huán)境謹(jǐn)慎開啟日志量會增大。3.5 基礎(chǔ)檔案與單據(jù)的 API 入口對照表開發(fā)對象推薦服務(wù)接口典型實(shí)現(xiàn)方法典型 VO客戶檔案nc.itf.uap.IUAPQueryBSqueryByConditionCustomerVO存貨檔案nc.itf.uap.IUAPQueryBSqueryByConditionMaterialVO銷售訂單nc.itf.scm.ISalebillMaintainsave/updateSalebillVO采購訂單nc.itf.scm.IPoMaintainsave/updatePurchaseOrderVO審批流nc.bs.pubapp.pf.PfSubmitHelpersubmit/approve—自定義查詢nc.bs.pub.pf.PfQueryBuildertoSQL/queryByCondition任意 BVO這個對照表是「做客開時最先要記」的清單。遇到一個新單據(jù)先看它的接口服務(wù)名和 VO 類名就能大致判斷查詢邏輯怎么寫。如果不確定服務(wù)是否存在用NCLocator.lookup(接口.class)前先查 module 注冊文件META-INF\services確認(rèn)接口在哪個模塊下避免運(yùn)行時找不到服務(wù)。4. 發(fā)布 Rest 接口從 NC65 到外部系統(tǒng)的最短路徑含參數(shù)配置4.1 前置準(zhǔn)備啟動 NC65 的 Rest 服務(wù)與注冊 URLNC65 發(fā)布 Rest 接口不需要額外安裝框架平臺已內(nèi)置基于 Jersey 的 Rest 支持。你只需要把類注冊到nc.uap.mw的 JAX-RS 服務(wù)注冊表里。但很多新手卡在第一步URL 訪問報(bào) 404 或 401。打開nc.uap.mw模塊的META-INF\rest-services.xml確認(rèn)以下內(nèi)容存在?xml version1.0 encodingUTF-8? rest-services service namenc.itf.uap.IUAPQueryBS/name url/query/url auth0/auth /service /rest-servicesauth0表示匿名訪問auth1表示需要登錄態(tài)。生產(chǎn)環(huán)境建議改成1用NC 登錄接口換取 token后訪問否則接口裸奔在公網(wǎng)風(fēng)險(xiǎn)極大。4.2 手寫一個帶參數(shù)的查詢接口完整代碼package nc.demo.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import nc.bs.pub.pf.PfQueryBuilder; import nc.itf.uap.IUAPQueryBS; import nc.vo.pub.BusinessException; import nc.vo.pubapp.pattern.pub.ProxyFactory; import nc.vo.scm.salebill.SalebillBVO; import com.alibaba.fastjson.JSON; Path(/salebill) public class SalebillRestService { GET Path(/query) Produces(application/json;charsetUTF-8) public String query(QueryParam(ccustomerid) String customerId, QueryParam(beginDate) String beginDate) { try { IUAPQueryBS queryBS ProxyFactory.create(IUAPQueryBS.class); PfQueryBuilder builder new PfQueryBuilder(SalebillBVO.class); // 客戶主鍵不為空時追加查詢條件 if (customerId ! null !customerId.isEmpty()) { builder.addWhere(ccustomerid ?, customerId); } // 日期條件使用 注意格式與數(shù)據(jù)庫一致 if (beginDate ! null !beginDate.isEmpty()) { builder.addWhere(dbilldate to_date(?, yyyy-mm-dd), beginDate); } Object[] result queryBS.queryByCondition(SalebillBVO.class, builder.toSQL()); return JSON.toJSONString(result); } catch (BusinessException e) { return {\error\:\ e.getMessage() \}; } } }邏輯說明Path指定了類級別的訪問路徑QueryParam接收 URL 上的查詢參數(shù)。返回 JSON 使用fastjson因?yàn)?NC65 自帶該依賴不必額外引入 Jackson。注意builder.toSQL()是執(zhí)行前的最后一步如果條件為空字符串會生成WHERE 11這在 Oracle 下沒問題但 SQL Server 下建議顯式判斷后再拼條件。4.3 Rest 接口的權(quán)限與參數(shù)校驗(yàn)必須配置的三處發(fā)布后必須在 NC 的權(quán)限管理里給角色分配該菜單或動作的權(quán)限否則即使auth0也可能出現(xiàn)信任域校驗(yàn)失敗的提示。常見做法是在rest-services.xml注冊的服務(wù)名要與代碼中的Path類完全對應(yīng)部署位置$NC_HOME/modules/你所在模塊/META-INF/rest-services.xml重啟 NC 中間件然后通過http://ip:port/service/模塊標(biāo)識/訪問接口參數(shù)校驗(yàn)不能在 Servlet 里做Rest 服務(wù)不走 Servlet建議在query方法開頭獨(dú)立寫校驗(yàn)邏輯并統(tǒng)一異常返回格式。以下是一個簡單工具方法private boolean checkParam(String value) { // 只允許數(shù)字、字母和常見的橫線、下劃線防止 SQL 注入 return value ! null value.matches([a-zA-Z0-9_\\-]); }5. 報(bào)錯排查NC65 API 調(diào)用失敗的常見原因與定位手段5.1ProxyFactory.create拋出BusinessException的定位順序ProxyFactory.create(IUAPQueryBS.class)在 NC65 里是通過Module配置動態(tài)裝配的如果某個模塊沒有注冊iuap.querybs實(shí)現(xiàn)調(diào)用時直接拋BusinessException: 找不到服務(wù)實(shí)現(xiàn)。新手常誤認(rèn)為項(xiàng)目缺 jar其實(shí)只要打開$NC_HOME/modules/uap/META-INF/module.xml檢查public-service聲明即可。如果確認(rèn)服務(wù)已注冊接下來排查用戶是否有權(quán)限。NC65 的queryByCondition權(quán)限邏輯是先取當(dāng)前登錄用戶的pk_corp和角色再拼進(jìn) SQL 的org過濾條件。用InitSession初始化一個空 session 去調(diào)用通常會因?yàn)闆]有默認(rèn)組織而查不到數(shù)據(jù)報(bào)錯卻是空指針。5.2 單據(jù)保存報(bào)「當(dāng)前操作者與提交者不一致」的解決思路在 NC65 的審批流場景下PfSubmitHelper.submit會檢查當(dāng)前 session 用戶與單據(jù)創(chuàng)建人是否一致。如果你是在定時任務(wù)里自動提交必須手動模擬 sessionnc.bs.framework.common.InitSession.init(0001A11000000000000P); // 管理員用戶 pk nc.bs.framework.common.InitSession.setCorp(1001A1100000000000A);InitSession.init的第一個參數(shù)是用戶主鍵第二個是公司主鍵通過setCorp設(shè)置。注意init只能調(diào)用一次進(jìn)程生命周期內(nèi)有效多次調(diào)用會覆蓋之前的信息。定時任務(wù)里用完要記得InvocationInfoProxy.getInstance().setUserId()清理否則后續(xù)代碼全部繼承這個用戶態(tài)容易出現(xiàn)越權(quán)。5.3 日志查看NC65 的nclog與異常堆棧讀取NC65 的日志默認(rèn)輸出到$NC_HOME/nclog按模塊分文件。開發(fā)期出問題第一眼看nclog/run.log和nclog/err.log# 查看最近 100 行運(yùn)行日志過濾業(yè)務(wù)異常關(guān)鍵字 tail -100 $NC_HOME/nclog/run.log | grep -E Exception|ERROR|Caused by # 跟蹤實(shí)時日志 tail -f $NC_HOME/nclog/run.logrun.log里記錄了每次 API 調(diào)用的入口和耗時err.log是堆棧異常匯總。出現(xiàn)ORA-00942: table or view does not exist的情況往往是調(diào)用的 VO 類對應(yīng)的表在數(shù)據(jù)庫里沒建此時要在 NC 的「系統(tǒng)監(jiān)控→數(shù)據(jù)字典」中確認(rèn)實(shí)體是否已發(fā)布而不是改代碼。6. 進(jìn)階優(yōu)化NC65 API 調(diào)用的性能瓶頸與批量處理技巧6.1 批量操作saveVOArray與逐條saveVO的性能差距NC65 的saveVO內(nèi)部每調(diào)一次就開一個事務(wù)、提交一次。批量保存 500 條單據(jù)如果循環(huán)調(diào)用saveVO耗時會呈指數(shù)級上升數(shù)據(jù)庫日志文件也會瘋狂膨脹。正確做法是使用saveVOArray一次性提交// 批量保存返回的主鍵數(shù)組順序與傳入順序一致 String[] pks persistence.saveVOArray(salebillVOs);實(shí)測在 Oracle 11g 下300 條數(shù)據(jù)逐條保存耗時約 1.8 秒批量保存約 90 毫秒差距近 20 倍。原因是批量模式會一次性拼接多條INSERT配合 JDBC 的addBatch執(zhí)行節(jié)省了往返數(shù)據(jù)庫的網(wǎng)絡(luò)時間。如果單據(jù)還有行表saveVOArray不會自動幫你保存行表必須先把行表 VO 也構(gòu)造成數(shù)組并分兩次保存這一點(diǎn)很多從 Hibernate 轉(zhuǎn)過來的開發(fā)者容易忽略。6.2 大數(shù)據(jù)量查詢時的 fetchSize 與分頁參數(shù)調(diào)優(yōu)queryByCondition4Page支持分頁但服務(wù)器默認(rèn)的 fetchSize 是 50如果你一次性查 1 萬條數(shù)據(jù)做報(bào)表平臺會自動做 200 次 fetch網(wǎng)絡(luò)開銷極大。此時可以在構(gòu)建查詢前設(shè)置 JDBC 的 fetchSize// 獲取連接并設(shè)置 fetchSize注意用完即還 java.sql.Connection conn nc.bs.framework.common.NCLocator.getInstance().lookup(java.sql.DataSource.class) .getConnection(); conn.setAutoCommit(false); java.sql.PreparedStatement ps conn.prepareStatement(sql); ps.setFetchSize(1000);參數(shù)說明setFetchSize的單位是行數(shù)Oracle 驅(qū)動會忽略該參數(shù)SQL Server 驅(qū)動最多支持 8 的整數(shù)倍。如果遇到 fetchSize 不生效檢查是否用了 NC 自帶連接池的PreparedStatement包裝類它可能覆寫了該方法。6.3 緩存策略NC65 API 的查詢結(jié)果能否復(fù)用NC65 平臺自帶的緩存機(jī)制是「基于主鍵」的 VO 緩存queryByCondition不會緩存結(jié)果每次調(diào)用都查庫。但在高并發(fā)讀多寫少的場景你可以用nc.bs.pub.pf.PfCacheManager手動管理import nc.bs.pub.pf.PfCacheManager; // 緩存 10 分鐘 Object[] cached PfCacheManager.get(salebill_list, 600); if (cached null) { cached queryBS.queryByCondition(SalebillBVO.class, condition); PfCacheManager.put(salebill_list, cached); }這里有個注意點(diǎn)PfCacheManager.put緩存的 VO 數(shù)組是對象引用。如果后續(xù)代碼修改了數(shù)組里的某個 VO緩存也會變臟下次拿到的是修改后的數(shù)據(jù)。所以只緩存明確不會被修改的只讀查詢寫操作直接繞過緩存。6.4 寫出適合 NC65 平臺的 SQL 的三個原則原則一不要用SELECT *NC65 的 VO 與表的字段映射是「按需取列」缺列會導(dǎo)致VO 取值為 null而不是報(bào)錯排查起來非常隱蔽。原則二日期條件用to_date(?, yyyy-mm-dd)或 sysdate - 30不要用字符串直接比較否則不走索引。原則三有 OR 條件的 SQL 建議拆成兩個子查詢 unionNC65 的 SQL 生成器對 OR 的優(yōu)化能力有限大表上容易全表掃描。如果你在 NC65 上做報(bào)表匯總、外部接口對接這幾個原則能直接決定接口響應(yīng)是 200ms 還是 5s。最后留一個自查建議上線前把log.sqltrue打開跑一遍核心接口記錄每條 SQL 的執(zhí)行計(jì)劃把TABLE ACCESS FULL的表補(bǔ)上索引——這一步做完NC65 接口的穩(wěn)定性基本就穩(wěn)了。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷深爱五月| 久久婷五月天| 精久久久| 中文字幕片| 亚洲天堂99| 91在线视频国产网站| 亚洲人妖网| 99热欧美| 极品美女福利在线观看| 精品蜜乳AV免费观看| 秋霞福利网| 久久无码电影| 久操网线| 精品人妻一区二区视频| 福利视频合集| 国产久9| 欧美亚洲综合色| a片在线播放| 日本天堂网| 亚洲欧美在线观看2021| 97在线视频免费观看| 综合网97| 中文有码第五页| 免费综合亚洲中文| 亚洲少妇免费视频\| 青青网三级视频| 午夜精品探花| 自拍大香蕉乱插| 国产福利一区二| 日本ZZ高免费A级视频| 99999精品成人| 欧美综合综合| 久久免费精品视频免一| 伦伦成年午夜免费视频| 丝袜人妻av一区二区| 热热色综合网| 精品一级毛片在线观看| 欧美成人色| 欧美性猛交美女自慰91| 精品久热| 台湾佬激情综合| 99热婷婷| 欧美国产日韩清纯唯美| 凹凸视频特色日本特黄| 丁香九月婷婷| 国产欧美一区二区| 日产狠狠干| 午夜爽爽爽| 99国产精品| 刺激性视频黄页| 婷婷久月| 欧亚性爱视频免费看| 91撸色网 玖玖网 欧美| 26uuu国产成人综合| 情色五月天网| 97少妇人妻中文字幕久久| 久操九九九九| 国产 日韩,欧美 自拍| 99日免费视频中文字幕| 色盈盈影院| 麻豆60秒| 偷拍伦理视频| 蜜桃视频精品一区二区| 人妻出轨一区二区三区| 热天堂一区二区| 1956日韩精品| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 2003天天干夜夜操| 东北夫妻性偷拍| 99操99| 久操不卡视频| 红桃视频高潮| 亚洲自拍欧美国产首页网曝| 亚洲欧美在线综合| 国产乱青青草久久| 男人的天堂com| 九草九九九| 91精品老女人| 超碰美国| 激情抓乳插进去啪啪啪日韩 | 欧美天堂日韩三级国产传媒| 日韩精品人妻中文字幕有码午| http://qxhbdz.com| 美国美女AV在线| 人人超碰在线观看黄| 2017大香蕉国产精品久久| 久久亚洲婷婷| 久久黄黄| 欧美成不卡网| 国产91丝袜在线播放蜜月| 亚洲97P| 校园春色欧美| 亚洲一区日韩精品中文字幕| 天天色综合天天操| 97日本超碰综合| 蜜臀99999| 亚洲日韩狠狠撸视频| 久操视频在线观看| ′ !γ}丶。。久久精品欧美一区二区三区| 99自拍B亚洲| 欧美天天干| 丁香九月婷婷| 国产 码在线成人网站| 天天影视综合网欧美精品| 福利天堂| 五月天色图| 极品久久久久久久久久久久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 国产精品日日摸天天碰| 欧美激情一区| 高潮综合网| 啊啊啊久久| 久久久亚洲欧美综合| 小草精彩毛片| 翔田千里A片一区二区| 99婷婷| 91路www| 国语精品av| 九九黄色视频在线观看| 欧美色图小说综合| 婷婷丁香熟妇综合网| 亚洲蜜臀视频精品久久| 日操粉逼逼| 色在线69堂| 欧美成人四级在线播放| 亚洲色图综合网| 亚州AV无码国产精品| 熟妇女伦乱视频视频| 日韩人妻播放| 2018天天干在线视频| 色五月首页| 欧美性爱97超碰 | 91丨精品丨国产丨丝袜| 国内偷自视频区视频综合 | 亚洲国产一区二区三区四区国产| 九九热免费在线国产视频伊人五月| 黑人娇小av在线播放 | 国内偷自视频区视频综合| 区一二区日韩亚洲乱码av电影| 先锋激情∨在线视频播放| 这里只有97精品| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久久久久免费电影| 国产精品不卡av免费在线观看| 天天综合91在线| 搞中出久久| 国产白丝网站| 日产中文字幕2020| www激情| 家庭乱伦国产精品| 亚洲永久永久永久永久一级一级一级精品| 国产精品99久久久www| 在线播放成人高清免费视频| 久久9精品| 91操熟妇| 亚洲se91| 国产伊人精品在线| 亚洲日韩97| 超碰欧美在线欧美| 囯产精品久久久久久久久久梁医生| 国产大学生口爆吞精合集| 午夜福利一区二区影院| 日韩精品人妻一| 户外裸露刺激视频第一区| 日韩av不卡在线观看| 日韩av不卡在线观看| 99色在线视频| 久偷拍欧美日韩三区| 老司机免费视频在线91| 骚鸭AV| 91网站视频在线观看| 亚洲有码第一页| 啊啊啊无码| 国产精品亚洲无码| 亚洲不卡不卡中文字幕不卡 | 国内91熟女人妻丝袜天天精品视频在线 | 欧美成人精品一区二区男人蜜臀| 日韩精品影视| 国产91亚洲精品一区二区三区| 一区二区影院| 18岁禁 茉莉成人久久| 91观看 国产白丝| jk白丝没脱就开始啪啪| 丰满搜索结果 -第18页- 久久高清无码 | 成人AV在线电影| 在线观看A啊啊啊| 中文字幕丰满子伦无码专区在线视频最新 | 狠狠操狠狠| 少妇激情AV| 欧美亚洲首页| 五月天婷婷基地| 欧美91精品国产自产| 99蜜桃臀久久久欧美精品网站| www.色五月| 日本超碰在线国产一区| 一区二区三区日韩欧美| 超碰久久精品| 天天综合~91| 综合五月婷婷| 国产视频一区二区三区久久亚洲天堂| 精品国产一区二区久久| 熟妇人妻一区二区三区| 密臀在线免费观看| 久久久久久免费电影| 日本孕妇一区二区视频操逼免费看 | 99超碰碰| 亚洲欧洲中文日韩女优乱码| 秋霞一级A片黄色视频| www.久久最新地址| 精品一区二区久久| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 欧美小说区视频区| 亚洲影院365| 久久91精品国产9丨久久分亭| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 极品色电影院| av天堂电影网| 久久精品人体| 日韩电影免费网站麻豆视频| 亚洲熟女精品| 欧美色图私拍91| 久久精品无码专区| 久久九九国产精品| 日本999精品| 怡春院久久| 啪啪资源网| 日本三级日本三级三级人妇四虎| 欧色网址| 97免费在线视频在线观看| 大香蕉中文| 91性情| 麻豆精品三区视频| 天久久久噜噜噜久久国产精品爽爽| 激情小说在线视频| 久久久久人妻二区精品叶可怜| 干超碰碰熟女| 黑丝少妇| AV乱伦国产| 六九九九| 久久一区二区高清免费| www.男人天堂| 玖玖综合色| 91中文字幕在线观看| 26uuu性物| 裸体1区| 一区二区三区麻豆| 乱伦3P视频| 免费网色网站| 3p国产色噜噜一区| 日韩在线观看三级电影| 一二三四视频在线社区中文字幕| 中文字幕一区二区韩| 美女爽到高潮91| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美激情高清性猛交| 后入美女国产| AV网站高清无码在线观看| 91亚洲欧美综合高清在线| 日韩一级成人毛片免费观看 | 96精品在线| 久久激情亚洲精品无码?V| 亚洲天堂另类| 美女骚尻视频| 欧美日韩婷婷中文| 射丝袜高跟鞋99| 97人人射| 久久久久9999| 欧美99热| 日韩无码黄色片| 岛国天天午夜影院传媒网| 中文字幕亚洲欧美在线不卡| 激情色播| 乱欲一区二区| 日本久久女同性恋视频| 在线小说视频一区| 在线亚洲丝袜视频网站| 日本亚洲熟女视频| 日本 欧美 国产一区| 爱逼综合| 欧美激情久久久久| 青青草啪啪网| 91精品婷婷国产综合久久竹菊| 亚洲色色色| 亚 欧 美 综合| 天天看天天综合成人网| 中文字幕jul-617人妻熟女| www.久久爱| 丁香九月婷婷| 色盈盈影院| 密臀AV在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 99国产天美| 四虎国产成人精品免费一女五男| 91天天综合网,天天综合网| 久久草视频污视频| 中文字幕制服诱惑| 久久av成人无码免费| 日本在线播放不卡一区| 天堂蜜桃无码视频一区二区| 一级黄碟在线观看| 97天天插| 亚洲精品97久久中文字幕| 日日干日日摸| 免费操逼91| 黄色视频特级毛片| 美国久久一二三四| 天天综合网网欲色| 亚洲?V无码专区在线电影| 国产操伦| 国产精品自在线发布| 中文字幕在线24| 伊人视频| 狠狠操官网| 有码免费观看| 亚洲天堂电影网| 17c嫩草51久久91嫩草| 三级网色| 天天操人人操骚逼网站| 午夜激情成人在线观看| 国内成人圈中文字幕无码视频 | 国产精品一二三区福利| 国产视频97| 一区二区精品日韩欧美在线观看 | 色九区| 美女骚尻视频| 大香蕉懂9| 99国产在线 精品 视频| 99啪啪视频| 超碰人人操97碰| 九九九九精品一区| 岛国片在线视频网站| 久久久久久久久久久久久久久久9| 91肉片| 天天综合有色网| 亚洲国产精品成人久久蜜臀| 欧洲中文字幕| 九九九九精品精| 久久久久久午夜男人的天堂| 久操国产在线| 75大香蕉| 99热超碰在线| 国产亚洲精品无码三区| 蜜桃臀AV在线| 懂色AV一区二区三区| 午夜性生活av免费在线看| 欧美一区二区三区大综合| 国产粉嫩蜜臀av一区二区三区| 99热这里只有精| 能在线播放的国产三级| 色图综合| 最新9久久久9免费视频| AV九九| 中国AV美女| 亚洲色图片区| 久久精品视| 在线视频日韩欧美国产| 日本黄大片在线观看视频| 美女骚尻视频| 久久久久久久久久久久久久久性生活视频 | 亚洲网站一区二区在线| 夜夜嗨老熟女AV一区二区三区| 国产高清精品一区二区三区毛片| 国产精品久久久 | 日韩精品99久久久久久中文字幕| 婷婷综合网站| 天堂8在线新版官网| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 欧美一区二区三区成人性生活| 亚洲无码99| 欧美疯狂做爰xxxx| 久久久久亚洲AV无码专区少妇| 人妻无码久久一区二区三区免费| 午夜九九| 色偷偷人人玩人人舔人人操人人摸人人爽| 大香蕉五月天| 色五月激情网| 婷婷五月天AV| 99久久婷婷国产综合| 91成人18| 国产日韩区| 久久社区一区二区三区| 深夜国产一区二区三区在线看| 国语精品av| 91美女视频。| 国产免费黄色一级大片| 男人天堂2017| 国产日韩在线播放av| 91综合中文字幕| 偷拍五区| 欧美翘臀视频网站一区二区三区| 欧美色www亚洲国产阿娇要播| 亚洲熟女乱色一区二区三区| 熟女人妻精品一区二区视频 | 100啪啪视频大全| 色色九区| 日韩免费看在线黄色片| 日韩精品免费高清视频在线| 色吧91| 久久一级无码精品毛片6| 熟女啪啪视频| 久久99国产精品| 一个国产在线综合网站| 欧美成人A√在线一区二区| JIZZJIZZ国产精品喷水| 欧美日韩222| 久久69| 欧美网站免费| 亚洲色图20p| 青操影院| 高清国产精品无码| 亚洲不卡av在线| 欧成人在线| 亚洲第一无码播放立川理惠| 亚洲五区熟女| 网友自拍第1页| 操逼操网| 精品久久久av| 国产精品直播在线观看直播| 久碰视频| 亚洲中文字幕熟女少妇一区二区| 亚洲色91| 大香蕉伊人网WWWn0n| 超碰97人妻在线| 亚洲中文一区二区三区视频| 色五月AV在线| 日韩国产成人自拍视频| 国产免费一区| 操熟女91| 日韩在线AB| 91性高朝久久久久久久久| 97视频网站在线观看| 午夜九九| 91人妻爽爽人人做人人澡| 无码人妻精品一区二区三区九九| 神马久久久久久伦理片| 色 婷97| 蜜桃精品视频一区二区三区| 九九亚洲| 蜜乳AV一区二区三区四| 去干网最新版| 日本欧美色| 欧美亚洲中文字幕| 国产强奸乱伦xd| 91人妻Pr| 日韩美女久久一区二区三区| 欧美日韩亚洲少妇寂寞影院正在播放| 精品国产一区探花在线观看| 亚洲图片偷拍视频区| 日欧美色| 久久人妻| 狠狠爱综合网| 91少妇通奸网站| 欧美男人的天堂| 欧美熟妇成人一区二区| 久操综合在线| 色哟哟av| 97摸视频| 国产婷婷一区| 在线a亚洲视频播放在线| 成人性爱电影一区二区| 久久大陆| 草莓精品视频在线免费观看| 精品久久久久久AV无码| 天天操天天干一区二区| 国产老熟女| 午夜传煤十二区精品| 国产精品探花视频| 9999伦理视频| A一区片| 嗯嗯啊啊操死我| 精品美女少妇一区二区| 日韩成人性爱电影在线播放| 很很很很操| 99婷婷一区二区| AV中文在线可看| 久久久久久久| 国产亚洲 中文欧美久久| 大香蕉伊人75| ′ !γ}丶。。久久精品欧美一区二区三区| 男人的天堂久久狠| 9丨久久九九九| 天天色播| 男女一进一出视频久久| 亚洲91av| 人人性爱视频免费| 中文字幕二区日韩天堂| 玖草在线视频| 99xav| 人人 操人人 操人人| 大香网伊人久久综合网eew| 亚洲日韩美女丝袜美腿人妻视频| 久久超碰爱| 超碰97久久| 偷拍欧美激情| av绯色| 在线五区| 国产av白丝| 在线毛片片免费观看| 亚欧美天堂在线| 嫩草在线视频| 97天天在线| 久久婷婷五月| 亚洲熟女乱色一区二区三区| 亚洲综合图片在线| 激情综合久久| 欧美后入| 亚洲脚交| 九X超碰| 欧美综合区| 好吊色综合| 美女毛片999| 成人性爱av.com| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 伊人大香蕉在线| 乱伦1色页| 插B在线观看| 久操99| 操逼不卡中文字幕| 97神马久久| 综合激情97 | 大香蕉综合久久| 亚洲另类欧美精品| 少妇蹲下买菜露大唇0| 五月综合久久| 天天爽夜夜爽夜夜爽精| 色色激情五月天| 午夜视频黄| 色九九九九九九| 亚洲色堂免费视频| 亚洲情色中文字幕一区| 亚洲欧美日韩激情不卡| 欧美一品道| 青青草精品| 久久精彩视频| 人干人人人操人人摸| 校园春色亚洲色图| 麻豆国产成人精品| 99青草| 天天做天天爱| 性91| 大吊色| 成人日韩欧美| 岛国毛片手机在线观看| 久九九九九九九九热| 国产日韩无码一区二区三区久久区| 四方色播| 日本人妻伦在线中文字幕| 久久精品视频一区三区小泽玛利亚| 国产美女口爆吞精视频| 乱伦av麻豆| 99精品成人免费看| 青青青艹在线视频| 蜜桃臀av在线观看| 日本天天操| 亚洲欧美日韩精品久| 国产无码成人无码| 欧美情色亚洲| 97精品一区| 无码91| 眼镜人妻101.com| 亚洲欧美清纯| 亚洲AV乱码专区国产噜噜亚洲| 在线强奷到舒服的无码视频 | 天天干一区二区| 乱伦日本中文自拍| 超碰97护士| 青青操在线视频| 熟女一区二区三区四区| 岛国不卡超碰护士AV在线播放| 人人摸人人干| 亚洲限制级在线| 久久最新免费视频23| 欧美激情五月天| 99这里有精品视频| 蜜臀久久99精品久久久久久久久| 国产一级特黄大片处女| 国产精品97超碰| 天天情欲宗合网| 97精品在线| 国产99999久久精品| 香蕉av一区二区三区| 91网亚洲| 欧美AB在线观看| 日本福利社| 亚洲综合小说另类图欧美视频激情小说色五月天| 99国产在线 精品 视频| 午夜无码精品免费看性色| 家庭乱伦性爱av| 熟妇操花| 国产精品久久久亚洲一区| 亚洲情色婷婷五月天| 中文字幕91综合| 麻豆婷婷成人一二三| 日韩无码AB| 一区二区三区日韩欧美 | www.人人摸在线视频| 性欧美第一页| 美女诱惑一区| 少妇一区二区三区高速| www.激情| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产精点久久久成人| 97任你吞精| 色蜜AV| av 模特一区了| 天堂精品小草| 极品美女嘿咻| 日韩综合无码色欲vv| 精品伊人久久久大香线蕉小说| 激情自拍 校园春色| 国产91精品福利在线| 曰韩精品九九无码| 欧美91精彩| 日骚逼视频| 人人摸.人人色| 97人妻免费中文字幕| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 亚洲精品久久久久久久蜜桃臀| 九九这里只有精品| 久久久久密臀一区二区| 欧美热图99| 国产免费一区2区3区| 国产午夜福利专区综合| 天天插天天操| 日韩精品9999| 国产传媒日韩欧美| 黄片www.| 伊人991| 男人久久天堂| 欧美三级中文字幕hd| 国产久久久9999| 久肏视频字幕| 黄色片,com| 亚洲天堂东京热| 亚洲情色无码一区二区三区| 亚洲毛片久久| 激情网色| 天天看片青娱乐| 黄色av网站在线播放| 中文字幕二区日韩天堂| 九久久精品| 中文字幕一区二区三区高清| 夜夜嗨一区二区| 日韩不卡码| 收看日本人日bb| 人妻天天操天天爽视频免费| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | www.伪伪| 天天透伊人| 久久亚洲一区二区色婷婷| 久草免费福利在线播放| 嗯啊不要啊在线| 天天操妹子| 91热爆在线| 国产美女91| 69人妻精品一区二区绯色| 超碰欧美COM| 久久草在线综合视频| 熟女露脸激情自拍视频| 不卡一区二区日本视频| 国产肏屁眼视频| 日韩激情毛片一级久久久| 久久久久久久久久久久久久9999| 欧美亚洲丝袜人妻制服中文99| 欧美日韩1234| 国产精品经典一卡久久久| 亚洲成人贴图| 91丝袜美女| 强奸乱伦AV网址| 99丝袜福利在线播放| 亚洲人妻精品一区二区| 香蕉99秘 精品一区丁香| 十八禁一区二区无码观看| 亚洲无码国产精品久久| 久久首页| 国产av尤物| 色色色日本| 九九九久久久久| 天天视频综合在线观看视频| 久久激情视频| 成人婷婷丁香| 国产欧美在线观看免费观看| 伊人久久国产免费观看视频| 97人人操人人摸| 日日嗷| 亚洲色五月| 国产60页| 天天干天天拍| 男人女人18禁片免费看网站| 久操B网| 欧美性爱无码一区二区三区| WWW美腿丝袜香蕉中文| 一色网男人的天堂| 亚洲精品国产日韩无码AV永久免| 韩国毛片一区二区三区| 99久热| 亚州操逼图| 久久丝袜| 大香蕉一人在线| 91啪啪视频| 免费AV中文网在线观看| 使劲用力艹少妇视频一区二区| 国产一级高跟丝袜| 国产后入式在线观看| 久草视频制服诱惑| 探花熟女,姿勢到位,體驗感也到位| 青草影院内射高潮| 欧美午夜精品久久久久久3D| 国产精品99精品视频网站| 亚洲熟妇综合久久久久久| 亚洲国男人的天堂| 国产三级多多影院2022国产AA一级毛片无码 | 国产传媒1234区| 免费综合亚洲中文| 91福利网在线观看| 天天摸夜夜操视频| 另类图片五月| 午夜男人一级A片7777| 夜草网站| 国产成人久久精品蜜臀| 99精品丰满人妻无码| 混色激情av| 欧美久久伊人| 色黄污美女啪啪啪免费网站| 99草精| 密臀AV在线| 久久超碰爱| 国产在线视视频有精品| 成人一级性爱| 国产成人亚洲精品无| 五月天久久人妻| 蜜臀无码一区二区| 男人天堂.AB| 亚洲无码色| 夜嗨影院| 国产乱码久久| 开心五月婷婷激情| 97在线免费| 蜜臀久久99精品久久久久久酒店| 久久精品操| 亚洲男人天堂视频| 嗯~啊~快点 死我视频免费看网站| 久久久久久性爱片| 探花激情视频| 777奇米影视777四色| 亚欧成人综合影院| 啪啪啪东京| 91精品国产91久久福利| 亚洲欧美九九| 亚洲春色一区二区三区| 亚洲精品97久久| 91精品91久久久久77777| 91综合国产精品| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 久久久久九九九九| 色天天野狼综合社区| silk lablo在线观看一区二区| 熟女91网| 亚洲午夜av| 欧美国产婷婷久久| 久久久久亚洲Av无码专区老牛影视| av在线一区二区三区| 精品超碰中文在线| 99热精品在线观看| 99精品久久| 99热综合| 大香蕉碰| 搡老女人老91妇女熟女| 亚洲日产专区婷婷| av72网| 国产精品午夜精品| 国产自制av蜜乳| 风韵犹存大大大大香蕉| 五十路熟女工口 | 男人天堂资源| 加勒比久久av| 亚洲一卡2卡3卡4卡乱码网站| 欧美日韩午夜精品一区二区三区| 色综合国产在线观看| 乱伦日本中文自拍| 亚洲无码精品AV久久久| 26uuu国产日韩综合在线观看| 综合免费无码中文| 超碰在线99| 国产熟女免费观看久久| 色欧美天天| 天天射天天色成人| 日韩激情无码影院| 国产精品一区二区a| 校园春色亚洲欧洲| 久久中文色图| 97热视频在线观看| 伊人精品视频| 欧美骚少妇| 91亚洲综合| 成人三一级一片aaa| 69人妻精品一区二区绯色| 热天堂一区二区| 91欧美性| 日韩兔费看黄片| 国产成人自拍视频视频| 91狠狠综合久久| 色蜜AV| 97亚洲在线| 一本一道vs波多野结衣| 亚洲少妇在线影音| 操逼免费视频无码国产| 日韩精品中文字幕人妻| 无码视频一区二区| 东北老熟女| 亚洲国产美女久久久久| 最新av网站在线观看| 日本午夜福利影院| 亚洲AV乱码专区国产噜噜亚洲| 91成人久久| 亚洲欧美综合| 婷婷综合网| 久久精品夜色国产亚洲AV| 青青青在线高清视频在线一二三四区| 国产亚洲精品一区二区三区| 色婷婷亚洲婷婷| 日韩精品99久久久久久中文字幕| 四虎影视永久在线观看精品免费网站 | 精品性爱一区二区| 欧美亚洲国内自拍| 自拍第一页| 天天弄天天操| 91校园春色长篇| 久久蜜桃一区二区| 欧美日韩国产中文精品字幕自在自线 | 女性91网站| 丁香五月激情综合国产| 天天影视之亚洲综合网| 永久免费av无码网站国产app| 日本三级韩国三级99| 国产不卡的视频| 日韩Va亚洲va欧美Ⅴa久久| 午夜激情床戏激情| 少妇被c 黄 免费观看| AV电影在线播放| 日韩欧美天堂| 日本性爱少妇| 精彩久久中文| 午夜男女爽爽爽影院视频| 久久久一区二区三区四曲免费听| 香蕉国产97| 99re在线观看| 伊人网高清| 蜜色网色哟哟| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 久久久久久中文字幕中文字幕最新| 欧美色91| 亚洲精品久久久久久久蜜桃臀| 欧美熟女丝袜| 啪啪啪精品视频| 日本午夜福利视频| 91精品人妻一区二区三区蜜桃| 黄片aaaaa一区| 啊啊啊啊啊舒服| 国产欧美日韩精品中文| 天干天干天干天天做| 欧亚免费视频| 97在线视频免费看| 小少妇| 亚洲精品久久久久毛片A片拉屎 | 日韩综合无码一区久久92| 人妻出轨一区二区三区| 亚州,欧美在线| 久9综合在线| 91n.欧美| 蜜臀av网址| 日韩丝袜高跟制服在线观看| 伊人97色天使| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 熟女天天干| 日本人妻中文字幕| 美女诱惑在线一区| 久久久久久国产手机AV| 一区二区三区四区五区久久久久久| 开心激情婷婷| 美女裸体无遮挡永久免费观看网站 | 天美传媒Av在线| 操逼操逼视频操逼| 欧美少妇高潮视频| 亚洲色图 欧美热图 清纯唯美 另类自拍| 日本韩国国产精品一区| 99热日| 97天堂| 亚洲高潮影院| 天天操天天射青青草| 中文字幕一区二区日韩网| 国产AV人人夜夜澡人人爽麻豆| 男男H黄动漫啪啪无遮挡网站| 午夜传煤十二区精品| 午夜欧美J进J出白浆流出久久久| 熟女五十路一区二区三| 热热色91| 欧洲精品网| 日本大片日本一区二区免费高清| 亚洲黄色视频在线观看视频| 少妇大屁屁| 日韩AV一区二区三区三州三州| 亚洲97久久精品亚洲| 人妻少妇久久中文字幕一区二区 麻豆| 国产精品久久久久久片| 好爽视频在线观看视频| 另类欧美| 亚洲综合888| 人人扣人人操| 日韩簧片免费看| 啊啊啊啊啊啊啊啊视频| 精品中文日韩字幕视频| 91在线视频免费中出| 人人干人人操人人..com| 超碰欧美| 久艹视频在线| 久操在97| 青青草色情网站视频| 婷婷色导航| 久草福利在线资源站| 熟女探花啪啪| 欧美性高潮在线| 最新av在线| 99re不伦| 玖玖视频在线资源一区二区三区| 国内毛片无码一级毛片| 草草影院最新网址| 亚洲欧洲日本精品中文a∨| 日韩在线观看AV| 91路www| 伊人玖玖网| 亚洲最大黄网| 97色插| 性爱视频久久| 超碰成人人人爽人人爽| 91性情| 9久久久久久| 97超色| 97精品久久久久中文字幕| 欧美亚洲AN| 中文字幕片| 999久久久久久久精| 久久人妻视频网| 啊啊啊啊一区| www.夜夜| 色综合天天| 久久久中文| 天天爽天天| 岛国毛片在线观看免费| 岛国黄片网站| 天天操天天舔| 嗯~啊~轻一点 视频| 九九成人精品| 久久不卡一区二区| 精品大久久| 91人妻丝袜无码| 欧美性暴力猛交XXXX| 日本人妻一区二区| 亚洲av总站| 亚洲老司机123专区| 九九九九一级| 91狠狠色丁香婷婷综合久久精品| 精品-91人妻子系列| 超碰av在线| 另类图片五月天| 日本中文字幕在线视频| julia高潮后不停追击中出| 欧美亚州手机在线| 久九九九九九九热| 春色校园综合网| 日欧毛片久久| 久久↗↗| 久久久91| 国产极品粉嫩馒头一线天av| 免费观看网黄| 亚洲 日韩 丝袜 熟女 变态| 国产亚州高清国产拍精| 久久 国产精品 一区| 亚洲永久AV无码精品秋霞| 狠狠操狠狠| 黄片免费视频2019| 精品一级| 农村妇女精品一二区| 女人一区| 九9精品| 欧美不卡在线美女| 国产人伦精品一区二区三区 | 亚洲一区中文精品| 夜夜嗨视频| 自拍偷拍草一草| 黄在线| 久操操AV电影| 99久热| 久艹伊人精品综合在线| 在线电影亚洲色图| 色综合加勒比| 一类无码操逼视频| 噜噜噜狠狠色综合| 四虎国产成人精品免费一女五男| 日本道日本道中文字幕日本道最新日本道在线观看 | 天天操天天舔| 99久久无色码| 0755午夜福利视频| 日产欧美电影一区二区三区| 国产区日韩区在线观看| 日本国产欧美高清在线| 欧洲射精91| 亚洲久草AV色图| 国产蜜臀精品一区二区尤物| 377p欧洲日本亚洲大胆| 欧美美女啪啪视频| 一本一道久久综合久久| 日本孕妇一区二区视频操逼免费看| 人人射人人操人人摸| 超碰天天久久79| 九热中文字幕| 欧美一区二区观看在线| 91国产丝袜足交精品视频| 亚洲国产97在线精品一区| 色婷婷激一区二区三区| 欧美熟爽综合| 99精品无码| 逼逼逼逼操操操操操操操操操午夜剧场 | 五月婷婷激情综合| 久久久熟女一区| 国产精选视频| 午夜福利精品| 欧美三级一级| 欧综合网| 精品人妻1区| 久久久av爱| 51国产午夜精品视频| 99精品在线观看| 天天热精品| 尤物一级在线免费观看| 91激情网| 乱伦日本中文自拍| 男人的天堂不卡一区二区| 99色热| 亚洲图片欧美在线视频| 欧美性视频二区三区| 国产JDAV无码视频在线观看| 后入 亚洲 美女 射| 91 欧美| 精品人妻1237| 综合网91| 国产久久久9999| a片自拍直播视频| 毛片17S| 97香蕉网| 97超碰无码网| 操操吧亚洲乱伦视频| 久久中日麻豆| 97天天| 五月丁香啪啪啪| 啊啊啊啊好爽好舒服一区二区易域| 婷婷综合五月| 狠狠入| 五月综合激情网| 97超级久久| 网页导航五月天免费一二三区| 欧美 亚洲 另类 综合| 干干干天天| 色悠久久久av| 婷婷伊人网| 男女性扦B| 香蕉婷婷| www.成人无码| 激情文学网伊人| 亚州欧美总和| 久久精视频美日韩在线视频| 理论久久婷婷网8| 狠狠狠狠狠狠| 蜜桃臀av一区二区| 一本道综合色图| 欧美色图片| 99re在线精品78| www.99中文字幕| 91青青在线视频| 日本视频在线观看污污污| 激情视频一二三| 国产精品自在自拍视频| 人妻熟妇一区二区三区| 91人妻精华帖| 韩日自拍| 超碰久久性爱| 国产色图乱伦| 熟妇无码视频三区| 久久精品国产精品亚洲艾通辽熟妇| 日韩欧美三级| 91老司机在线视频免费观看 | 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 成人九九| 懂色AV一区二区三区| 一级二级三级黑人无码| 99少妇| 高清无码网址| 亚洲图片欧美色图| 探花熟女,姿勢到位,體驗感也到位| 欧美亚洲手机在线| 欧美色天堂网在线视频| 99爱在线视频| 国产99精品一区二区三区免费| 大香蕉手机在线| 99热导航| 亚洲色图激情小说| 芊芊操逼视频无码| 中文字幕成人乱码熟女精品国50| 伦理弟一页| 极品色社| 午夜一区| 国产亚洲中文不卡二区| 青青草好吊色| 人妻丰满熟妇av无码区蜜桃| 超碰99热中文字幕| 国产在线精品偷| 超清福利精品视频在线| 欧美性夜| 97在线资源| 成人热久久精品| 草b在线| 婷婷色中文字幕| 91亚洲网站| 亚洲色婷婷| 婷婷丁香五月天综合东京热| 无码操逼视频一下| 91制服丝袜| 另类图片五月天| 久久久久久久六六| 国产女上位好爽在线| 香蕉久久国产AV一区二区| 亚洲国产一区二区日韩专区| 91性片| 亚洲欧美黄| 99在线精品视频| 农村妇女精品一区二区| 人妻在线臀日韩| 九色97| 国产精品女同| 久久久精品日本一道| 日本操色导航| jk白丝没脱就开始啪啪| 欧美日韩免费性爱| 欧美日韩国产另类综合| 9118禁| 天天看片青娱乐| 国产精品视屏| 97操b| 婷婷久月| 欧美v日韩v亚洲v最新在线| 香蕉精品二区二区| 中文字幕av片| 性色一线| 操婷婷逼| 国产超碰| 国产中文大片资源中文字幕| 丰满岳乱妇一区二区三区| 粉嫩粉嫩一区性色AV片| 日韩成人无码| 欧美性爱第一页久久|