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

一個筆記告訴你,從Java存儲轉到SQL存儲的過程

數據庫 數據庫運維
項目開始是在DB2的開發中心,用Java寫的存儲過程。由于客戶升級的需要,數據庫遷移到更高版本的數據庫中去了,遷移后,這個存儲過程就用不了了。如何解決?請看下文

這幾天被一個悲劇的存儲過程搞得很煩。昨天找了一天的資料都沒辦法搞好。由于項目開始是在DB2的開發中心,用Java寫的存儲過程。由于客戶升級的需要,數據庫遷移到更高版本的數據庫中去了,遷移后,這個存儲過程就用不了了。于是我打開DB2的開發中心,打開該存儲過程的項目,打算部署到新的DB2上,無論怎么部署,始終都提示下面的錯誤:

  1. Call SQLJ.DB2_INSTALL_JAR (<<C:\Documents and Settings\jinghua\Application Data\IBM\DB2\DC\項目\bld1309245830936\SQL110528115458880.jar>>, 'GDZJ.SQL110528115458880', 0)  
  2. [IBM][CLI Driver][DB2/AIX64] SQL4304N 具有特定名稱 "SQL110628152507130" 的 Java 存儲過程或用戶定義的函數 "sqlejReadJar"不能裝入 Java 類 "COM/ibm/db2/app/sqlejProcs",原因碼為 "5"。  SQLSTATE=42724 

在google中無論搜索中文還是英文的資料,都找不到解決的方案,于是,把這腦殘的問題,從java中轉換到db2的sql中去。下面先看看該存儲過程的代碼:

  1. /**  
  2.  * SQLJ 存儲過程 GDZJ.BaseCodeGen  
  3.  * @param enprName 企業名稱  
  4.  * @param enprAddr 企業地址  
  5.  * @param enprLeader 法人  
  6.  * @param enprPhone 聯系電話  
  7.  * @param baseCode 返回的基準碼  
  8.  */ 
  9. package com.excellence.basecodesrv;  
  10.  
  11. import java.io.FileWriter;  
  12. import java.io.PrintWriter;  
  13.  
  14. import java.sql.*;           // JDBC 類  
  15. import java.util.Map;  
  16. import java.util.HashMap;  
  17. import java.util.Date;  
  18. import sqlj.runtime.*;  
  19. import sqlj.runtime.ref.*;  
  20.  
  21. #sql context SPContext;  
  22. #sql iterator BaseCodeGen_Cursor1 ( String curBaseCode );  
  23. #sql iterator BaseCodeGen_Cursor2 ( String curBaseCode );  
  24.  
  25. public class BaseCodeGen  
  26. {  
  27.     /**  
  28.      * @param  enprName  
  29.      * @param  enprAddr  
  30.      * @param  enprLeader  
  31.      * @param  enprPhone  
  32.      * @param  baseCode  
  33.      * @exception  SQLException  
  34.      * @exception  Exception  
  35.      */ 
  36.     public static void baseCodeGen ( String enprName,  
  37.                                      String enprAddr,  
  38.                                      String enprLeader,  
  39.                                      String enprPhone,  
  40.                                      String[] baseCode ) throws SQLException, Exception  
  41.     {  
  42.         BaseCodeGen_Cursor1 cursor1 = null;  
  43.         BaseCodeGen_Cursor2 cursor2 = null;  
  44.         SPContext ctx = null;  
  45.         try 
  46.         {  
  47.             if(enprName==null || enprName.trim().equals("")){  
  48.                 // 設置返回參數  
  49.                 baseCode[0] = null;  
  50.                 return;  
  51.             }  
  52.             ctx = new SPContext( "jdbc:default:connection"false );  
  53.  
  54.             #sql [ctx] cursor1 =  
  55.             {  
  56.                 select max(enpr_basecode) as curBaseCode from T_PUB_BASECODE where enpr_name like concat(concat('%',:enprName),'%')  
  57.             };  
  58.             // 用來存取結果  
  59.              //ResultSet rs1 = cursor1.getResultSet();  
  60.              String curBaseCode = "";  
  61.              while (cursor1.next())  
  62.              {  
  63.                 curBaseCode = cursor1.curBaseCode();  
  64.              }  
  65.             // 關閉打開資源  
  66.             if (cursor1 != null) cursor1.close();  
  67.  
  68.             if(curBaseCode!=null && !curBaseCode.trim().equals("")){  
  69.                 // 設置返回參數  
  70.                 baseCode[0] = curBaseCode;  
  71.                 return;  
  72.             }else{  
  73.                 #sql [ctx] cursor2 =  
  74.                     {  
  75.                         select max(enpr_basecode) as curBaseCode from T_PUB_BASECODE  
  76.                     };  
  77.                  while (cursor2.next())  
  78.                  {  
  79.                     curBaseCode = cursor2.curBaseCode();  
  80.                 }  
  81.                     // 關閉打開資源  
  82.                 if (cursor2 != null) cursor2.close();  
  83.             }  
  84.  
  85.             //權重  
  86.             Map weight = new HashMap();  
  87.             weight.put(new Integer("3"), new Integer("9"));  
  88.             weight.put(new Integer("4"), new Integer("10"));  
  89.             weight.put(new Integer("5"), new Integer("5"));  
  90.             weight.put(new Integer("6"), new Integer("8"));  
  91.             weight.put(new Integer("7"), new Integer("4"));  
  92.             weight.put(new Integer("8"), new Integer("2"));  
  93.  
  94.             String domain = "GZ"// 主體碼  
  95.             String entityCode = ""// 本體碼  
  96.             String checkCode = ""// 校驗碼  
  97.             String rtnBaseCode = ""// 返回的基準碼  
  98.  
  99.             entityCode = curBaseCode==null?"333333":curBaseCode.substring(2,8);  
  100.             if (entityCode.equals("ZZZZZZ")) {  
  101.                 throw new Exception("本體碼分配已經用完,無法再生成新的企業基準碼!");  
  102.             }  
  103.               
  104.             // 本體碼 begin  
  105.             String newEntityCode = "";  
  106.             char c = '0';  
  107.             for(int i=5; i>=0; --i){              
  108.                 c = entityCode.charAt(i);  
  109.  
  110.                 if(c == '9'){  
  111.                     c =  'A';  
  112.                 }else if(c == 'Z'){  
  113.                     c =  '0';  
  114.                 }else{  
  115.                     ++c;  
  116.                 }  
  117.  
  118.                 newEntityCode = c+newEntityCode;  
  119.                 if(c<'Z' && c!='0'){  
  120.                     newEntityCode = entityCode.substring(0,i)+newEntityCode;  
  121.                     break;  
  122.                 }  
  123.             }  
  124.             entityCode = newEntityCode;  
  125.             // 本體碼 end  
  126.  
  127.             // 校驗碼 begin  
  128.             int charWeight = 0// 本體碼‘位’的權重  
  129.             int entityCharNum = 0// 本體碼‘位’的數值  
  130.             int sum = 0// 本體碼‘位’的權重 與 本體碼‘位’的數值 的乘積  
  131.             char sglChar = '0';  
  132.             for(int i=0; i<6; i++){  
  133.                 sglChar = entityCode.charAt(i);  
  134.                 if(sglChar > '9'){  
  135.                     entityCharNum = sglChar - 55;  
  136.                 }else{  
  137.                     entityCharNum = sglChar - 48;  
  138.                 }              
  139.                 charWeight = ((Integer)weight.get(new Integer(i+3))).intValue();  
  140.                 sum += entityCharNum*charWeight;  
  141.             }  
  142.               
  143.             int cc = 11 - sum%11;      
  144.               
  145.             switch(cc){          
  146.                 case 10:  
  147.                     checkCode = "X";  
  148.                     break;  
  149.                 case 11:  
  150.                     checkCode = "0";  
  151.                     break;  
  152.                 default :  
  153.                     checkCode = String.valueOf(cc);  
  154.                     break;  
  155.             }  
  156.             // 校驗碼 end  
  157.  
  158.             rtnBaseCode = domain+entityCode+checkCode;  
  159.  
  160.             Date genTime = new java.sql.Date(new Date().getTime());  
  161.             Date giveTime = new java.sql.Date(new Date().getTime());  
  162.             #sql  
  163.             {  
  164.                 insert into T_PUB_BASECODE(enpr_name,charger,address,phone,enpr_basecode,gen_bc_time,give_bc_time) values(:enprName,:enprLeader,:enprAddr,:enprPhone,:rtnBaseCode,:genTime,:giveTime)  
  165.             };  
  166.  
  167.             // 設置返回參數  
  168.             baseCode[0] = rtnBaseCode;  
  169.         }  
  170.         catch (Exception e)  
  171.         {  
  172.             // 關閉打開資源  
  173.             try 
  174.             {  
  175.                 if (cursor1 != null) cursor1.close();  
  176.                 if (cursor2 != null) cursor2.close();  
  177.                 if (ctx != null) ctx.close();  
  178.             } catch (SQLException e2) { /* 忽略 */ };  
  179.  
  180.             /*  
  181.             try{  
  182.                 PrintWriter pwx = new PrintWriter(new FileWriter("c:/db2ps.txt"),true);  
  183.                 e.printStackTrace(pwx);  
  184.             }catch(Exception e3){ }  
  185.             */           
  186.  
  187.             throw e;  
  188.         }  
  189.     }  
  190.       
  191. }  

#p#

轉換后的DB2存儲過程為:

  1. -- Start of generated script for server226-DB2-GDZJ (gdzj)  
  2. --  Jun-29-2011 at 10:51:42  
  3.  
  4. SET SCHEMA GDZJ    ;  
  5.  
  6. SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDZJ";  
  7. drop PROCEDURE GDZJ.BASECODEGEN_ZGW;  
  8. CREATE PROCEDURE GDZJ.BASECODEGEN_ZGW  
  9.  (IN ENPRNAME VARCHAR(256),   
  10.   IN ENPRADDR VARCHAR(256),   
  11.   IN ENPRLEADER VARCHAR(64),   
  12.   IN ENPRPHONE VARCHAR(64),   
  13.   OUT BASECODE VARCHAR(32)  
  14.  )   
  15.   LANGUAGE SQL  
  16.   NOT DETERMINISTIC  
  17.   CALLED ON NULL INPUT  
  18.   MODIFIES SQL DATA  
  19.   INHERIT SPECIAL REGISTERS  
  20.   l1:begin 
  21.   declare curBaseCode varchar(16) default '';  
  22.   declare domain varchar(16) default 'GZ';--主體碼  
  23.   declare entityCode varchar(16) default '';-- 本體碼  
  24.   declare checkCode varchar(16) default '';-- 校驗碼  
  25.   declare rtnBaseCode  varchar(16) default '';-- 返回的基準碼  
  26.   declare newEntityCode varchar(16) default '';  
  27.   declare V_COUNT int default 0;  
  28.   declare V_INDEX int default 0;  
  29.   declare cc int default 0;  
  30.   declare c char(1) default '0';  
  31.     
  32.   declare charWeight int default 0; -- 本體碼‘位’的權重  
  33.   declare entityCharNum int default 0; -- 本體碼‘位’的數值  
  34.   declare sum int default 0; -- 本體碼‘位’的權重 與 本體碼‘位’的數值 的乘積  
  35.   declare sglChar char(1) default '0';  
  36.         
  37.   if ENPRNAME is null or rtrim(ENPRNAME)='' then 
  38.        set BASECODE = null;  
  39.      return;  
  40.   end if;  
  41.   set curBaseCode=(select max(enpr_basecode) from T_PUB_BASECODE where enpr_name like '%'||ENPRNAME||'%' );  
  42.   if curBaseCode is not null and rtrim(curBaseCode)!='' then 
  43.     set BASECODE =curBaseCode;    
  44.     return;  
  45.   else 
  46.     set curBaseCode=(select max(enpr_basecode) from T_PUB_BASECODE);  
  47.   end if;  
  48.   if curBaseCode is null then 
  49.     set entityCode='333333';  
  50.   else 
  51.     set entityCode = SUBSTR(curBaseCode,3,6);  
  52.   end if;  
  53.   if entityCode='ZZZZZZ' then 
  54.      set BASECODE =null;  
  55.      return;  
  56.   end if;  
  57.     
  58.   --本體碼 begin  
  59.   SET V_COUNT = LENGTH(entityCode);  
  60.   set V_INDEX=V_COUNT;  
  61.     
  62. WHILE V_INDEX >0 DO  
  63. set c = SUBSTR(entityCode,V_INDEX,1);  
  64.  
  65. if c = '9' then 
  66.   set c =  'A';  
  67. elseif c='Z' then 
  68.   set c='0';  
  69. else 
  70.   set c=chr(DEC_TO_TEN(HEX(c),16)+1);  
  71. end if;  
  72.  
  73. set newEntityCode=c||newEntityCode;  
  74.  
  75. if c<'Z' and c!='0' then 
  76.   set newEntityCode = SUBSTR(entityCode,1,V_INDEX-1)||newEntityCode;  
  77.   set V_INDEX=0;  
  78. end if;  
  79. set V_INDEX=V_INDEX-1;  
  80.  
  81. END WHILE;  
  82. set entityCode = newEntityCode;  
  83. --本體碼 end  
  84. --校驗碼 begin  
  85.   set V_INDEX=0;  
  86. WHILE V_INDEX<6 DO  
  87.   set sglChar = SUBSTR(entityCode,V_INDEX+1,1);  
  88.   if sglChar>'9' then 
  89.     set entityCharNum=DEC_TO_TEN(HEX(sglChar),16)-55;  
  90.   else 
  91.     set entityCharNum=DEC_TO_TEN(HEX(sglChar),16)-48;  
  92.   end if;  
  93.   --設置權重值  
  94.   case V_INDEX  
  95.   when 0 then set charWeight=9;  
  96.   when 1 then set charWeight=10;  
  97.   when 2 then set charWeight=5;  
  98.   when 3 then set charWeight=8;  
  99.   when 4 then set charWeight=4;  
  100.   when 5 then set charWeight=2;  
  101.   else 
  102.     set charWeight=0;  
  103.   end case;  
  104.   set sum=sum+entityCharNum*charWeight;  
  105.     
  106.   set V_INDEX=V_INDEX+1;  
  107. END WHILE;  
  108.  
  109. set cc=11 - mod(sum,11);      
  110.               
  111. case cc  
  112.   when 10 then set checkCode = 'X';  
  113.   when 11 then set checkCode = '0';  
  114.   else 
  115.     set checkCode = char(cc);  
  116.   end case;  
  117.  
  118. --校驗碼 end  
  119.   set rtnBaseCode = domain||entityCode||checkCode;  
  120.   insert into T_PUB_BASECODE(enpr_name,charger,address,phone,enpr_basecode,gen_bc_time,give_bc_time)   
  121.   values(enprName,enprLeader,enprAddr,enprPhone,rtnBaseCode,current date,current date);  
  122.     
  123.   set BASECODE =rtnBaseCode;  
  124.     
  125. return;  
  126.  
  127. end l1;  
  128. #SYNC 10;  
  129.  
  130.  
  131.  
  132. -- End of generated script for server226-DB2-GDZJ (gdzj) 

其中,該存儲過程中使用的一個自定義函數:DEC_TO_TEN(16進制轉換成10進制),其代碼如下(該代碼非原創,在網絡上搜索到的):

  1. -- Start of generated script for server226-DB2-GDZJ (gdzj)  
  2. --  Jun-29-2011 at 13:01:54  
  3.  
  4. SET SCHEMA GDZJ    ;  
  5.  
  6. SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDZJ";  
  7.  
  8. CREATE FUNCTION GDZJ.DEC_TO_TEN  
  9.  (pStr VARCHAR(25),  
  10.   p_from_base INTEGER 
  11.  )   
  12.   RETURNS INTEGER 
  13.   LANGUAGE SQL  
  14.   NOT DETERMINISTIC  
  15.   READS SQL DATA  
  16.   STATIC DISPATCH  
  17.   CALLED ON NULL INPUT  
  18.   EXTERNAL ACTION 
  19.   INHERIT SPECIAL REGISTERS  
  20.   BEGIN ATOMIC  
  21.     
  22.   DECLARE l_num int default 0;   
  23. DECLARE l_hex varchar(16) default '0123456789ABCDEF';   
  24. DECLARE k int default 1;   
  25. DECLARE kcount int;   
  26. DECLARE posNum int default 0;   
  27.  
  28.  
  29. set kcount = length(pStr);   
  30. WHILE k <=kcount DO   
  31. set posNum = locate(UPPER(SUBSTR(pStr,k,1)),l_hex)-1;   
  32. set l_num = l_num * p_from_base + posNum;   
  33. set k=k+1;   
  34. END WHILE;   
  35. RETURN l_num;  
  36.   END;  
  37. #SYNC 10;  
  38.  
  39.  
  40.  
  41. -- End of generated script for server226-DB2-GDZJ (gdzj) 

其中,來總結一下經驗:

1:DB2本身沒有16進制轉換成10進制的函數,得自己搞一個。

2:DB2的函數用法,如SUBSTR,HEX,char,以及||等的用法,其實,很多java中有的基本方法,DB2中也有的。

3:java中的循環,DB2其實也有的。

4:能把該java的代碼轉換到DB2中的sql來,主要是由于該存儲過程只是一個字符串的處理,沒涉及到java中復雜的東西,這才是成功的關鍵。遇到不會的,多上google搜索下,總有解決的方法的。但我部署這個存儲過程的錯誤,真的實在沒找到解決的方法.......比較郁悶。

原文鏈接: http://www.cnblogs.com/kfarvid/archive/2011/06/29/2093564.html

【編輯推薦】

  1. 談談Java調用SQL Server分頁存儲過程
  2. 如何用Java操作MongoDB

 

責任編輯:艾婧 來源: 努力偷懶的博客
相關推薦

2011-07-18 15:08:19

SQL存儲過程

2010-04-15 17:45:26

Oracle存儲過程

2016-12-20 10:59:43

MySQL存儲insert

2011-03-28 09:56:03

存儲增刪操作

2011-07-22 15:38:54

SQL Server數存儲過程切割字符串

2010-04-16 13:22:39

OracleJavaP

2010-10-29 16:22:37

SQL存儲過程

2010-07-15 12:38:14

SQL Server存

2010-11-12 09:46:55

Sql Server存

2011-03-28 10:28:46

sql存儲過程

2016-11-09 19:50:43

對象存儲AWS S3

2014-11-17 10:29:50

亞馬遜云存儲

2011-03-24 13:38:47

SQL Server 存儲分頁

2012-05-10 11:17:23

JavaSQL Server

2010-08-19 21:29:13

存儲虛擬化

2009-08-06 16:44:06

2011-05-17 15:13:59

oracle分頁存儲

2010-09-25 16:00:38

sql存儲過程

2021-06-30 07:19:36

網絡安全

2020-09-21 06:43:59

AtomicIntegNumber內存
點贊
收藏

51CTO技術棧公眾號

国产又粗又长又黄| 非洲一级黄色片| 波多野结衣中文字幕久久| 波多野结衣中文字幕一区| 欧美性猛xxx| 欧洲精品久久| www.成人在线观看| 欧美精品一区二区三区精品| 欧美伦理视频网站| 国产一线二线三线女| 大地资源中文在线观看免费版| 国产在线一区观看| 97久久精品国产| www.com.av| 亚洲成人va| 亚洲国产日韩一区二区| 色综合久久久久久久久五月| 亚洲精品国产一区二| 免费日本视频一区| 97免费视频在线播放| 欧日韩不卡视频| 亚洲人成伊人成综合图片| 欧美一卡2卡3卡4卡| 少妇激情一区二区三区| 黄色aa久久| 一区二区三区精品视频| 五月婷婷综合色| 无码国产色欲xxxx视频| 懂色av一区二区三区免费观看| 国产精品夜色7777狼人| 人人草在线观看| 99精品国产福利在线观看免费 | 青青草成人在线| 91精品人妻一区二区三区蜜桃2| 黄色成人免费网| 91麻豆精品秘密| 日本精品va在线观看| 国产精品视频一区二区三| 日韩精品诱惑一区?区三区| 日韩av中文字幕在线免费观看| 三上悠亚 电影| 一区二区三区| 欧美福利视频一区| 黄色片视频在线| 2019年精品视频自拍| 日韩欧美成人网| 亚洲乱码中文字幕久久孕妇黑人| 第一福利在线视频| 亚洲网友自拍偷拍| 美脚丝袜脚交一区二区| 国产精品国精产品一二| 亚洲狠狠爱一区二区三区| 一本大道东京热无码aⅴ| 宅男在线观看免费高清网站| 亚洲免费观看在线观看| 中文字幕日韩精品无码内射| 丁香花在线观看完整版电影| 亚洲国产人成综合网站| 免费看一级大黄情大片| 日本а中文在线天堂| 欧美国产禁国产网站cc| 欧美一区激情视频在线观看| 精品一二三区视频| 国产人妖乱国产精品人妖| 日本高清不卡三区| lutube成人福利在线观看| 中文字幕一区二区不卡| 欧美性视频在线播放| 色婷婷在线播放| 久久久不卡影院| 视频一区三区| 黄色网页在线播放| 91在线视频官网| 欧美不卡三区| 日本在线免费播放| 尤物视频一区二区| 国产原创中文在线观看 | 国产欧美久久久久久| 国产一区二区三区黄片| 高清国产一区二区| 久久偷看各类wc女厕嘘嘘偷窃 | 亚洲综合在线视频| 成年人看的毛片| 日韩伦理三区| 日韩一区二区中文字幕| 亚洲国产精品成人综合久久久| 成人毛片免费| 日韩西西人体444www| 一起草在线视频| 成人看的视频| 欧美国产日韩一区二区在线观看| 国产成人自拍视频在线| 亚洲女同另类| 韩剧1988免费观看全集| 国产精品免费无遮挡无码永久视频| 麻豆国产精品777777在线| 777午夜精品福利在线观看| 男人晚上看的视频| 精品视频久久| 九九九久久久久久| 日韩手机在线视频| 国产成人综合在线| 亚洲iv一区二区三区| 亚洲一区二区影视| 懂色av一区二区在线播放| 任我爽在线视频精品一| 欧洲成人综合网| 欧美亚洲精品一区| 国产婷婷在线观看| 久久久久久影院| 欧美中文字幕在线| 丰满人妻av一区二区三区| 国产精品全国免费观看高清| 日日摸日日碰夜夜爽无码| 日韩黄色在线| 亚洲性生活视频在线观看| 国产一级性生活| 国产在线精品一区二区夜色 | 五月天丁香视频| 亚洲激情图片一区| 爱情岛论坛亚洲首页入口章节| 激情av综合| 久久99精品久久久久久噜噜| 怡春院在线视频| 久久久无码精品亚洲日韩按摩| 国产乱人伦精品一区二区三区| 日韩制服一区| 日韩精品亚洲视频| 九热这里只有精品| 国产成人av自拍| 狠狠精品干练久久久无码中文字幕| 国产91精品在线| 一区二区在线免费视频| 日本一区二区三区精品| 成人黄色777网| 欧美高清中文字幕| 日韩专区av| 欧美精品久久久久久久久老牛影院| 久久久久久九九九九九| 日韩激情图片| 国产精品久久电影观看| 国产鲁鲁视频在线观看免费| 色综合一区二区三区| 国产色视频一区二区三区qq号| av不卡免费看| 久久精品日韩精品| 小h片在线观看| 精品一区二区三区四区在线| 日本中文字幕久久| 国产喂奶挤奶一区二区三区| 国产一区二区视频免费在线观看 | 亚洲精品自拍偷拍| 久久久国产高清| 久久久久久电影| 久久久精品麻豆| 91日韩免费| 欧美激情亚洲激情| 黄色小视频免费在线观看| 亚洲一区二区欧美日韩| 成人啪啪18免费游戏链接| 影音先锋久久久| 欧美h视频在线| 成人黄色免费观看| 美女扒开尿口让男人操亚洲视频网站| 国产伦一区二区| 亚洲资源在线观看| 亚洲国产精品自拍视频| 久久久国产精品一区二区中文| 日本在线免费观看一区| 成人做爰免费视频免费看| 久久久91精品国产| 亚洲av无码一区二区乱子伦 | 午夜视频网站在线观看| 国产精品人人做人人爽人人添| 免费不卡av网站| 99视频精品| 日本在线高清视频一区| 精品国产第一国产综合精品| 久久久久久久影院| 国产精品久久久久一区二区国产 | 四虎电影院在线观看| 在线观看一区不卡| 4438x全国最大成人| 欧美福利视频| 国产精品欧美日韩一区二区| 成人高清免费在线| 亚洲激情第一页| 免费三片在线播放| 91尤物视频在线观看| 爱爱爱爱免费视频| 国内精品视频在线观看| 成人免费大片黄在线播放| 超碰在线cao| 日韩中文字幕免费看| 成人小说亚洲一区二区三区| 91福利小视频| 精品无码一区二区三区| 精品在线观看视频| 男人天堂1024| 亚洲影视一区| 欧美一区二区三区在线播放 | 五月天丁香综合久久国产 | 麻豆91蜜桃| 天堂va在线高清一区| 国产精品电影观看| 国产精品186在线观看在线播放| 色偷偷偷综合中文字幕;dd| 欧美一区二不卡视频| 成人免费视频在线观看| 艳妇乳肉豪妇荡乳xxx| 久久99热这里只有精品| 国模吧无码一区二区三区| 欧美三区在线| 在线观看成人一级片| 国产videos久久| 精品蜜桃传媒| 亚洲性色av| 色在人av网站天堂精品| 毛片在线播放a| 亚洲天堂色网站| 天堂在线观看视频| 日韩视频在线观看一区二区| 亚洲熟妇av乱码在线观看| 日韩欧美aaa| 亚洲天堂av片| 亚洲成人在线网站| 妺妺窝人体色www在线下载| 亚洲私人黄色宅男| 国产又粗又猛又爽又黄的视频小说| xfplay精品久久| 成人免费无码大片a毛片| 国产成人av资源| 国产伦理在线观看| 国产麻豆视频一区二区| 中文字幕第66页| 国产主播一区二区三区| 在线免费观看视频黄| 秋霞午夜av一区二区三区| 人妻无码视频一区二区三区| 久久xxxx精品视频| 大肉大捧一进一出好爽动态图| 性高湖久久久久久久久| 黄色一级片在线看| 亚洲区国产区| 色综合666| 欧美午夜精彩| 亚洲成人一区二区三区| 大胆日韩av| 伊人av成人| 亚洲成人tv| 欧美一级爱爱视频| 国产精品啊啊啊| 婷婷五月综合缴情在线视频| 亚洲福利免费| 99精品人妻少妇一区二区| 亚洲专区欧美专区| 欧美黑人又粗又大又爽免费| 秋霞电影一区二区| 污视频在线观看免费网站| 国产精品自在欧美一区| 中国男女全黄大片| 99riav久久精品riav| 精品人妻互换一区二区三区| 欧美国产精品劲爆| 欧美精品一区二区蜜桃| 亚洲国产精品人人做人人爽| 日韩av男人天堂| 色哟哟国产精品| 亚洲一级在线播放| 欧美α欧美αv大片| 国产精品午夜一区二区| 欧美日韩视频一区二区| 亚洲精品视频在线观看免费视频| 天天综合色天天综合| 日本中文字幕在线观看视频| 91麻豆精品国产91久久久久久久久 | 久久精品久久综合| 初高中福利视频网站| 99久久综合色| 黄色激情小视频| 一区二区国产视频| 日韩精品一区不卡| 正在播放一区二区| 午夜视频www| 按摩亚洲人久久| 操人在线观看| 国产精品一区二区三区成人| 成人h动漫免费观看网站| 茄子视频成人在线观看 | 99福利在线观看| 国产专区综合网| 中文字幕第4页| 一区二区三区四区在线| 老熟妇一区二区三区| 日韩精品一区二区三区视频播放 | 黄色片视频网站| 欧美日韩高清一区| 日韩午夜影院| 欧美日韩国产成人在线| 99精品国自产在线| 极品尤物一区二区三区| 91精品一区国产高清在线gif | 国产在线播放一区| 亚洲精品国产熟女久久久| 亚洲综合男人的天堂| www.久久视频| 亚洲成色999久久网站| 在线免费黄色| 欧日韩不卡在线视频| gogo久久日韩裸体艺术| 杨幂一区欧美专区| 日韩久久精品| 精品中文字幕av| 成人一级黄色片| 一区二区国产精品精华液| 色婷婷久久综合| 香港一级纯黄大片| 欧美久久精品午夜青青大伊人| 成人av色网站| 欧美在线一区二区三区四区| 亚洲精选在线| 国产综合内射日韩久| 亚洲精品亚洲人成人网在线播放| 少妇一级淫片日本| 亚洲视频在线播放| 成人av观看| 美日韩精品免费| 国产亚洲高清视频| 日韩av手机在线播放| 亚洲一区二区影院| 999av视频| 欧美成人激情视频免费观看| 四虎在线精品| 欧美亚洲视频一区| 精品一区二区免费| 国产精品精品软件男同| 欧美日韩大陆一区二区| avtt亚洲| 国产一区二区视频在线观看| av中文一区| 污色网站在线观看| 国产精品私人自拍| 国产尤物在线观看| www国产精品com| 精品视频一区二区三区| 男人天堂网站在线| 先锋亚洲精品| 国产吞精囗交久久久| 中文字幕一区二| 91无套直看片红桃| 久久久国产精品视频| 精品视频在线观看网站| 亚洲精品久久久久久久蜜桃臀| 成人午夜碰碰视频| 五月婷婷中文字幕| 亚洲精选中文字幕| av在线播放一区| 国产又黄又爽免费视频| 国产成人丝袜美腿| 日韩xxx高潮hd| 亚洲日韩第一页| 久久婷婷五月综合色丁香| 午夜探花在线观看| 成人免费黄色大片| av网站中文字幕| 中文字幕一区二区精品| 四虎地址8848精品| 免费网站永久免费观看| 2017欧美狠狠色| 亚洲天堂avav| 久久久在线视频| 国产一区二区三区91| 天天看片天天操| 亚洲一区二区三区四区在线免费观看| 天堂网av2014| 国产美女91呻吟求| 激情久久中文字幕| 一区二区三区伦理片| 91麻豆精品国产91久久久资源速度 | 国产免费一区二区三区免费视频| 欧美精品久久久久| 亚洲综合图色| 奇米777在线视频| 欧美日韩免费网站| 色影视在线观看| 精品日韩美女| 久久精品国产99| 999这里只有精品| 久久久精品免费| 久久影院资源站| 亚洲免费成人在线视频| 亚洲va国产va欧美va观看| 91精品大全| 久久久福利视频| 国产九色精品成人porny| 亚洲 欧美 成人| 欧美激情视频一区二区| 欧美综合另类| 国产精品无码专区| 91精品国产一区二区三区蜜臀 |