色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
天天日天天干天天色| 强奸乱伦亚洲第一页| 国产午夜在线观看| 婷婷深爱五月| 9超碰免费| 成人精品水蜜桃久久久久久久| 欧美一二三| 国产人妖视频一区在线观看| 欧美午夜视频| 欧美大香蕉久| 香蕉一区二区三区在线视频| 色五月AV| 黄色污污污污污污网站| 韩国一级做a久久久久| 亚洲AV成人无码一区二区三区在线观看| 国产视频一区二区三区久久亚洲天堂| 亚洲国产精品无码AV久久久| 国产地址二三| 亚洲精品性爱片| 大香蕉在线视频重口味毛片在线| 黄片qw| 人人喜人人妻| 精品一级毛片在线观看| 欧美97视频| 眼镜人妻101.com| 国产精品经典一卡久久久 | 四虎影库国产精品免费| 亚洲欧美首页| 无码一区二区三区四区五区六区七区八区九区十区视频 | 激情丁香五月婷婷| 欧美加勒比| 啊啊啊啊嗯嗯嗯用力好爽 | 超碰97欧美日韩| 天堂中文日本在线观看| 久夜操| 激情综合五月| 亚洲综合影院| 国模不卡一本二本三电影| 午夜啪| 偷拍超碰| 国产情侣自拍在线播放| 91色色网站| 精品视频专区| 717影院理论午夜伦八戒| 91女优在线观看 | 午夜国产乱伦视频| 蜜臀久久精品久久久久视频| 麻豆国产免费影片| 久艹日日日| 久久久久骚| 国产日韩色综合| 丝袜狠狠草尤物 91| 黑人无码一区二区| 91少妇| 国产精品久久久777| www.久久最新地址| 国产精品ww久久| 91天堂视频| 亚洲无码一区二区三区三州| 中日韩免费看男女操逼大全| 熟妇国产免费一区| 日本三级中国三级99人妇网站| 亚洲欧美不卡线| 91欧美成人色站| 亚洲中文一区二区三区| 久久久久女教师免费一区| 91老司机在线视频免费观看| 九月婷婷综合| 亚洲欧美成人在线| 日韩人妻有码免费视频| 九九操久久国产免费视频| 少妇99成人麻豆| 欧美性爱1080p| 日比av无码| 亚洲视频,小说| 在线视频日韩欧美国产| 超碰人妻天天干| 黄骗免费网站| 0755午夜福利视频| 亚洲国产中文字幕| 老熟妇一区二区三区| 青青草原人妻| 高清在线偷拍自拍视频| 精品国产乱码| 一级岛国大片| 亚洲精品少妇| 精品人妻一区二区三区四区| 国产成人精品午夜福利| 97久久精品国产| 长长久久免费视频| 色综合婷婷| 超碰成人公开| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产女人视频三四五区| 9精品久久久久| 久久人妻熟女一区二区| 美女天天干| 97一本大道亚洲一区| 久妇网| 另类专区在线观看| 免费av大片| 国产传媒操逼视频| 性色生活片久久毛片婬片免费放女人一级毛片 | 一级A片女人高潮叫床| 亚洲欧美综合| 无码av永久免费专区网站| 欧美黄色手机在线观看| 国产熟女精品一区二区| 人妻天堂网| 欧美亚洲中文字幕| 99999久久精| 大香蕉视频啪啪啪啪| 久久成人东京热人妻| WWW美腿丝袜香蕉中文| 97爱碰| 98精品国产乱码久久久久久| 美女干逼2| 91伊人大香蕉| 欧美综合色综合| 欧美人妻熟女在线| 91性网| 三级色影综合网| 精品制服美女中文一区二区三区| 欧美日韩天堂| 精彩久久中文| 亚洲日韩资源| 伦理第一页| 九九久久国产精品怡红院| 裸体1区| 精品中文一区二区| 极品一区二区三区免费| 一区二区亚州激情久婷婷欧美| 欧美日本天堂| 国产一线二线三线av| 婷婷色香伊人| 啊啊啊啊啊好多水| 屁股久久久久久| 亚洲色阁| 亚洲一区中文精品| 国产黄片在线免费观看| 国产亲戚伦亲在线| 精品久久久久久亚洲| 亚洲 中文 女同| 久久综合18p| 婷婷色网| 色香综合| 搡老熟女免费视频| 伊人久久大香线蕉无码| 色999五月色| 久久久久9| 丰满人妻一区二区三区在线| 九九九草| 97超碰欧美手机在线| 国产精品久久久亚洲第一牛牛_在线观看 | blacked精品一区国产| 久久av成人无码免费| 岛国1区2区3区在线观看| 亚洲 欧美 小说| 久久侵犯人妻爽爽爽| 五月香婷婷| 蜜臀久久99精品久久久老,,| 99人人干| 怡红院视频在线| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 久久久成人精品| 99蜜月精品久久| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 久久久精品视频免费观看| 日本片日本片祼观看网站在线看中文版网页在线看 | 久久最新免费视频23| 中文字幕国产| 午夜男女爽爽大片免费观看| 精品中文字幕一区二区| www99热| 91在线限制级| 国产AB视频| 十八禁黄色| 熟女乱3伦999| 丁香五月激情网| 新97国产超碰| 欧美大片91| 天天视频综合在线观看视频| 国产亚卅97| 综合少妇网| 亚洲国产一区二区入口| 色婷婷在线视频精品导航| 亚州精品人妻一二三区| 国产亚洲精品美女久久久| 日本精品成人无码| 操老熟女AV| 麻豆国产视频精品观看| 人妻啊啊人妻啊| 男人成人黄色视频在线观看免费下载| 日熟女| 日韩中文字幕熟妇人妻| 国产精品精品系列在线观看| 久久精品一区二区三区不卡| 91老妇女| 久久综合婷婷| 国产97色在线 | 亚洲| 免费啪啪一级视频| 青青草视频爽一爽| 呦呦影院| 四虎AV影视国产精品亚洲精品| 91美女小视频| 欧美操人视频| 久久线上视频免费看| 亚洲 图片 综合91| 久久精品人妻一区| 亚洲一本色码中文字幕| 国产偷人伦激情在线观看| 欧美拳交在线播放| 在线日韩精品一区二区三区| 久久精品亚洲婷婷| 双插性欧美一二三区| 亚洲欧美日韩电影网站一区| 婷婷午夜成人色中色| 亚洲好色人妻| 欧美嗯啊……在线观看视频免费| 亚洲图片色图欧美另类| 欧美,日韩,中文,另类| 天天天天天干夜夜夜夜夜操| 另类天堂| 日本免费一区二区不卡| 狠狠综合网| 18禁看网站一区| 日本欧美m v精品网站加| 国岛片视频| 欧美 亚洲| 欧美 牲| 91久热| 少妇高潮流水av免费| 青青青艹在线视频| 九九热免费国产视频婷婷伊人五月 | 天天澡天天爽日日av| 激情啪啪拍91| 精品中文字幕一区二区| 国产又粗又长视频| 欧美日韩精品青青| 日日日大屁股骚女人精品| 国产AV超爽| 7777奇米影视久久| 国产熟妇一区二区| 91天堂色男人的天堂| 色婷久久| 2018色综合天天操| 97欧美精品综合| 永久免费发布性爱网| 放黄片放3级黄片没穿衣服| 超碰97欧美日韩| 四虎免费看黄| 欧美另类自拍| 99www.bibizy香蕉资源国产一区二区三区高清 | 人妻天天爽夜夜爽爽| 亚洲熟女中文字幕在线| 五月激情视频| 色五月婷婷网| 少妇蜜汁| 精品亚州18| 999综合色| 加勒比伊人综合| 欧美亚洲宗合色性图| 四虎884a| AV高清一区| 东北女人的毛片| 亚洲欧洲综合视频在线| 日本三级黄页| 午夜精品久久久99| 人妻丝袜肏逼| 欧美视频一区二区三区| 九九九九热| 久久精品国产精品一区| 国产女人与拘做受视频免费| 亚洲熟伦熟妇AV无码春色| 黄色成人网久久久久久| 秋霞影音一区二区三区| 黄污污污污| 久久久久久久久久久97| 丝袜色综合| 大二网站亚洲| 亚洲欧洲成人在线电影| 青青草导航在线视频| 欧美天天综合在线| 国产一级特黄大片处女| 丁香婷婷啪啪| 色色99| 性欧美| 色哟哟AⅤ| 国产一级作爱毛片| 日本在线一二| 青青青草原| 日韩激情无码影院| 麻豆人妻精品一区二区| 午夜无码熟妇丰满人妻| 欧美一区二区三区四区综合| 日本熟妇熟色97一本在线观看| 亚洲蜜臀视频精品久久| 日韩无码一级黄色av片| 操91| 久久精品店| 中国国国产一级特黄毛片| 在线人妻熟女一区二区三区四区五区| 熟妇高潮二区三区| 国产一级特黄大片处女| 亚洲男人的天堂V| 99av| 亚洲精品97在线| 男人的天堂网页| 狠狠综合| 一区二区三区国产在线播放 | 日韩15p| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 中文字幕在线观看网址| 亚洲一区二区麻豆影院| 超碰99re| 日日天天久久啊啊aaa| 丁香九月婷婷| 欧美一区二区在线资源| 国内黄色精品| 国产精品日本无码A片| 日韩特一级久久| blacked精品一区国产| 青青草视频导航官网| 国产品精品自在在线午夜免费| 99爱在线视频| 激情黄色片在线观看| 日韩少妇丰满亚洲| 欧美日韩性爱操大逼| 成人资源中文字幕在线观看| 五月婷婷六月激情| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 操婢日韩| 婷婷人妻激情| 亚洲 欧美 小说| 福利色色| 国模无码人体一区二区三| 婷婷15月天青娱乐| 丁香六月婷婷久久综合| 成人性爱av| 91影视亚洲| 麻豆60秒| 色情五月综合婷婷| 亚洲无码偷拍| 酒色综合网| 一区二区三区成人 | 高清无码一区二区三区| 91色欧美| 精品久久久一本一道| 美女啊啊啊啊pc| 牛牛aV| 啊啊啊在线观看| 大但人体久久久久| 九九这里只有精品| 亚洲av影院在线观看| 国产精品96| 亚洲AV不卡在线观看| 免费的av网| 婷婷爱五月| 精品-91人妻子系列| 国产精品久久泡妞网站| 91熟女视频网| 性九九九九九九| 国产小炒后入式| 婷婷久久大香蕉| 日本成人电影资源网| 午夜a成v人电影| 国产一区二区三区高清视频| 9999久久久| 日日摸日日碰夜夜爽视频| 色天堂在线观看| 欧美传媒一区| 亚洲久草AV色图| 九9热伊人| 天天爱综合网| 午夜噜噜噜| 亚洲性天堂| 91亚洲情色| 国产9区| 国产强奸乱伦第1页| 免费操逼91| 高清国产无码av| 涩涩涩综合| 思思热免费视频观看| 91干熟女| 91蜜桃婷婷狠狠久久综合9色| AV九九| 欧美日韩人人精品| 97频视在线| 精品人妻久久久| 中国一级αV| 综合久久六月久久婷婷| 国产极品美女高潮无套在线观看| 秋霞Av理论一级在线| 蜜臀少妇一区二区| 抽插爽| 夜夜爽夜夜摸夜夜操免费视频| 女欧美一区二三区| 中文字幕 人妻不满 在线视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | www.91色| 丰满熟女人妻一区二区三五十一路| 最新亚洲人成网站在线影院| 亚洲精品蜜桃久久久一区二区三区| 嗯嗯啊好大| 韩日性爱av| 亚洲中文字幕日产无码久久| 内射老妇BBWX0C0CK| 九七人妻在线| 国产亚洲美日韩Aⅴ中文字幕无码成人| 蜜桃av色偷偷av老熟女| 肉丝中文无码高清| 东京热双插| 国产成人自拍视频视频| 99久久com免费视频′| 欧美在线视频播放| 欧美日韩不卡a片| 激情人妻另类| 精品人妻一区二区三区四区石在线| 日韩素人无码一区二区三区三州| 亚洲深夜福利| 欧美有码亚洲中文字幕一区二区三区四区| 亚洲人妻色图| 欧美一区91大爱| dy888午夜老子影视达达兔| 91久热这里只有精品| 夜色91| 亚洲日韩av一区二区三区百合| 国产呦精品系列在线观看| 在线天堂999| 亚洲精品毛片在线观看| 97在线欧| 亚洲天堂,男人| 91日韩网站| 欧美另类色图片| 极品欧美一区二区三区| 欧美一品道| 日韩性爱小视频在线观看| 91综合无码| 国内毛片无码一级毛片| 亚洲网站一区二区在线| 亚洲素人综合| 久草综合京东| 岛国视频免费在线观看| 东北老熟女| 中文字幕av久久爽Av| 性影在线视频| 欧美翘臀视频网站一区二区三区| 插老姨肥穴| 亚洲第一在线视频| 97香蕉网| 日韩欧美中文字亚洲慕| 亚洲国产精品乱码在线观看| 无码高清专| 欧美亚洲图片| 97操综合| 国产极品久久久| 飘花国产午夜精品不卡| 美女黄站| 青青草在线视频欧美| av在线观看不卡网站| 精品无码少妇| 国产成人精品一区| 国产一区麻豆免费观看| 日本性爱不卡视频| 波多野42部无码喷潮在线观看| 漂亮人妻被强中文字幕hd| 大香蕉宗合网在线| 婷婷色影院| 国产最新小视频在线播放下载| 偷拍精品一区二区三区| 91精品人| 99re视频这里只有精品| 嫩草黄页| 神马久久久久眼| 国产1769在线| 在线播放成人高清免费视频| 男女啊啊啊| 日韩熟女视频二区| 精品久久久久瑟瑟| 欧美色图天堂在线| 九九99精品| 综合欧美激情网| 日本爽爽爽爽爽爽免费视频| 亚洲97精品| 春色综合免费| 国产AV天美传媒一区二区三区| 亚洲AV高潮| 久热伊人99re| 国产丝袜视频| 日产狠狠干| 一级性爱aaaa| 黄片www.| 免费视频a级毛片免费视频| 中国国产精品一区视频| 综合久久久久久久综合网| 黄色视频高清无码网站| 黄色无码高清黄色无码网站| 天天综合网日韩| 91黑丝在线| 麻豆亚洲AV成人无码久久精品| 国产尤物在线三区| 日本一卡二区在线| 暴力av在线| 偷拍亚洲视频一区二区三区四区| 久草电影网| 欧美三四五区| 久久啊啊| 超碰成人人人爽人人爽| 91少妇| 超碰午夜| 欧美人人操人人插| 久久精品欧美一区二区三区不卡| 精品丰满熟妇人妻一区| 99热在线播放| 91色欧美| 国产精品操| 青青在线视频日韩欧美| 高清国产精品福利网站| 综合少妇网| 蜜臀中文无码午夜| KK色在线影院| 欧美性色网| 欧美性爽xyxOOOO| 日韩中文字幕国产| 97人妻免费中文字幕| 人人干人人搞人人摸| 欧美一级A片在线看视频性色| 青青草天天亲夜夜操网| 日本熟妇一区二区三区| 久久综合女优| 色欧美色交综合| 91精品国产一区三一| 国产一级内射高清视频| 日韩激情啪啪啪| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 日欧毛片久久| 久热这里| 久草精品国产99| 国产51色综合久久免费| 色色激情五月天| 国产精品九9| 亚洲国内精品成人不卡| 九九九九九九精品| 国产精品久久久久久亚洲色欲| 欧美极品性爱天天射| 操一区| 久久超碰、| 蜜桃臀一区二区aV | 国产熟女少妇一区| 欧美人人天天网| 欧美碰碰综合色| 午夜福利激情在线视频| 九月婷婷综合| 骚女高跟AV在线| 亚洲欧美黄| 亚洲精品一二区| av天堂影视中文在字幕在线中文| 日韩精品怡红院| 老妇女91| 蜜桃av综合网发布| 久草婷婷| 亚洲欧美首页| 色婷婷综合网站| 久久久男人的天堂| 精品综合久久久久久五月天| 午夜丁香婷婷| 久久精品成人一区二区三区蜜臀| 国产精品懂色tv影视免费观看| 国内精品久久久久影院亚洲| 久草精品一区| 亚洲春色一区二区三区| 五月色网| 碰人碰碰人人开房人肉| 久久超碰国产一区二区三区| 嗯啊不要在线| 久久久精选| 国产亚州高清国产拍精| 一本大道综合伊人精品热热| 麻豆国产精品午夜视频| 夜夜爽爽爽| 97ai亚洲| 国产18精品亚洲精品| 天天内射| 久久久久亚洲Av无码专区老牛影视| 91高清日| 国产尹人在线视频免费| 夜草欧美| 韩国手机不卡无码三级视频| 色一射色一射| 黄骗免费网站| 五月丁香综合| 欧美的精品的视频| 精品人妻伦一二三区久久| 成人久久久精品| 色狠狠 - 百度| 蜜臀色乳| av在线不卡一区二区三区| 亚洲成人一二三区| 亚洲电影中字一区二区| 69精品人人人人| 美女熟妇色| 精品十三区| 国内精品a| 日韩在线97| 亚洲图片色图欧美另类| 黄呦呦在线| 久久首页| 天天躁狠狠躁av| 亚洲天堂无码| 嗯嗯不要 视频| 婷婷色网| 日韩成人性日韩成人性爱视频在线免费观看| 色97| 日本爽爽爽爽爽爽免费视频| 国产中文福利| 国产三区免费在线观看| 欧美日韩精品青青| 欧美视频中文字幕区| 久久精品噜噜噜成人看免欧美大片| 超碰成人国产| 久久精品| 97精品国产精品免费观看| 熟女色综合久久| 国产综合久| 超碰97起碰| 久久透逼视频| 福利大香蕉| 九九热精品| 乱伦熟妇一区二区| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲 欧美日韩 另类| 精品人妻一区二区三区免费视频| 亚洲图片偷拍视频区| 天天射天天色成人| 五月婷久久| 玖玖爱伊人玖玖爱| 91人妻人人澡人人爽人人精品| 91插B网站| 婷婷五月丁香五月| 亚洲色系另类精品国产| 99re在线精品78| 天天爱天天操| 一级做a爰片久久毛片图片| 亚洲欧美91√| 国产夫妻一区二区| 91动漫操逼视频| 日本道不卡| 人妻少妇久久中文| 99精品丰满人妻无| 久久AV无码网址| 国产无码精品无码| 久久久久久久久久久精| 亚洲中文字幕乱码无码一区二区| 色操逼网| 中出欧美| 情色五月天就去干| 欧美日韩免费专区在线| 国产欧美一区激情交| 亚洲熟伦熟妇AV无码春色| 中文字幕日韩情色| 97精品第3页| 爽爽歪在线视频| 91小视频| 亚洲国产欧美一区二区潘金莲| 91综合天天| 97在线青| 嗯嗯,啊啊,国产精品| 日本肉体xxxx裸交| 美国精品国产精品| 曰韩人妻中文字幕在线| 国产精品禁久久久精品| 青青草成人视频在线观看二区| 久久久一级| 欧美 色 亚洲| 日韩人妻精品久久久久| 国产熟女自拍| 最新av在线| 真实高潮91| 婷婷99| 国产精品无码在线| 久久久久久久伊人精品| 性综合网| 国产9区| 91性网| 国产自偷| 91碰碰| 超碰日韩美妻| 国产乱码精品久久久久久| 韩国轻伦国内自拍一区| 青青草自拍视频在线播放| 色色婷婷五月天| 国产精品秘 福利姬在线观看| 久久久久久国产精品免费网站| 97天堂| 亚洲另类春色| 超碰九7| 久久久久久久97| 啊啊啊免费视频| 2017天天插| 国产麻豆91欧美一区二区久久婷婷国产精品| 美女淫穴| 密臀在线视频| 蜜臀久久99精品久久久久久成人小说 | 久久成年精品| 欧美曰韩国产精品| 综合干干干av久久久综合网| 大香蕉伊人网WWWn0n| 天天综合网久久ww| 男人的天堂.com| 久九九九九九九热| 色好看av| 好看的久久不射无码影视影院| 亚洲淫乱骚妇AV| 日韩情色AV| 九九九九九九视频| 久久久久78| 91天天爱| 91天天美女| 欧美在线综合| 黑人性欧美| 2017大香蕉| 在线观看亚洲成人精品| 日本狂喷奶水在线播放212| 蜜乳AV一区| 日本免费一级AAA大片器 | 四虎884| 亚洲色阁| 中文字幕97色| 国产内射爽爽大片| 午夜福利无毒不卡| 日韩人妻免费精品| 国产女人和拘做爰视频 | 亚洲精品色| 天堂伊人久久| 亚洲欧美国产精品久久久久久久| 96麻豆精品一区二区三区| 在线日韩精品一区二区三区| 亚洲 自拍偷拍 欧美| 丁香六月啪| 九九九九九九九九九九九免费国产| http://qxhbdz.com| 久久久久久91香蕉国产| 疯操AV| 少妇被c 黄 免费观看| 亚洲小电影免费涩涩成人在线高清| 色第一页| 神马久久久久久伦理片| 激情综合网五月婷婷| 久久9精品视频| 九七毛片九九毛片| 97在线免费看视频| 艹精品| 久久久久人妻| daxiangjiao你懂的| AV女优男人的天堂| 日韩精品国产一区二区| 欧美躁死她一区二区| 91天美传媒在线观看| 欧美天天综合在线| 中日韩久久久| 亚洲精品蜜桃久久久一区二区三区| 大香蕉之青青草原| 久久一二三四| 翔田千里av一区二区三区| 第四色色综合91| 全国男人天堂网| 国产大陆天天艹| 91在线页| 中日韩久久久免费看| 可以免费看黄片的视频| 一区二区日韩欧美久久| 欧美九一精品久久久熟妇| 欧美人人操人人插| 亚洲人成网www| 人妻大香蕉| 精品欧美А∨无码黑人大荫蒂| 亚洲午夜免费狠狠干| 蜜桃精品视频一区二区三区| 一级岛国大片| 婷婷五月影院| k频道色撸撸| 女色综合| 国产av尤物| 超碰97综合在线| 欧美v亚洲v日韩v最新在线二区 | 精品国产污一区二区三区| 熟女熟妇一区二区三四区| 日韩欧美午夜视频在线| 九九拍拍精品视频在线播放| 日本一级真人黄色性爱视频| 一本久道久久综合狠狠爱| 日韩成人人妻网站| 被体育老师抱着c到高潮| 99只有精品| 乱伦一区二区三区‘| 亚州中文字幕超碰97| 欧美视频一| 婷婷丁香五月综合| 天天综合青苹果| 九九热在线精品视频| 久久久久久中文| 成人性爱全视频观看| 狠狠干妹子| 在线中文字幕极品av| 欧美玖玖爱免费玖玖| 亚洲导航深夜福利| 天天色怡春院| 青娱乐久久艹| 超碰在线成人电影| 国产人妖的免费的视频| 亚洲综合图色在线| 淫荡少妇免费| 精品人妻伦一区二区三区久久| 超碰成人最新最好看| 欧美在线视频观看一二三四区高清| 在线观看免费视频国产| 国产精品天干天干综合网麻豆| 台湾成人无码AV| 国产情色第一第二页在线观看| 国产91精品福利在线| 老鸭窝日丰县女人| 97人人干人人操| 伊人91| 精品人妻夜夜草| 欧美五十路熟| 99在线啪| 婷婷色婷婷| 青娱乐91| 美女露胸露尿口| 先锋女优在线观看视频| 91久热这里只有精品| 日韩免费簧片| 人人摸人人舔一区二区| 丁香六月婷婷久久综合| 91社区伊人| 久久99草| 开心五月深爱五月| 香蕉欧美| 色五月激情AV在线| av大香蕉| 国产Av超碰| 婷婷精品久久av影视| 好淫网一二三视区| 国产亚洲美日韩Aⅴ中文字幕无码成人| 中文字幕精品亚洲熟女| 久久天天性久久伊人| 夜夜骑夜夜操| 国产区性爱在线视频秋霞豆 | 99久久久er直播网址| 欧美性少妇| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 不卡视频一区蜜桃视频| 麻豆福利视频导航| 爱我干综合| 国产乱伦性爱区| 精人妻一区二区三区| 久婷婷一区| 国产 日韩 欧美高清| 午夜毛片亚洲精品片国产久久久| 亚洲性猛| 色婷婷影院| 蜜臀一区二区三区在线| 亚洲脚交| 激情文学网伊人| 日本无码1| 午夜啊啊| 亚熟hd视频在线| 91狠狠综合久久久久久| 在线观看黄色电话| 国产三级资源在线观看| 久久精品国产亚洲粉嫩| 亚洲精品白丝| 粘花网06av视频| 丁香五月影院| 欧美日韩性爱无码| 欧美呦呦性爱| 亚洲图片欧美色| 夜夜国自区| 免费成人在线熟妇网| 英伦大奶子熟妇吊带| 99热官网| 天天看,天天做| 午夜一区二区三区国产| 五月亭亭六月丁香| 九九九精品一区二区无码| 国产91精品福利在线| 亚洲黄色视频在线观看视频| 六月婷激情福利天堂69| 伊人久久大香大香线蕉中文| 操逼日批| 久久综合九色综合欧洲98| 91欧美网| 中文字幕乱妇免费视频| 天天日熟妇| 国产精品在线网站| 亚洲国成人情色好看电影| 性色一线| 男人天堂婷婷五月天校园春色| 欧美精品三级黄片| 中韩中文字幕在线观看| 丁香五月综合| 天天干人人干天天日97| 人妻一区二区三区视频 | 九色PORNY9l原创自拍| 欧洲一级性爱视频在线观看| 芊芊操逼视频无码| 香蕉热人人精品| 亚洲综合999| 在线观看啊啊啊啊啊| 91亚.色| 一摸二插三插| 亚洲少妇免费视频\| 亚洲青青草| 中文字幕伊人| 毛片麻豆91糖心精品毛情片| 超碰免费欧美7| 亚洲自拍青操视频| 日日玩天天干| 天天操美美| 亚洲aw毛茸茸在线| 四虎视频在线观看| 九九九九精品一区| 国产AB视频| 亚洲一区中文字幕| 久久99九九九九6666免费观看软件| 91中文字幕制服丝袜免费视频| 亚洲色婷婷综合久久久久中文| 欧美精品一二三| 亚洲久久久久| 啊啊啊免费| 男女啪啪啪18禁网站| 久久受www免费人成| 中国一区二区亚洲人妻| 99久久9| 久久久99久9| 青青草日本中文字幕| 日韩八十路老熟女| 久久久啊啊啊| 欧差乱伦二三| 中国少妇XXXX做受| 四虎影院成年人片| 婷婷国产精品九区| 青女在线| 东京热AV男人的天堂| 97超碰美女| 亚洲国产精品无码AV久久久| 日本人人操人人操| 久久婷婷六月综合| 亚洲AV资源| 一本色道久久综合熟妇| 中国熟妇| 日韩在线一区二区| 顶级丝袜熟女一区二区三区| 欧美白嫩女HD| 亚洲九九夜夜| 女人高潮抽搐喷水视频网站| 97人人模人人爽人人| 亚洲成人一区二区精品| 26uuu国产免费观看| 裸体美女免费看网站青草| 欧美日韩222| 天操天操夜操夜月月年年操操| 久久 精品| 操逼片国产| 天天爽天天爽| 91少妇香蕉久久精品| 欧美女同在线| 国产在线视频二区| 激情久久久| 超碰夫妻97| 丰满人妻一区二区三区免费 | 少妇99| 亚洲综合欧美| 97摸视频| 久草精品国产蜜臀| 久久久久久久| 日本女优在线视频福利| 夜夜操夜夜爽夜夜高潮| 国产人妻久久精品一区二区三区| 亚洲精品国产熟女| 97人妻色| 啊啊啊水好多| 日韩探花精品在线视频| 嗯阿好爽好紧| 东北熟女91| 波多野结衣一级视频| 啊啊啊com| 一二视频神马久久传媒| 东北毛片| 婷婷尹人大香蕉免费| 九九九九九九九| 综合久久久久久久综合网| 亚洲城人男人的天堂| 超碰97COm中文| 你懂得91| 啊啊啊在线观看免费视频| 后入国产| 伊人久久大香线蕉无码| 中文字幕视频一区视频二区| 婷婷另类小说| 久久久久久性爱片| 91在线美女| 日韩欧美女求操每天更新| 操逼逼无码| 亚洲欧美在线综合| 欧美裸体美女日麻屄| 狠狠操狠狠燥| 国产精品69久久久久久久| 91高清日| 男人a天堂手机在线版| m欧洲一级午老| 国产无码精品无码| 图色综合网| 亚洲欧美综合| 久久大香蕉手机高清| 色婷婷一区二区三区久久| 婷婷丁香五月综合| 一区超碰一区| 五月丁香色综合| 大肥女高潮bbwbbwhd视频| 国内精品伊人久久久久影院会| 97亚洲资源| 久99热| 日韩一级成人毛片免费观看 | AV大香蕉| 激情小说激情视频| 久久久久9999| 99re视频在线播放青草| 天天爽夜夜操| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 黄片免费看黄片免费看| 97超碰中文字幕| 国产原创剧情在线丝袜 | 久久精品色欧美aⅴ一区二区| 怡红院亚洲怡春院av| 国产农村一一级特黄毛片| 99精品无码| 伊人久久88国产女| 蜜臀久久99精品久久久| 欧美日韩99精品麻豆传媒| 九七超碰人人乐| 久久欧美按摩999| 超碰97人人cao| 亚洲男人的天堂在线看| 女人喷水视频在线观看| 日韩电影免费网站麻豆视频| 色九月| av毛片aaaaa免费看| 一区中文字幕二区日韩| 久久久久免费看少妇A片特黄| 豆1无夜无码| 欧美色五月| 无码高清操逼| 老熟妇一区二区三区啪啪| 国产免费永久精品无码| 日本一区不卡| 日韩精品操少妇| 亚洲免费人妻在| 超碰 欧美| 精品国产网站| 国产 热久久久久国产精品| 偷偷人人精品女女久久| 色九九九| 亚洲精品成人激情在线| 久久六六| 国产免费一区| 色情五月丁香| 欧美亚洲首页| 九九九九日本| 国产一区二区在线电影| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 五月婷亚洲精品天堂| 亚洲色资源| 国产这里只有精品| 91性高朝久久久久久久久| 91美女看B| 五月丁香啪啪| 色诱avtt| 91人妻人人澡人人爽人人精品| 久久这里只| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 国产av波波国产精品| 2019天天干| 啊啊啊啊免费视频| 中国黄色特级精品一区二区三区片| 九九毛片这里只有精品| 日本女人操逼| 欧美日韩精品一区二区三区高清| 亚洲āv网址在线观看| 中文字幕一区二区三区四五区| 男人的天堂2018东京热啪啪啪| 国产福利在线视频网站| 精品九九九九| 久久熟女嫩草成人片免费| 精品然女一区二区| 婷婷久热| 51一区二区三区| 成人无码在线视频网站| 天天干18禁| 超碰97人人乐| 日韩丝袜高跟制服在线观看| www老逼91| 91小视频| 精品少妇人妻av久久免费| 亚洲有薄码区日本系列中文字幕| 成人免费福利在线观看| 色嗨嗨在线| 日韩卡一卡二卡三在线| 宅男影院久久久,99| 韩三级a视频在线观看| 日产欧美电影一区二区三区| 精品一级毛片在线观看| 欧美一级在线观看成人| 91香蕉国产尤物视频| 亚洲欧美999| 碰碰97| 啪啪视频免费在线观看| 欧美色图亚洲激情| 91狠狠综合网| 97香蕉网| 亚洲视频中文一区| 97无码视频在线播放| 久操91视频| 国产三级在线现体验区| 欧美日韩黄片精品在线| 人人妻人人爽 97人人看碰人免费公开视频| 一区二区乱码福利| 99热精品免费| 欧美嫩性色| 日本人妻一区二区| 国产农村妇女精品1区二区| 久操操| 97精品久久久久中文字幕| 精品中文一区二区| 97超碰影音| 久久国产乱子伦精品免费女,网站| 97亚洲中文| 国内偷拍精品一区二区| 无码区蜜乳| 欧洲一级性爱视频在线观看| 日韩欧美经典在线观看| 人人摸人人干| 国产夫妻一区二区| 人妻黑丝袜电影| 国产丁香精品露脸视频 | 亚洲91网。| 欧美精品久久| 国产日韩美女小穴视频网站不卡| 亚洲风情在线观看| 久久这里只精品免费福利| 天天干人人干天天日97| 久久久久久久久久8888| 精品久久久av| 大香蕉综合在线| 97国产|免费| 国产91亚洲精品一区二区三区| 日本www操操操| 国产一区二区三区中文字幕| 欧美性爱网97| 99999国产|