日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

發布時間:2023/12/10 数据库 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要內容:

JDBC連接數據庫步驟。

一個簡單詳細的查詢數據的例子。

封裝連接數據庫,釋放數據庫連接方法。

實現查詢,插入,刪除,更新等十一個處理數據庫信息的功能。(包括事務處理,批量更新等)

把十一個功能都放在一起。

安裝下載的數據庫驅動程序jar包,不同的數據庫需要不同的驅動程序(這本該是第一步,但是由于屬于安裝類,所以我們放在最后)

一.JDBC連接數據庫(編輯)步驟(主要有六個步驟)。

1.注冊驅動: Class.forName("com.mysql.jdbc.Driver");顯示的加載到JVM中

2.獲取連接:(1) param1: ?要連接數據庫的url-----》?String url="jdbc:mysql://localhost:3306/test?"+ "useUnicode=true&characterEncoding=UTF8";//防止亂碼

param2:要連接數據庫的用戶名--》?String user="h4";

param3:要連接數據庫的密碼----》 String pass="111";

Connection conn=DriverManager.getConnection(url,user,pass);//DriverManager下的方法:getConnection(String url,String username,String password)

(2)接下來我們分析下url:"jdbc(這是協議以jdbc開頭):mysql(這是子協議,數據庫管理系統名稱)://localhost(數據庫來源地址):3306(目標端口)/test(要查詢的表)?"

"useUnicode=true&characterEncoding=UTF8";添加這個是為了防止亂碼,指定使用Unicode字符集?,且使用UTF-8來編輯。

3.創建一個Statement語句對象(主要三種方法): Statement stmt=conn.createStatement();//Connection接口下的方法:Statement createStatement()

PreparedStatement?pstmt?=?conn.PreparedStatement() ;

CallableStatement?cstmt?=??conn.prepareCall("{CALL?demoSp(??,??)}")?;

下面我們來分析下他們:(1)Statement與PreparedStatement對象的區別,后者可以動態設置查詢參數

(2)設置參數的方法PreparedStatement.setXXXX(parameterIndex,value),如果數據庫參數類型是varchar 則用setString,如果參數類型是Integer 則用setInt

(3)CallableStatement.setXXXX(parameterIndex,value)???//按照參數的順序設置value

CallableStatement.setXXXX(parameterName,value)??//按照參數的名字來設置value,這個名字是在定義存儲過程的時候的形式參數的名字

(4)CallableStatement.registerOutParameter方法用于聲明一個存儲過程輸出類型的參數,用以接收存儲過程的輸出值

4.執行SQL語句: ResultSet rs=stmt.executeQuery(Sql);除了查詢語句是executeQuery();其他全部是executeUpdate();

Statement接口下的方法:

boolean ? ??execute(String sql):執行SQL語句,如果返回值是結果集則為true,否則為false

ResultSet ?executeQuery(String sql):執行SQL語句,返回值為ResultSet

int ? ? ? ? ? ?executeUpdate(String sql):執行SQL語句,返回值為所影響的行數

5.處理結果集:ResultSet對象的getXxxx方法,取決于數據庫中表的字段的類型,例如:varchar2對應方法是getString?,如果是integer對應方法是getInt/getLong

While(rs.next()){

rs.getInt(columnIndex);??//通過列的序號來獲取字段的值

rs.getString(columnName);//通過列的名字來獲取字段的值

ResultSet接口下常見的方法:beforeFirst();將游標移動到ResultSet中第一條記錄(的前面)

afterLast();將游標移動到ResultSet中最后一條記錄(的后面)

absolute(intcolumn):將游標移動到相對于第一行的指定行,負數則為相對于最后一條記錄

previous():將游標上移一行

next():將游標下移一行

ResultSet.TYPE_SCROLL_SENSITIVE??????????結果集可以滾動

ResultSet.CONCUR_READ_ONLY ??結果集只讀,不能修改

6.關閉資源:?操作完以后要關閉jdbc來釋放jdbc資源。但是順序要和你定義對象的時候相反,就像關門一樣,從里面先關,一直往外關。

如下示例:

if(rs !=null){//1.關閉結果集

try{

rs.close();

} catch (SQLException e){

e.printStackTrace();

}

}

if(stmt !=null){//2.關閉聲明的對象

try{

stmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

if(conn !=null){//3.關閉連接 (記住一定要先關閉前面的1.2.然后在關閉連接)

try{

conn.close();

}catch(Exception e){

e.printStackTrace();

}

}

二.下面是一個簡單的(詳細的)查詢數據的例子。

1 package javacore1;//這是你建的一個包名。

2

3 importjava.sql.CallableStatement;4 importjava.sql.Connection;5 importjava.sql.DriverManager;6 importjava.sql.PreparedStatement;7 import java.sql.ResultSet; //左邊這五個是你在寫程序時要導入的包名,記住是要在java.sql下的包。

8 importjava.sql.SQLException;9 importjava.sql.Statement;10 public class jdbc { //定義一個類

11 public static void main(String[] args){ //主方法

12 try{13 String driver="com.mysql.jdbc.Driver"; //1.定義驅動程序名為driver內容為com.mysql.jdbc.Driver

14 String url="jdbc:mysql://localhost:3306/test?" //2.定義url;jdbc是協議;mysql是子協議:表示數據庫系統管理名稱;localhost:3306是你數據庫來源的地址和目標端口;test是我本人建的表位置所在處,你以你的為標準。

15 + "useUnicode=true&characterEncoding=UTF8"; //防止亂碼;useUnicode=true表示使用Unicode字符集;characterEncoding=UTF8表示使用UTF-8來編輯的。

16 String user="h4"; //3.定義用戶名,寫你想要連接到的用戶。

17 String pass="111"; //4.用戶密碼。

18 String querySql="select * from employees"; //5.你想要查找的表名。

19 Class.forName(driver); //6.注冊驅動程序,用java.lang包下面的class類里面的Class.froName();方法 此處的driver就是1里面定義的driver,也可以 Class.forName("com.mysql.jdbc.Driver");

21 Connection conn=DriverManager.getConnection(url,user,pass);//7.獲取數據庫連接,使用java.sql里面的DriverManager的getConnectin(String url , String username ,String password )來完成22 //括號里面的url,user,pass便是前面定義的2,3,4步驟內容;

23 Statement stmt=conn.createStatement(); //8.構造一個statement對象來執行sql語句:主要有Statement,PreparedStatement,CallableStatement三種實例來實現24 //三種實現方法分別為:Statement stmt = con.createStatement() ;25 //PreparedStatement pstmt = conn.prepareStatement(sql) ;26 //CallableStatement cstmt = conn.prepareCall("{CALL demoSp(? , ?)}") ;

27 ResultSet rs=stmt.executeQuery(querySql);//9.執行sql并返還結束 ;ResultSet executeQuery(String sqlString):用于返還一個結果集(ResultSet)對象。

28 while(rs.next()){ //10.遍歷結果集

29 System.out.println("人員編號:"+rs.getString("employee_id")+"工資:"+rs.getString("salary")+"姓名:"+rs.getString("last_name"));//使用getString()方法獲取你表里的資料名

30 }31 if(rs !=null){//11.關閉記錄集

32 try{33 rs.close();34 } catch(SQLException e){35 e.printStackTrace();36 }37 }38 if(stmt !=null){//12.關閉聲明的對象

39 try{40 stmt.close();41 }catch(SQLException e){42 e.printStackTrace();43 }44 }45 if(conn !=null){//13.關閉連接 (記住一定要先關閉前面的11.12.然后在關閉連接,就像關門一樣,先關里面的,最后關最外面的)

46 try{47 conn.close();48 }catch(SQLException e){49 e.printStackTrace();50 }51 }52 }catch(Exception e){53 e.printStackTrace();54 }55 }56 }

三.為了更加直觀,我們把獲取數據庫連接和釋放連接封裝在方法里,以便于后面更好的操作。

1 packagejavacore1;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5

6 public classjdbc{7 public static voidmain(String[] args){8

9 Connection conn= getConnection("h4", "111"); //獲取數據庫連接

10

11 /*,,,,此處為方法名來獲取連接,例如 query(conn),,,,,*/

12

13 releaseConnection(conn); //釋放數據庫連接

14 }15

16 /*,,,,,,,,,,此處構建一個你想要的功能的方法,,,,,,,,,,,,*/

17

18

19 //數據庫連接

20 public staticConnection getConnection(String user, String pass) {21

22 Connection conn = null;//聲明連接對象

23 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

24 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

25 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

26 try{27 Class.forName(driver);//注冊(加載)驅動程序

28 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

29 } catch(Exception e) {30 e.printStackTrace();31 }32 returnconn;33 }34 //釋放數據庫連接

35 public static voidreleaseConnection(Connection conn) {36 try{37 if (conn != null)38 conn.close();39 } catch(Exception e) {40 e.printStackTrace();41 }42 }43 }

四.實現查詢、插入、刪除、更新等十一個處理數據庫信息的功能。

1.查詢數據

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.ResultSet;5 importjava.sql.SQLException;6 importjava.sql.Statement;7 public classQuery {8 public static voidmain(String[] args) {9 Connection conn = getConnection("h4", "111");//獲取數據庫連接

10 query(conn); //方法名調用數據庫連接

11 releaseConnection(conn);//釋放數據庫連接

12 }13 //查詢數據,定義的query方法

14 public static voidquery(Connection conn){15 String Sql="select * from employees";16 try{17 Statement stmt=conn.createStatement(); //也可以使用PreparedStatement來做

18 ResultSet rs=stmt.executeQuery(Sql);//執行sql語句并返還結束

19

20 while(rs.next()){//遍歷結果集 ,向下一行

21 System.out.println("人員編號:"+rs.getString("employee_id")+"工資:"+rs.getString("salary"));22 }23 if(rs !=null){24 try{25 rs.close();26 } catch(SQLException e){27 e.printStackTrace();28 }29 }30 if(stmt !=null){31 try{32 stmt.close();33 }catch(SQLException e){34 e.printStackTrace();35 }36 }37 if(conn !=null){38 try{39 conn.close();40 }catch(SQLException e){41 e.printStackTrace();42 }43 }44 }catch(Exception e){45 e.printStackTrace();46 }47 }48 //數據庫連接

49 public staticConnection getConnection(String user, String pass) {50 Connection conn = null;//聲明連接對象

51 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

52 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

53 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

54 try{55 Class.forName(driver);//注冊(加載)驅動程序

56 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

57 } catch(Exception e) {58 e.printStackTrace();59 }60 returnconn;61 }62 //釋放數據庫連接

63 public static voidreleaseConnection(Connection conn) {64 try{65 if (conn != null)66 conn.close();67 } catch(Exception e) {68 e.printStackTrace();69 }70 }71 }

//查詢數據,結果倒著顯示,倒序

packagejavacore1;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classQuery {public static voidmain(String[] args) {

Connection conn= getConnection("h4", "111");//獲取數據庫連接

query(conn); //方法名調用數據庫連接

releaseConnection(conn);//釋放數據庫連接

}//查詢數據,定義的query方法

public static voidquery(Connection conn){

String Sql="select * from employees";try{

Statement stmt=conn.createStatement(); //也可以使用PreparedStatement來做

ResultSet rs=stmt.executeQuery(Sql);//執行sql語句并返還結束

rs.afterLast(); //先跳到最后一行while(rs.previous()){//遍歷結果集 ,向上一行

System.out.println("人員編號:"+rs.getString("employee_id")+"工資:"+rs.getString("salary"));

}if(rs !=null){try{

rs.close();

}catch(SQLException e){

e.printStackTrace();

}

}if(stmt !=null){try{

stmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}if(conn !=null){try{

conn.close();

}catch(SQLException e){

e.printStackTrace();

}

}

}catch(Exception e){

e.printStackTrace();

}

}//數據庫連接

public staticConnection getConnection(String user, String pass) {

Connection conn= null;//聲明連接對象

String driver = "com.mysql.jdbc.Driver";//驅動程序類名

String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

+ "useUnicode=true&characterEncoding=UTF8";//防止亂碼

try{

Class.forName(driver);//注冊(加載)驅動程序

conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

} catch(Exception e) {

e.printStackTrace();

}returnconn;

}//釋放數據庫連接

public static voidreleaseConnection(Connection conn) {try{if (conn != null)

conn.close();

}catch(Exception e) {

e.printStackTrace();

}

}

}

2.插入數據

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.SQLException;5 importjava.sql.Statement;6 public classInsert {7 public static voidmain(String[] args) {8 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

9 insert(conn); //方法名調用數據庫連接

10 releaseConnection(conn);//釋放數據庫連接

11 }12 //插入數據

13 public static voidinsert(Connection conn) {14 try{15 String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)"

16 + " values ('100010', 'xiaogou', '7000','004','9')"; //插入數據的sql語句

17 Statement stmt1 =conn.createStatement(); //創建用于執行靜態sql語句的Statement對象

18 int count = stmt1.executeUpdate(sql); //執行插入操作的sql語句,并返回插入數據的個數

19 System.out.println("向biao中插入了 " + count + " 條數據"); //輸出插入操作的處理結果

20 conn.close(); //關閉數據庫連接

21 } catch(SQLException e) {22 e.printStackTrace();23 }24 }25 //數據庫連接

26 public staticConnection getConnection(String user, String pass) {27 Connection conn = null;//聲明連接對象

28 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

29 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

30 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

31 try{32 Class.forName(driver);//注冊(加載)驅動程序

33 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

34 } catch(Exception e) {35 e.printStackTrace();36 }37 returnconn;38 }39 //釋放數據庫連接

40 public static voidreleaseConnection(Connection conn) {41 try{42 if (conn != null)43 conn.close();44 } catch(Exception e) {45 e.printStackTrace();46 }47 }48 }

3.刪除數據

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.SQLException;5 importjava.sql.Statement;6 public classDelete {7 public static voidmain(String[] args) {8 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

9 delete(conn); //方法名調用數據庫連接;

10 releaseConnection(conn);//釋放數據庫連接

11 }12 //刪除數據

13 public static voiddelete(Connection conn){14 String Sql = "delete from employees where employee_id=100009";15 try{16 Statement stmt = conn.createStatement();//或者用PreparedStatement方法

17 stmt.executeUpdate(Sql);//執行sql語句

18 if (stmt != null) {19 try{20 stmt.close();21 } catch(SQLException e) {22 e.printStackTrace();23 }24 }25 } catch(SQLException e) {26 e.printStackTrace();27 }28

29 }30 //數據庫連接

31 public staticConnection getConnection(String user, String pass) {32 Connection conn = null;//聲明連接對象

33 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

34 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

35 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

36 try{37 Class.forName(driver);//注冊(加載)驅動程序

38 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

39 } catch(Exception e) {40 e.printStackTrace();41 }42 returnconn;43 }44 //釋放數據庫連接

45 public static voidreleaseConnection(Connection conn) {46 try{47 if (conn != null)48 conn.close();49 } catch(Exception e) {50 e.printStackTrace();51 }52 }53 }

4.更新數據

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.SQLException;5 importjava.sql.Statement;6 public classUpdate {7 public static voidmain(String[] args) {8 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

9 update(conn); //方法名調用數據庫連接

10 releaseConnection(conn);//釋放數據庫連接

11 }12 //更新數據

13 public static voidupdate(Connection conn){14 String Sql = "update employees set salary=8000 where employee_id=100005";15 try{16 Statement stmt1 = conn.createStatement();//或者用PreparedStatement方法

17 stmt1.executeUpdate(Sql);//執行sql語句

18 if (stmt1 != null) {19 try{20 stmt1.close();21 } catch(SQLException e) {22 e.printStackTrace();23 }24 }25 } catch(SQLException e) {26 e.printStackTrace();27 }28 }29 //數據庫連接

30 public staticConnection getConnection(String user, String pass) {31 Connection conn = null;//聲明連接對象

32 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

33 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

34 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

35 try{36 Class.forName(driver);//注冊(加載)驅動程序

37 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

38 } catch(Exception e) {39 e.printStackTrace();40 }41 returnconn;42 }43 //釋放數據庫連接

44 public static voidreleaseConnection(Connection conn) {45 try{46 if (conn != null)47 conn.close();48 } catch(Exception e) {49 e.printStackTrace();50 }51 }52 }

5.轉賬(事物處理)

JDBC處理事務通過關閉連接的自動提交實現的:

Connection.setAutoCommit(false);

提交事務:

Connection.commit();

回滾事務

回滾部分:

Connection.rollback(Savepoint);

全部回滾:

Connection.rollback();

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.Statement;5 public classTransCash {6 public static voidmain(String[] args) {7 Connection conn = getConnection("h3", "111111");//獲取數據庫連接

8 transCash(conn); //方法名調用數據庫連接

9 releaseConnection(conn);//釋放數據庫連接

10 }11 //轉賬(數據調換)(原來數據為100和500,實現這個功能后變成500和100,其實說白了就是更新數據,改數據)

12 public static voidtransCash(Connection conn){13 Statement stmt = null;14 try{15 conn.setAutoCommit(false);//關閉自動提交

16 String sql = "update employees set salary=500 where employee_id=100001";17 stmt =conn.createStatement();18 stmt.executeUpdate(sql);19 sql = "update employees set salary=100 where employee_id=100002";20 stmt.executeUpdate(sql);//執行sql語句,上面的兩個工資將會調換 //int i=1/0;如果這樣,那么將不可以完成任務,因為這是一個完整的事物,有一點失敗,將全部失敗

21 conn.commit();//提交事務

22 }catch(Exception e){23 e.printStackTrace();24 }finally{25 try{26 if(stmt != null){ stmt.close();27 }catch(Exception e){28 e.printStackTrace();29 }30 }31 }32 //數據庫連接

33 public staticConnection getConnection(String user, String pass) {34 Connection conn = null;//聲明連接對象

35 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

36 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

37 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

38 try{39 Class.forName(driver);//注冊(加載)驅動程序

40 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

41 } catch(Exception e) {42 e.printStackTrace();43 }44 returnconn;45 }46 //釋放數據庫連接

47 public static voidreleaseConnection(Connection conn) {48 try{49 if (conn != null)50 conn.close();51 } catch(Exception e) {52 e.printStackTrace();53 }54 }55 }

6.查找存儲過程無參數的

1 packagejavacore1;2 importjava.sql.CallableStatement;3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.SQLException;6 public classExecProc {7 public static voidmain(String[] args) {8 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

9 execProc(conn);//方法名調用數據庫連接

10 releaseConnection(conn);//釋放數據庫連接

11 }12 //調用無參存儲過程;

13 public static voidexecProc(Connection conn){14 String sql = "{call raisesalary}";15 try{16 CallableStatement cstmt =conn.prepareCall(sql);17 cstmt.executeUpdate();18 } catch(SQLException e) {19 e.printStackTrace();20 }21 }22 //數據庫連接

23 public staticConnection getConnection(String user, String pass) {24 Connection conn = null;//聲明連接對象

25 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

26 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

27 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

28 try{29 Class.forName(driver);//注冊(加載)驅動程序

30 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

31 } catch(Exception e) {32 e.printStackTrace();33 }34 returnconn;35 }36 //釋放數據庫連接

37 public static voidreleaseConnection(Connection conn) {38 try{39 if (conn != null)40 conn.close();41 } catch(Exception e) {42 e.printStackTrace();43 }44 }45 }

7.查找存儲過程有參數的

1 packagejavacore1;2 importjava.sql.CallableStatement;3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.Types;6 public classGetMulti {7 public static voidmain(String[] args) {8 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

9 int cnt = getMulti(conn); //查找存儲過程;

10 System.out.println("人員編號:" +cnt);11 releaseConnection(conn);//釋放數據庫連接

12 }13 //查找存儲過程有參

14 public static intgetMulti(Connection conn) {15 int dept_id = 100001;16 int cnt = 0;17 String sql = "{call calc_emp_count(?,?)}";18 try{19 CallableStatement cstmt = conn.prepareCall(sql);//初始化Statement對象

20 cstmt.setInt(1, dept_id);//CallableStatement.setxxx(參數,值)或者(數字,值),而PreparedStatement.setxxx(數字,值)只能這樣

21 cstmt.setInt(2, cnt); //22 cstmt.registerOutParameter(2, Types.INTEGER);//聲明輸出參數

23 cstmt.executeUpdate();//執行sql語句

24 cnt = cstmt.getInt(2);//獲取結果

25 if (cstmt != null) {26 cstmt.close();//釋放Statement對象

27 }28 } catch(Exception e) {29 e.printStackTrace();30 }31 returncnt;32 }33 //數據庫連接

34 public staticConnection getConnection(String user, String pass) {35 Connection conn = null;//聲明連接對象

36 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

37 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

38 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

39 try{40 Class.forName(driver);//注冊(加載)驅動程序

41 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

42 } catch(Exception e) {43 e.printStackTrace();44 }45 returnconn;46 }47 //釋放數據庫連接

48 public static voidreleaseConnection(Connection conn) {49 try{50 if (conn != null)51 conn.close();52 } catch(Exception e) {53 e.printStackTrace();54 }55 }56 }

8.普通處理

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.Date;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.SQLException;7 public classPlanInsert {8 public static voidmain(String[] args) {9 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

10 planInsert(conn); //方法名調用數據庫連接

11 releaseConnection(conn);//釋放數據庫連接

12 }13 //普通處理

14 public static voidplanInsert(Connection conn) {15 try{16 String sql = "insert into test_user1(userid,username,loadingtime)"

17 + " values (?,?,?)"; //插入數據的sql語句

18 PreparedStatement pstmt=conn.prepareStatement(sql);19 long startTime=System.currentTimeMillis();20 for(int i=0;i<1000;i++){21 pstmt.setLong(1, i);22 pstmt.setString(2, "user"+i);23 pstmt.setDate(3, newDate(System.currentTimeMillis()));24 pstmt.executeUpdate();25 }26 System.out.println("總共耗時:"+(System.currentTimeMillis() -startTime));27 pstmt.close(); //關閉數據庫連接

28 } catch(SQLException e) {29 e.printStackTrace();30 }31 }32 //數據庫連接

33 public staticConnection getConnection(String user, String pass) {34 Connection conn = null;//聲明連接對象

35 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

36 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

37 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

38 try{39 Class.forName(driver);//注冊(加載)驅動程序

40 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

41 } catch(Exception e) {42 e.printStackTrace();43 }44 returnconn;45 }46 //釋放數據庫連接

47 public static voidreleaseConnection(Connection conn) {48 try{49 if (conn != null)50 conn.close();51 } catch(Exception e) {52 e.printStackTrace();53 }54 }55 }

9.批量處理

獲得原來JDBC事務的模式:

boolean currentTransactionModle = con.getAutoCommit();

設置成事務模式(關閉自動提交):

con.setAutoCommit(false);

Statement stm = con.createStatement();

三個異構的sql語句:

String sql1 = "delete from user where id = 8";

String sql2 = "update user set name='java' where id = 7";

String sql3 = "insert into user(name,password) values('jdbc','jdbc')";

添加到Statement的批量處理緩沖區中:

stm.addBatch(sql1);

stm.addBatch(sql2);

stm.addBatch(sql3);

執行批量更新:

stm.executeBatch();

提交本次批量更新的事務:

con.commit();

回復原來的事務模式:

con.setAutoCommit(currentTransactionModle);

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.Date;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.SQLException;7 public classBatchInsert {8 public static voidmain(String[] args) {9 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

10 batchInsert(conn); //方法名調用數據庫連接

11 releaseConnection(conn);//釋放數據庫連接

12 }13 //批量插入的速度要比普通處理的速度快

14 public static voidbatchInsert(Connection conn) {15 try{16 String sql = "insert into test_user1(userid,username,loadingtime)"

17 + " values (?,?,?)"; //插入數據的sql語句

18 PreparedStatement pstmt=conn.prepareStatement(sql);19 long startTime=System.currentTimeMillis();20 for(int i=0;i<1000;i++){21 pstmt.setLong(1, i);22 pstmt.setString(2, "user"+i);23 pstmt.setDate(3, newDate(System.currentTimeMillis()));24 pstmt.addBatch();//添加到批量處理

25 }26 int[] result=pstmt.executeBatch();27 System.out.println("總共耗時:"+(System.currentTimeMillis() -startTime));28 pstmt.close(); //關閉數據庫連接

29 } catch(SQLException e) {30 e.printStackTrace();31 }32 }33 //數據庫連接

34 public staticConnection getConnection(String user, String pass) {35 Connection conn = null;//聲明連接對象

36 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

37 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

38 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

39 try{40 Class.forName(driver);//注冊(加載)驅動程序

41 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

42 } catch(Exception e) {43 e.printStackTrace();44 }45 returnconn;46 }47 //釋放數據庫連接

48 public static voidreleaseConnection(Connection conn) {49 try{50 if (conn != null)51 conn.close();52 } catch(Exception e) {53 e.printStackTrace();54 }55 }56 }

10.分頁顯示

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 public classPaging {8 public static voidmain(String[] args) {9 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

10 paging(conn,1,3);//方法名調用數據庫連接,且定義顯示第幾行到第幾行

11 releaseConnection(conn);//釋放數據庫連接

12 }13 //分頁查詢

14 public static void paging(Connection conn,int startIndex,inttotal){15 try{16 String sql="select * from employees limit ?,?";17 PreparedStatement pstmt=conn.prepareStatement(sql);18 pstmt.setInt(1, startIndex);19 pstmt.setInt(2, total);20 ResultSet rs=pstmt.executeQuery();21 while(rs.next()){22 System.out.print("工號:"+rs.getInt(1));23 System.out.println("部門編號:"+rs.getInt("department_id"));24 }rs.close();25 pstmt.close();26 }catch(SQLException e){27 e.printStackTrace();28 }29 }30 //數據庫連接

31 public staticConnection getConnection(String user, String pass) {32 Connection conn = null;//聲明連接對象

33 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

34 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

35 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

36 try{37 Class.forName(driver);//注冊(加載)驅動程序

38 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

39 } catch(Exception e) {40 e.printStackTrace();41 }42 returnconn;43 }44 //釋放數據庫連接

45 public static voidreleaseConnection(Connection conn) {46 try{47 if (conn != null)48 conn.close();49 } catch(Exception e) {50 e.printStackTrace();51 }52 }53 }

11.結果集可以滾動

1 packagejavacore1;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 public classScrpllResult {8 public static voidmain(String[] args) {9 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接

10 scrpllResult(conn);//方法名調用數據庫連接

11 releaseConnection(conn);//釋放數據庫連接

12 }13 //結果集滾動顯示

14 public static voidscrpllResult(Connection conn){15 try{16 String sql="select * from employees"; //結果集可以滾動//并發性,結果集只讀,不可以修改

17 PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);18 ResultSet rs=pstmt.executeQuery();19 while(rs.next()){ //向下一行遍歷

20 System.out.print("工號:"+rs.getLong(1));21 System.out.println("名字"+rs.getString("last_name"));22 }while(rs.previous()){//向上一行遍歷

23 System.out.print("工號:"+rs.getLong(1));24 System.out.println("工資"+rs.getInt("salary"));25 }26 rs.absolute(6);//表示直接跳到第幾行

27 if(rs.next()){28 System.out.print("工號:"+rs.getLong(1));29 System.out.println("..........部門編號:"+rs.getString("department_id"));30 }31 rs.close();32 pstmt.close();33 }catch(SQLException e){34 e.printStackTrace();35 }36 }37 //數據庫連接

38 public staticConnection getConnection(String user, String pass) {39 Connection conn = null;//聲明連接對象

40 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

41 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

42 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

43 try{44 Class.forName(driver);//注冊(加載)驅動程序

45 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

46 } catch(Exception e) {47 e.printStackTrace();48 }49 returnconn;50 }51 //釋放數據庫連接

52 public static voidreleaseConnection(Connection conn) {53 try{54 if (conn != null)55 conn.close();56 } catch(Exception e) {57 e.printStackTrace();58 }59 }60 }

五.把上面十一個放在一起當然最方便省事。(需要用誰,只需把前面的注釋打開便行)

1 packagejavacore1;2 importjava.sql.CallableStatement;3 importjava.sql.Connection;4 importjava.sql.Date;5 importjava.sql.DriverManager;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9 importjava.sql.Statement;10 importjava.sql.Types;11 public classjdbcMySql {12 public static voidmain(String[] args) {13 Connection conn = getConnection("h3", "111111"); //獲取數據庫連接14 //query(conn);//1.查詢數據15 //insert(conn);//2.插入數據16 //delete(conn);//3.刪除數據17 //update(conn);//4.更新數據18 //transCash(conn);//5.轉賬19 //execProc(conn);//6.查找存儲過程無參數的20 //int cnt = getMulti(conn);//7.查找存儲過程有參數的21 //System.out.println("人員編號:" + cnt);//查找存儲過程有參數的22 //planInsert(conn);//8.普通處理23 //batchInsert(conn);//9.批量處理24 //paging(conn,1,3);//10.分頁顯示25 //scrpllResult(conn);//11.結果集可以滾動

26 releaseConnection(conn);//釋放數據庫連接

27 }28 //1.查詢數據,定義的query方法

29 public static voidquery(Connection conn){30 String Sql="select * from employees";31 try{32 Statement stmt=conn.createStatement(); //也可以使用PreparedStatement來做

33 ResultSet rs=stmt.executeQuery(Sql);//執行sql語句并返還結束

34

35 while(rs.next()){//遍歷結果集

36 System.out.println("人員編號:"+rs.getString("employee_id")+"工資:"+rs.getString("salary"));37 }38 if(rs !=null){39 try{40 rs.close();41 } catch(SQLException e){42 e.printStackTrace();43 }44 }45 if(stmt !=null){46 try{47 stmt.close();48 }catch(SQLException e){49 e.printStackTrace();50 }51 }52 if(conn !=null){53 try{54 conn.close();55 }catch(SQLException e){56 e.printStackTrace();57 }58 }59 }catch(Exception e){60 e.printStackTrace();61 }62 }63 //2.插入數據

64 public static voidinsert(Connection conn) {65 try{66 String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)"

67 + " values ('100010', 'xiaogou', '7000','004','9')"; //插入數據的sql語句

68 Statement stmt1 =conn.createStatement(); //創建用于執行靜態sql語句的Statement對象

69 int count = stmt1.executeUpdate(sql); //執行插入操作的sql語句,并返回插入數據的個數

70 System.out.println("向biao中插入了 " + count + " 條數據"); //輸出插入操作的處理結果

71 conn.close(); //關閉數據庫連接

72 } catch(SQLException e) {73 e.printStackTrace();74 }75 }76 //3.刪除數據

77 public static voiddelete(Connection conn){78 String Sql = "delete from employees where employee_id=100009";79 try{80 Statement stmt = conn.createStatement();//或者用PreparedStatement方法

81 stmt.executeUpdate(Sql);//執行sql語句

82 if (stmt != null) {83 try{84 stmt.close();85 } catch(SQLException e) {86 e.printStackTrace();87 }88 }89 } catch(SQLException e) {90 e.printStackTrace();91 }92

93 }94 //4.更新數據

95 public static voidupdate(Connection conn){96 String Sql = "update employees set salary=8000 where employee_id=100005";97 try{98 Statement stmt1 = conn.createStatement();//或者用PreparedStatement方法

99 stmt1.executeUpdate(Sql);//執行sql語句

100 if (stmt1 != null) {101 try{102 stmt1.close();103 } catch(SQLException e) {104 e.printStackTrace();105 }106 }107 } catch(SQLException e) {108 e.printStackTrace();109 }110 }111 //5.轉賬(數據調換)(原來數據為100和500,實現這個功能后變成500和100,其實說白了就是更新數據,改數據)

112 public static voidtransCash(Connection conn){113 Statement stmt = null;114 try{115 conn.setAutoCommit(false);//關閉自動提交

116 String sql = "update employees set salary=500 where employee_id=100001";117 stmt =conn.createStatement();118 stmt.executeUpdate(sql);119 sql = "update employees set salary=100 where employee_id=100002";120 stmt.executeUpdate(sql);//執行sql語句,上面的兩個工資將會調換

121 conn.commit();//提交事務

122 }catch(Exception e){123 e.printStackTrace();124 }finally{125 try{126 if(stmt != null)stmt.close();127 }catch(Exception e){128 e.printStackTrace();129 }130 }131 }132 //6.調用無參存儲過程;

133 public static voidexecProc(Connection conn){134 String sql = "{call raisesalary}";135 try{136 CallableStatement cstmt =conn.prepareCall(sql);137 cstmt.executeUpdate();138 } catch(SQLException e) {139 e.printStackTrace();140 }141 }142 //7.查找存儲過程有參

143 public static intgetMulti(Connection conn) {144 int dept_id = 100001;145 int cnt = 0;146 String sql = "{call calc_emp_count(?,?)}";147 try{148 CallableStatement cstmt = conn.prepareCall(sql);//初始化Statement對象

149 cstmt.setInt(1, dept_id);//CallableStatement.setxxx(參數,值)或者(數字,值),而PreparedStatement.setxxx(數字,值)只能這樣

150 cstmt.setInt(2, cnt); //151 cstmt.registerOutParameter(2, Types.INTEGER);//聲明輸出參數

152 cstmt.executeUpdate();//執行sql語句

153 cnt = cstmt.getInt(2);//獲取結果

154 if (cstmt != null) {155 cstmt.close();//釋放Statement對象

156 }157 } catch(Exception e) {158 e.printStackTrace();159 }160 returncnt;161 }162 //8.普通處理

163 public static voidplanInsert(Connection conn) {164 try{165 String sql = "insert into test_user1(userid,username,loadingtime)"

166 + " values (?,?,?)"; //插入數據的sql語句

167 PreparedStatement pstmt=conn.prepareStatement(sql);168 long startTime=System.currentTimeMillis();169 for(int i=0;i<1000;i++){170 pstmt.setLong(1, i);171 pstmt.setString(2, "user"+i);172 pstmt.setDate(3, newDate(System.currentTimeMillis()));173 pstmt.executeUpdate();174 }175 System.out.println("總共耗時:"+(System.currentTimeMillis() -startTime));176 pstmt.close(); //關閉數據庫連接

177 } catch(SQLException e) {178 e.printStackTrace();179 }180 }181 //9.批量插入的速度要比普通處理的速度快

182 public static voidbatchInsert(Connection conn) {183 try{184 String sql = "insert into test_user1(userid,username,loadingtime)"

185 + " values (?,?,?)"; //插入數據的sql語句

186 PreparedStatement pstmt=conn.prepareStatement(sql);187 long startTime=System.currentTimeMillis();188 for(int i=0;i<1000;i++){189 pstmt.setLong(1, i);190 pstmt.setString(2, "user"+i);191 pstmt.setDate(3, newDate(System.currentTimeMillis()));192 pstmt.addBatch();//添加到批量處理

193 }194 int[] result=pstmt.executeBatch();195 System.out.println("總共耗時:"+(System.currentTimeMillis() -startTime));196 pstmt.close(); //關閉數據庫連接

197 } catch(SQLException e) {198 e.printStackTrace();199 }200 }201 //10.分頁查詢

202 public static void paging(Connection conn,int startIndex,inttotal){203 try{204 String sql="select * from employees limit ?,?";205 PreparedStatement pstmt=conn.prepareStatement(sql);206 pstmt.setInt(1, startIndex);207 pstmt.setInt(2, total);208 ResultSet rs=pstmt.executeQuery();209 while(rs.next()){210 System.out.print("工號:"+rs.getInt(1));211 System.out.println("部門編號:"+rs.getInt("department_id"));212 }rs.close();213 pstmt.close();214 }catch(SQLException e){215 e.printStackTrace();216 }217 }218 //11.結果集滾動顯示

219 public static voidscrpllResult(Connection conn){220 try{221 String sql="select * from employees"; //結果集可以滾動//并發性,結果集只讀,不可以修改

222 PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);223 ResultSet rs=pstmt.executeQuery();224 while(rs.next()){ //向下一行遍歷

225 System.out.print("工號:"+rs.getLong(1));226 System.out.println("名字"+rs.getString("last_name"));227 }while(rs.previous()){//向上一行遍歷

228 System.out.print("工號:"+rs.getLong(1));229 System.out.println("工資"+rs.getInt("salary"));230 }231 rs.absolute(6);//表示直接跳到第幾行

232 if(rs.next()){233 System.out.print("工號:"+rs.getLong(1));234 System.out.println("..........部門編號:"+rs.getString("department_id"));235 }236 rs.close();237 pstmt.close();238 }catch(SQLException e){239 e.printStackTrace();240 }241 }242 //數據庫連接

243 public staticConnection getConnection(String user, String pass) {244 Connection conn = null;//聲明連接對象

245 String driver = "com.mysql.jdbc.Driver";//驅動程序類名

246 String url = "jdbc:mysql://localhost:3306/test?" //數據庫URL

247 + "useUnicode=true&characterEncoding=UTF8";//防止亂碼

248 try{249 Class.forName(driver);//注冊(加載)驅動程序

250 conn = DriverManager.getConnection(url, user, pass);//獲取數據庫連接

251 } catch(Exception e) {252 e.printStackTrace();253 }254 returnconn;255 }256 //釋放數據庫連接

257 public static voidreleaseConnection(Connection conn) {258 try{259 if (conn != null)260 conn.close();261 } catch(Exception e) {262 e.printStackTrace();263 }264 }265 }

六.安裝下載的數據庫驅動程序jar包,不同的數據庫需要不同的驅動程序(但是安裝方法都是一樣的)

在使用JDBC編程時需要連接數據庫,導入JAR包是必須的,導入其它的jar包方法同樣如此,導入的方法是

打開eclipse

1.右擊要導入jar包的項目,點properties

2.左邊選擇java build path,右邊選擇libraries

3.選擇add External jars

4.選擇jar包的按照路徑下的

確定后就行了。

Java連接MySQL的最新驅動包下載地址

1.鼠標放在你建的根目錄上面。右擊,然后選擇最下面的properties。

2.然后左邊選擇java build path,右邊選擇libraries ,在選擇右邊的add External jars ,選擇jar包的路徑,點擊確定就可以了

3.裝好后,圖如下出現你要添加的包。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91视频久久久久 | 九九免费观看全部免费视频 | 精品久久久亚洲 | 日韩系列在线观看 | 在线视频你懂 | www五月天 | 精油按摩av | 91在线91 | 国产精品福利视频 | 国产免费中文字幕 | 国产精品手机在线观看 | 最近日韩免费视频 | 99精品黄色片免费大全 | 免费观看黄色12片一级视频 | 西西4444www大胆艺术 | 91精品久久久久久粉嫩 | 国内精品久久久久久久久久久久 | 在线视频区 | 日韩久久久久久久久久 | 成人一级免费电影 | 中文亚洲欧美日韩 | 国产一区二区电影在线观看 | 国产成人精品一区二区三区免费 | www黄免费| 国产精品久久久久久久久久 | av黄色免费看 | 欧美日韩中文国产一区发布 | 免费观看全黄做爰大片国产 | 亚洲伊人色 | 免费高清在线一区 | 欧美日韩在线视频免费 | 国产精品久久久久9999吃药 | 日本在线观看一区 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲精品成人av在线 | 在线播放国产一区二区三区 | 免费精品国产va自在自线 | 在线看一区 | 色午夜 | 九九九视频精品 | 国产精品午夜久久久久久99热 | av 在线观看 | 国产黄网站在线观看 | 五月天婷婷在线视频 | 久久女同性恋中文字幕 | 欧美久久久一区二区三区 | av免费高清观看 | 91大神dom调教在线观看 | 精品视频在线播放 | 久久精品国产精品亚洲 | 97看片| 91免费日韩 | 免费精品国产 | 久久天堂网站 | 九九综合在线 | 欧美日韩另类在线观看 | 四虎小视频 | 久久久人人人 | 午夜 在线 | 麻豆视频在线播放 | 97成人在线免费视频 | 91成人观看 | 亚洲经典视频在线观看 | 国产一级淫片在线观看 | 欧美精品久久久久久久久老牛影院 | 亚洲理论电影 | 黄色一级片视频 | 欧美久久综合 | 婷婷在线资源 | 四虎影院在线观看av | www.com操| 亚洲毛片在线观看. | 久久精品女人毛片国产 | 夜夜夜夜爽 | 欧美日韩精品影院 | 国产精品手机在线观看 | 亚洲最新在线视频 | 99 久久久久 | 日韩深夜在线观看 | 久草视频免费播放 | 国产高清综合 | 91九色蝌蚪国产 | 2022中文字幕在线观看 | 亚洲免费av片 | 狠狠操狠狠操 | 四虎在线观看视频 | 免费在线观看成人小视频 | 激情五月激情综合网 | 色婷婷激婷婷情综天天 | 九九久久国产 | 欧美另类成人 | 亚洲人片在线观看 | 最新的av网站 | 国产特级毛片aaaaaa毛片 | 久久亚洲二区 | 国产黄色看片 | 午夜免费视频网站 | 欧美一级电影片 | 亚洲毛片一区二区三区 | 黄色小说视频网站 | 国产精品久久久久久久久久久久 | 顶级bbw搡bbbb搡bbbb | 国产69精品久久久久久久久久 | 国产精品福利在线观看 | av一区在线播放 | 久久精品国产免费看久久精品 | 久久久不卡影院 | 亚洲精品视频在线播放 | 色小说在线 | 超碰人人在 | 久久精品一区二区三区视频 | 国产黄色电影 | 在线观看黄网站 | 国产免费又粗又猛又爽 | 五月天激情在线 | 中文字幕精品一区二区三区电影 | 五月天亚洲激情 | 丁香六月色 | 人人草人 | 91福利小视频 | 色搞搞| 丁香综合激情 | 美女一区网站 | 久久专区 | 久久精品免费观看 | 欧美成人播放 | wwwwww色| 天天操天天操天天操天天操天天操天天操 | 日韩高清一区在线 | 在线 影视 一区 | 日韩欧美视频在线播放 | 色窝资源| 亚洲九九精品 | 伊人久久影视 | 国产无遮挡又黄又爽在线观看 | 亚洲精品资源在线 | 久久福利电影 | 91桃色免费观看 | 四虎永久免费网站 | 亚洲国产日韩精品 | 久久综合色一综合色88 | 国产精品一区二区免费看 | 久久高清国产视频 | 亚洲男人天堂2018 | 免费观看9x视频网站在线观看 | 国际精品久久久 | 日夜夜精品视频 | 看片的网址 | 在线观看亚洲电影 | 久久亚洲婷婷 | 成人毛片a | 国产精品久久三 | 夜添久久精品亚洲国产精品 | 高清av免费看 | 免费午夜网站 | 一区二区三区日韩在线 | 亚洲亚洲精品在线观看 | 欧洲成人av | 国产亚洲综合在线 | 日韩日韩日韩日韩 | 日韩欧美久久 | 亚洲黄色片 | 日韩精品久久久久久中文字幕8 | 国产国语在线 | 在线观看爱爱视频 | 国产精品露脸在线 | 欧美福利精品 | 97成人在线免费视频 | 欧美日韩不卡在线观看 | 国产精品久久久久久久久久久久午夜 | 激情偷乱人伦小说视频在线观看 | 久久黄色小说视频 | 777视频在线观看 | 色综合久久88色综合天天免费 | 天天做天天爱天天爽综合网 | 热久久国产 | 亚洲精品国产精品乱码在线观看 | 日韩精品视频网站 | 国产高清永久免费 | 久久九九国产视频 | 日韩两性视频 | 99热这里只有精品在线观看 | 不卡av在线播放 | 在线观看不卡视频 | 亚洲无吗av | 五月天久久狠狠 | 99在线视频播放 | 国产亚洲精品久久网站 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久综合久久综合九色 | 成人综合婷婷国产精品久久免费 | 色婷婷中文 | 又黄又刺激 | 欧美在线1 | 免费看黄网站在线 | 三级黄色网址 | 国产中的精品av小宝探花 | 久久婷婷五月综合色丁香 | 五月花激情| 天天干亚洲 | 国产精品免费久久久久久久久久中文 | 91av免费观看 | 亚洲精品xxx | 久久综合天天 | 日日干干| 欧美另类z0zx| 女人高潮特级毛片 | 99久久99视频只有精品 | 色偷偷888欧美精品久久久 | 国产成人三级 | 亚洲欧美日韩在线看 | 狠狠狠色狠狠色综合 | 久久婷亚洲五月一区天天躁 | 一区二区三区在线免费 | 91麻豆产精品久久久久久 | 黄网站大全 | 天天干夜夜夜操天 | 一本到视频在线观看 | 91丨精品丨蝌蚪丨白丝jk | 欧美超碰在线 | 日韩精品一区二区三区第95 | 国产成人精品综合久久久 | 久久免费精彩视频 | 一 级 黄 色 片免费看的 | 国产999视频在线观看 | 久久精品久久久久 | 国产亚洲情侣一区二区无 | 6080yy午夜一二三区久久 | 97精品一区| 亚洲成年人免费网站 | 色99中文字幕 | 国产精品久久99综合免费观看尤物 | 中文字幕之中文字幕 | 国产精品免费久久久久久 | 久久免费精品视频 | 久久国内精品 | 狠狠干电影 | 成全免费观看视频 | 免费色视频在线 | 亚洲精品五月天 | 三级黄色欧美 | 91精品国产麻豆 | 草免费视频 | 国产精品久久久久久久久久久久 | 国产高清精品在线 | 久久久久久久久毛片 | 日日摸日日碰 | 久久露脸国产精品 | 色综合亚洲精品激情狠狠 | 成年人免费在线观看网站 | 911在线 | 久爱精品在线 | 手机av在线网站 | 免费亚洲黄色 | 亚洲少妇自拍 | 久久热亚洲 | 国产精品欧美激情在线观看 | 免费看的av片 | 久久夜av | 一区二区免费不卡在线 | 99精品欧美一区二区三区 | 91视频在线国产 | av免费在线观 | 欧美日韩观看 | 久久精品99精品国产香蕉 | 久久久精品一区二区 | 高清精品在线 | 美女黄色网在线播放 | 久久婷婷开心 | 99视频99| 欧美不卡视频在线 | 综合网天天射 | 中文字幕在线观看网站 | 亚洲精选国产 | 99精品在线看 | 99视频免费播放 | 日韩欧美电影网 | 国产成人黄色网址 | 日日爽| 国产在线视频一区二区 | www久久精品| 色综合激情网 | 久久无码精品一区二区三区 | 日韩三级视频在线观看 | 四虎影视成人永久免费观看视频 | 日韩av电影免费在线观看 | 免费视频区 | 亚洲春色成人 | 最新午夜 | 人人看人人草 | 国产中文字幕免费 | 超碰97人人干 | 国产精品久久久久久爽爽爽 | 91精品入口 | 精品国产中文字幕 | 五月婷婷一区二区三区 | 97超碰人人爱 | av片在线看 | 天天操天天摸天天爽 | 在线观看网站你懂的 | 在线视频日韩 | av在线网站大全 | 亚洲精品美女久久久 | 国产亚洲激情视频在线 | 亚洲精品在线二区 | av在线一| 91久久国产综合精品女同国语 | 精品人妖videos欧美人妖 | 日韩精品一区在线播放 | 美国人与动物xxxx | 丁香花中文在线免费观看 | 一区二区三区高清在线观看 | 久久午夜电影院 | 国产精品乱码久久久久久1区2区 | 成年人视频在线免费播放 | 亚洲狠狠丁香婷婷综合久久久 | 99re6热在线精品视频 | 天海翼一区二区三区免费 | 日韩午夜av | 国产精品成人自产拍在线观看 | 久久人视频 | 在线国产片 | 成人免费在线网 | 国产精品高潮呻吟久久久久 | h视频在线看 | 天天插天天狠天天透 | 日本成人免费在线观看 | 国产成人福利在线观看 | 久久dvd | 亚洲综合色站 | 中文字幕一区二区三区四区在线视频 | 国产黄色片在线免费观看 | 五月天中文字幕 | 午夜精品久久一牛影视 | 91爱看片 | 最新日韩在线观看 | 97在线观 | 美女免费视频一区 | 亚洲国产美女久久久久 | 成人一级影视 | 日韩欧美aaa | 免费一级毛毛片 | 欧美精品久久天天躁 | 日日干夜夜骑 | 免费色视频网址 | bbb搡bbb爽爽爽 | 亚洲黄色精品 | 狠狠的日 | 久久免费视频这里只有精品 | 黄色亚洲在线 | 日韩三区在线观看 | 免费国产黄线在线观看视频 | 国产亚洲精品久久久久久无几年桃 | 欧美日韩一区二区在线观看 | 国产成人亚洲在线电影 | 国产午夜精品一区二区三区在线观看 | 久久99精品久久久久蜜臀 | 免费三级a | 久久久激情网 | 亚洲色视频 | 97激情影院| 日韩欧三级| www最近高清中文国语在线观看 | 国产精品国产三级国产不产一地 | 人九九精品 | 国产特级毛片 | 美女网站在线观看 | 日韩视频免费 | 亚洲精品视频在线看 | 最近能播放的中文字幕 | 九九热精品在线 | 日韩精品视频免费看 | 一级精品视频在线观看宜春院 | 亚洲欧洲精品一区 | 免费av高清 | 婷婷电影在线观看 | 黄色软件在线观看免费 | 国产群p| 国产色影院 | 久久国产精品偷 | 亚洲经典在线 | 欧美成人区 | 欧美日韩精品在线 | 中文字幕日韩av | www.色婷婷.com | 日韩免费一区二区三区 | 国产成人精品一区二区 | 国产福利网站 | 免费三级影片 | 精品国产成人av在线免 | 五月婷av | 97色在线观看| 久久精品国产免费看久久精品 | 91看片麻豆 | 国产精品精品久久久久久 | 国产精品第三页 | 麻豆视频免费 | 丝袜美女在线 | 热久久最新地址 | 在线观看完整版 | 麻豆一二三精选视频 | 久久激情视频 久久 | 91亚洲国产成人久久精品网站 | 亚洲婷婷伊人 | 国产精品18久久久久久久 | 九九在线国产视频 | 天天天干夜夜夜操 | 香蕉视频在线网站 | h视频日本| 91精品视频免费在线观看 | 黄色a级片在线观看 | 国产青草视频在线观看 | 成人a级网站 | 98久9在线 | 免费 | 中文字幕日韩精品有码视频 | 成人影视免费 | 久草免费看 | 五月天婷婷丁香花 | 久久午夜网 | 香蕉影院在线 | 日韩a在线 | 丁香色婷 | 国产无遮挡又黄又爽在线观看 | 日韩视频免费看 | 国产婷婷一区二区 | 最新超碰在线 | 91精品久久久久久久91蜜桃 | 日韩三级在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品一区二区久 | 精品久久久久久久久久久久久 | 日韩电影中文字幕在线 | 中文欧美字幕免费 | 亚洲精品高清一区二区三区四区 | 免费一级片视频 | 久草在线视频中文 | 亚州av一区| 色香蕉视频| 一区二区三区免费播放 | 91成熟丰满女人少妇 | 伊人丁香 | 99视频精品在线 | 99久久99久久精品国产片果冰 | 精品国产诱惑 | 久久99这里只有精品 | 久久国产精品一国产精品 | 国产一区二区三区免费在线观看 | 久久免费视频2 | 久久成人国产精品一区二区 | 日韩肉感妇bbwbbwbbw | 500部大龄熟乱视频 欧美日本三级 | 日韩欧美国产成人 | 色婷婷av一区二 | 国产一级免费观看 | 久久久99久久 | 五月激情站 | 99av国产精品欲麻豆 | 在线国产视频一区 | 日韩在线免费观看视频 | 狠狠狠狠狠操 | 日韩欧美极品 | 色欧美综合 | 一区二区三区视频在线 | 免费观看一级视频 | 欧美日本三级 | 精品国产片 | 99精品电影 | 日日夜夜综合 | 五月天丁香亚洲 | 亚洲精品在线电影 | 激情在线五月天 | 国产成人精品一区二区三区福利 | 国产福利小视频在线 | 色综合久久中文综合久久牛 | 亚洲另类xxxx | 精品视频 | 亚洲精品免费看 | av网在线观看 | 国产黄免费看 | 激情在线网址 | 丁香六月综合网 | 国产日产精品一区二区三区四区的观看方式 | 久久精品国产免费 | 草久在线观看 | 91视频国产高清 | 一区二区三区在线免费观看 | 天天摸夜夜添 | 在线看av的网址 | 久久久久网址 | 国产精品免费久久久久 | 日韩欧美在线视频一区二区 | 99免费看片| 永久免费看av | 成人理论电影 | 日本韩国精品一区二区在线观看 | 国产精品99爱 | 国产黄色一级大片 | 久久久高清一区二区三区 | 久久爱www.| 黄色av电影在线观看 | 美女久久久久久久久久 | 亚洲国产成人在线播放 | 婷婷久操 | 不卡精品视频 | 四虎在线视频免费观看 | 亚洲伊人色 | 亚洲永久国产精品 | 精品国产亚洲在线 | 日韩中文在线视频 | 久久精品国产亚洲精品2020 | 久久久久久久久久久久久久av | 国产在线污 | 热re99久久精品国产99热 | 国产99在线 | 在线观看免费黄视频 | 天天天干夜夜夜操 | 久久99久国产精品黄毛片入口 | 热久久精品在线 | 超级碰碰碰免费视频 | 91在线精品秘密一区二区 | 久久国产综合视频 | 成年人app网址 | 久久国产高清视频 | 在线网站黄 | 国产精品99久久久久久小说 | 国产一卡二卡四卡国 | 国产精品久久久久久影院 | 成年人国产视频 | 亚洲黄色影院 | av观看久久久 | 亚洲精品综合一二三区在线观看 | 91激情视频在线播放 | 免费观看一级成人毛片 | 国产精品久久久99 | 亚洲五月六月 | 免费视频资源 | 日本黄色免费观看 | 国产在线国偷精品产拍免费yy | h网站免费在线观看 | 成年人在线观看 | 国产在线观看中文字幕 | 伊人五月天.com | 最新一区二区三区 | 黄色成人av在线 | 色福利网站 | 99性视频 | 久久一区国产 | 久久久久久久久久久久久久电影 | 婷婷新五月| 久久精品4 | 国产精品免费在线视频 | 九七视频在线观看 | 最新超碰| 久久中文字幕在线视频 | 免费三级骚 | 亚洲精品玖玖玖av在线看 | 久久不卡免费视频 | 五月婷婷中文网 | 久久精品高清 | 久草在线资源观看 | 成人国产精品免费 | 久久综合狠狠综合久久狠狠色综合 | 久久久国产精品电影 | 欧美在线aa | 国产精品毛片一区二区在线看 | 国产免费观看久久黄 | 精品久久电影 | 亚洲一区日韩精品 | 久久久久久片 | 蜜臀av夜夜澡人人爽人人桃色 | 精品国产一区在线观看 | 91麻豆免费视频 | 天天色天天操综合网 | 亚洲第一区精品 | 九九免费精品视频在线观看 | 色在线视频| 在线免费av网 | 九色精品免费永久在线 | 国产精品99久久久久久武松影视 | 日韩免费成人 | 日韩免费中文字幕 | 福利电影一区二区 | 91精品福利在线 | 最新免费中文字幕 | 亚洲少妇xxxx | 亚洲精品动漫在线 | av看片在线 | 丁香五月亚洲综合在线 | 欧美久久99 | 青青河边草免费观看完整版高清 | 西西444www大胆无视频 | 伊人久操| 亚洲欧洲精品久久 | 黄色三级免费片 | 激情久久综合 | 99视频这里有精品 | 九九热1 | 超碰久热| 国产日韩亚洲 | 国产精品99爱 | 精品国产成人在线影院 | 欧美日韩首页 | 久久99免费视频 | 欧美激情视频一区 | 国产精品成人一区二区 | 久久99久久99精品免观看软件 | 欧美日韩视频观看 | 国产精品私拍 | 涩涩成人在线 | 免费三及片 | 色综合夜色一区 | 免费观看一级一片 | 精品久久久久亚洲 | 日韩亚洲国产精品 | 精品国产一区二区三区四 | 国产视频久久久 | 日免费视频 | 国产精品久久久久久久久久了 | 亚洲最大的av网站 | 久草 | 日韩精品aaa| 中文字幕在线看片 | 天天色天天射天天操 | 激情综合网婷婷 | 欧美一级性生活片 | 永久免费的av电影 | 色婷婷综合视频在线观看 | 国产aa免费视频 | 国产日产精品久久久久快鸭 | 国产精品手机看片 | 国产永久免费高清在线观看视频 | 久草在线免费看视频 | 欧美精品久久久久久久久久丰满 | 国产a精品 | 麻豆国产视频下载 | 人人爽久久涩噜噜噜网站 | 黄在线免费看 | 国产精品视频大全 | 久久精精品视频 | 久久久久久免费网 | 精品一区在线 | 国产日韩欧美在线观看视频 | 丁香婷婷激情网 | 免费久久99精品国产 | 在线观看国产成人av片 | 日韩网站在线 | 欧美精品亚洲精品 | 久久视频在线观看中文字幕 | 九九九热精品免费视频观看网站 | 日日操狠狠干 | www.69xx| 久久激情精品 | 伊在线视频| 狠狠操导航 | 91视频在线观看免费 | 麻花传媒mv免费观看 | 人人爽人人看 | 在线欧美最极品的av | 久久av一区二区三区亚洲 | 国产精品久久久久久久久久久久 | 色播五月婷婷 | 中文字幕观看视频 | 99视频精品全国免费 | 91九色网站 | 国产精品男女 | 91亚洲国产成人久久精品网站 | 99精品视频免费 | 午夜精品一区二区国产 | 久久99国产精品视频 | 国产精品日韩高清 | 天天激情综合网 | 成人av中文字幕在线观看 | 日韩在线电影一区二区 | 中文字幕日韩国产 | 亚洲天天做 | www黄色 | 国产精品18久久久久久首页狼 | 国产专区精品 | 国产韩国日本高清视频 | 午夜私人影院久久久久 | 日韩理论片在线观看 | 久久精品视频在线观看免费 | 色网站在线免费 | 日日碰狠狠添天天爽超碰97久久 | 国产精品观看视频 | 久久久久国产精品免费免费搜索 | 福利视频午夜 | 婷婷激情在线观看 | 激情综合五月天 | 国产精品综合久久久 | 一二区精品 | 国产精品99久久久久久有的能看 | 免费网站v | 午夜精品福利一区二区三区蜜桃 | 美女福利视频 | 天天操夜操视频 | 在线观看视频色 | 国产不卡网站 | 91在线看片 | 911国产 | 91免费在线看片 | 奇米7777狠狠狠琪琪视频 | 色婷婷综合久久久久 | 久久三级视频 | 丁香综合网| 婷婷久久五月天 | 欧美色图亚洲图片 | 一级成人网 | 亚洲国产成人久久综合 | 99婷婷狠狠成为人免费视频 | 婷婷天天色 | 丁香婷婷在线观看 | 五月婷婷在线观看视频 | 久久色视频 | 欧美一二区视频 | 欧美另类亚洲 | 久久天天躁夜夜躁狠狠躁2022 | wwwwww色 | 丁香激情五月 | 精品视频 | 精品国产一区二区三区在线 | 欧美xxxx性xxxxx高清 | www久久| 色999视频 | 国内精品久久久久久久影视简单 | 91精品小视频 | 久久国内精品视频 | 免费看黄在线观看 | 国产成人一区二区三区久久精品 | 日韩精品在线观看视频 | 国产高清在线精品 | 九九热只有这里有精品 | 婷婷六月在线 | 激情五月看片 | 999久久久欧美日韩黑人 | 亚洲日日日 | 国产视频日韩视频欧美视频 | 在线 成人| 亚洲热视频 | 免费看的黄色小视频 | www天天操 | 天天干天天做天天操 | 久久亚洲专区 | 免费欧美 | 99视频免费看 | 国产一区二区手机在线观看 | 日韩欧美在线综合网 | 99麻豆久久久国产精品免费 | 亚洲精品66| 国内精品免费久久影院 | 免费看久久久 | 日本99干网 | 婷婷干五月 | 成年人看片网站 | 超碰在线91 | 天天操夜夜做 | 最新成人av | 欧美日韩综合在线观看 | 久久久久免费网 | 欧美性生活大片 | 久久艹影院 | av色网站 | 四虎精品成人免费网站 | 久久久午夜精品福利内容 | 中文字幕免费观看 | 国产69精品久久久久久久久久 | 91精品对白一区国产伦 | 18女毛片| 香蕉久草| 中文字幕一区二区三区久久蜜桃 | www.超碰97.com | 欧美一级电影在线观看 | 最新久久久 | 国产一区二区精品在线 | 精品三级av | 人人看人人草 | 激情片av | 日韩高清黄色 | 日日夜操 | 日日干 天天干 | 美女视频黄免费网站 | 久久精品免费电影 | 国产91勾搭技师精品 | 狠狠色免费 | 国产手机在线播放 | 97超碰成人在线 | 啪啪免费试看 | 亚洲视频精品 | 亚洲精品午夜视频 | 在线视频日韩一区 | 久久精品爱爱视频 | 黄色国产高清 | 日韩欧美高清不卡 | 午夜精品久久一牛影视 | 日b黄色片| 一区二区在线影院 | 欧美在线视频日韩 | 欧美乱大交 | 亚洲精品在线播放视频 | 久久国产高清视频 | 中文字幕影片免费在线观看 | av黄色免费看| 丁香激情视频 | 国产精品第一页在线 | 久草在线综合 | 成人免费视频网站在线观看 | 九九九电影免费看 | 人人添人人澡 | 国产精品乱码在线 | 久草在线免费电影 | 五月婷婷丁香综合 | 中文字幕免费高清在线 | 少妇做爰k8经典 | 黄色日本片 | 成人宗合网 | 久久久久久久18 | 伊人热 | 久久久国产精品久久久 | 狠狠的操狠狠的干 | 91超国产 | 西西4444www大胆无视频 | 波多野结衣亚洲一区二区 | 日韩有码中文字幕在线 | 国产精品久久久久久久av大片 | 日韩黄色在线观看 | 国产高清不卡在线 | 久久久久久久久福利 | 精品国产1区2区3区 国产欧美精品在线观看 | 国产一区二区在线播放 | 国产精品久久久毛片 | 波多野结衣一区二区三区中文字幕 | 免费在线一区二区三区 | 成人av免费在线播放 | 香蕉久久久久久av成人 | 精品久久久精品 | 色婷婷综合视频在线观看 | 六月丁香激情综合色啪小说 | 五月天.com | 98超碰在线观看 | 成人在线免费观看视视频 | 日韩欧美一区二区三区免费观看 | 一区 二区 精品 | 久久久久福利视频 | av黄色一级片 | 国产福利午夜 | 在线观看av网 | 91麻豆精品国产91久久久久久久久 | 伊人色播| 国产无限资源在线观看 | 激情黄色av | 综合激情婷婷 | www免费看片com | 国产精品毛片一区视频播不卡 | 欧美一区二区三区激情视频 | 一区二区三区播放 | 在线小视频你懂的 | 天天摸日日摸人人看 | 精品成人a区在线观看 | 五月婷婷天堂 | 国产精品黄网站在线观看 | 97精品国自产拍在线观看 | 国产在线探花 | 久久免费的精品国产v∧ | 97电影手机版 | 久久99国产综合精品免费 | 伊人超碰在线 | 久久久午夜电影 | 日本黄色免费看 | 日韩一区二区免费在线观看 | 欧美精品一区二区蜜臀亚洲 | 国产精品毛片久久蜜 | 日韩av成人 | 99热这里是精品 | 国产手机在线观看视频 | 国产精品亚洲视频 | 青青草视频精品 | 国产麻豆精品在线观看 | 国产精品福利午夜在线观看 | 97色在线视频 | 国产91精品久久久久 | 成人四虎影院 | 天天干天天干天天干天天干天天干天天干 | 黄色小网站免费看 | 91成熟丰满女人少妇 | 日韩成人邪恶影片 | 亚洲视频电影在线 | av中文字幕在线看 | 亚洲日韩精品欧美一区二区 | 国产香蕉视频在线观看 | 久久久久久久久久久电影 | 成人av免费在线 | 天天操操操操操 | 亚洲在线视频观看 | 久久香蕉国产精品麻豆粉嫩av | 91精品免费| 波多野结衣一区二区三区中文字幕 | 不卡视频在线看 | 免费中文字幕在线观看 | 久久久久久久久久免费视频 | 一级一片免费视频 | 国产视频中文字幕 | 国产h在线播放 | www黄免费 | 国产午夜在线观看 | 亚洲黄色app | 亚洲精品国产品国语在线 | 久久久国产一区 | 亚洲精品久 | 国产精品99久久久久久宅男 | 天天操天操 | 欧美激精品 | 国产专区在线视频 | 亚洲v精品 | 91九色蝌蚪在线 | 亚洲人成在线观看 | 成人一区二区三区中文字幕 | 亚洲精品在 | 国产成人精品免高潮在线观看 | 欧美日韩一区二区三区视频 | 91亚州| 亚洲精品18p | 久久不见久久见免费影院 | 日韩亚洲在线观看 | av高清不卡 | 岛国精品一区二区 | 久久久精品综合 | 免费黄色激情视频 | 成人国产精品一区二区 | av大全在线看 | 在线观看免费高清视频大全追剧 | 五月黄色 | 欧美成人tv | 欧美精品久久人人躁人人爽 | 五月婷婷丁香网 | 国产一区视频在线播放 | 手机在线观看国产精品 | 一区二区三区四区五区在线 | 久久国产高清 | 国产一区私人高清影院 | 久久情网| 91高清不卡 | 8x成人在线 | 国产在线a免费观看 | 国产一区二区不卡视频 | 欧美性生活免费 | 日韩欧美一区二区三区免费观看 | 国产不卡高清 | 在线日韩| 正在播放 久久 | www最近高清中文国语在线观看 | 亚洲免费精品一区二区 | 国产成人免费观看 | 久久精品在线 | 亚洲精品中文字幕视频 | 国产流白浆高潮在线观看 | 人人插人人玩 | 国产视频2区 | 五月天开心| 日韩黄色免费在线观看 | 国内精品福利视频 | 欧美日韩国产伦理 | 久久99视频 | 精品电影一区 | 最新日韩视频 | 视频在线99 | 日韩高清不卡在线 | 欧美日韩在线视频一区 | 国产 在线 高清 精品 | 五月激情姐姐 | 香蕉精品在线观看 | 国产999精品久久久久久麻豆 | 日韩黄色av网站 | 亚洲午夜精品一区二区三区电影院 | 波多野结衣网址 | 亚洲国产高清在线观看视频 | 天天夜夜狠狠操 | 黄色成人毛片 | 在线免费视频 你懂得 | 最近中文字幕视频网 | 精品一区二区免费在线观看 | 婷婷在线精品视频 | 国产精品一区二区久久久 | 免费特级黄毛片 | 亚洲国产中文字幕在线视频综合 | 亚洲自拍偷拍色图 | 久久久久久久久久久久久影院 | 中文字幕不卡在线88 | 日本mv大片欧洲mv大片 | 亚洲人成影院在线 | 99久久精品久久久久久动态片 | 99热国内精品 | 在线a人v观看视频 | 四虎国产永久在线精品 | 国产精品18久久久久久首页狼 | 精品久久五月天 | 国产伦精品一区二区三区高清 | 天天操天天干天天操天天干 | 国产亚洲一级高清 |