国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 圖書管理系統java版

圖書管理系統java版

2020-05-12 12:30zjq_1314520 JAVA教程

這篇文章主要為大家詳細介紹了java版的圖書管理系統,通過實例為大家快速掌握數據庫編程技術,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文的目的就是通過圖書管理系統掌握數據庫編程技術,能正確連接數據庫,能對數據庫中信息進行查詢、插入、刪除、修改。

內容:在數據庫中創建一張書目信息表,包括書名、作者、出版社、出版日期、書號、價格字段。設計一個GUI界面進行書目管理。在該界面上有四個選項卡,分別是查詢、插入、刪除、修改。點擊查詢選項卡,出現的界面上有書名、作者、出版社、書號四個文本框,一個按鈕和一個只讀文本區。文本框內容可以為空,輸入相應的查詢信息后(例如根據書名查詢可以僅輸入書名),點擊界面上的“查詢”按鈕,可以在界面下方的文本區中顯示出符合條件的書目詳細信息。點擊插入選項卡,出現的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。在文本框中輸入信息后,點擊“插入”按鈕,該書目信息插入數據庫表中。點擊刪除選項卡,出現的界面上有書名文本框和一個按鈕,輸入書名后點擊“刪除”按鈕,該書目信息從數據庫表中刪除。點擊修改選項卡,出現的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點擊“修改”按鈕,數據庫表中的相應書目信息被修改為新值。

源碼:

BookInfo.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
* 項目名稱:圖書管理系統
 * 版本: 1.0
 * 創建者: 張俊強
 * 創建時間:2016/5/26
 * */
package librarySystem;
 
import java.awt.*;
 
import javax.swing.*;
 
import java.awt.event.*;
import java.sql.*;
 
@SuppressWarnings("serial")
public class BookInfo extends JFrame implements ActionListener{
 //主角面上的控件
 private JLabel inputLabel;
 private JTextField inputText;
 private JButton searchBut;
 
 private JTable bookTable;
 private JScrollPane bookScroll;
 private JButton addBut;
 private JButton modifyBut;
 private JButton deleteBut;
 private JButton refreshBut;
 private BookTableModel bookTableModel;
 public static void main(String[] args) throws SQLException {
 // TODO Auto-generated method stub
 BookInfo bookInfo=new BookInfo();
 bookInfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 bookInfo.setBounds(350, 150, 600, 400);
 bookInfo.setVisible(true);
// bookInfo.importSQL();//導出數據
 bookInfo.setMinWindowLayout();//設置數據
 }
 public BookInfo() throws SQLException{
 //創建主界面上的控件
 inputLabel=new JLabel("請輸入書名:");
 inputText=new JTextField(10);
 searchBut=new JButton("查詢");
 bookTableModel=new BookTableModel();
 
 bookTable=new JTable(bookTableModel);
 bookScroll=new JScrollPane(bookTable);
 
 addBut=new JButton("添加");
 modifyBut=new JButton("修改");
 deleteBut=new JButton("刪除");
 refreshBut=new JButton("刷新");
 searchBut.addActionListener(this);
 addBut.addActionListener(this);
 refreshBut.addActionListener(this);
 modifyBut.addActionListener(this);
 deleteBut.addActionListener(this);
 
 }
 
 void setMinWindowLayout(){
 //主界面布局
 Container con1=new Container();
 con1.setLayout(new FlowLayout());
 con1.add(inputLabel);
 con1.add(inputText);
 con1.add(searchBut);
 con1.add(refreshBut);
 Container con2=new Container();
 con2.setLayout(new FlowLayout());
 con2.add(addBut);
 con2.add(modifyBut);
 con2.add(deleteBut);
 this.setLayout(new BorderLayout());
 this.add(con1,BorderLayout.NORTH);
 this.add(bookScroll,BorderLayout.CENTER);
 this.add(con2,BorderLayout.SOUTH);
 this.validate();
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource()==searchBut){
 if(!this.inputText.getText().equals("")){
 String bookName=this.inputText.getText();
 String sql="SELECT * FROM book_info WHERE book_name ='"+bookName+"'";
 try {
 bookTableModel=new BookTableModel(sql);
 bookTable.setModel(bookTableModel);
 } catch (SQLException e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
  
 }else{
 JOptionPane.showMessageDialog(this,"輸入不能為空", "提示",JOptionPane.PLAIN_MESSAGE);
 }
 }
 else if(e.getSource()==addBut){
 @SuppressWarnings("unused")
 AddBookDialog addWin=new AddBookDialog(this,"添加圖書",true);
 this.refreshTable();
 }
 else if(e.getSource()==refreshBut){
 this.refreshTable();
 }
 else if(e.getSource()==deleteBut){
 int rowNum=bookTable.getSelectedRow();
 if(rowNum<0||rowNum>bookTable.getRowCount()){
 JOptionPane.showMessageDialog(this,"未選中", "提示",JOptionPane.PLAIN_MESSAGE);
 }
 else{
 //System.out.print(bookName);
 int n = JOptionPane.showConfirmDialog(null, "確認刪除嗎?", "確認刪除框", JOptionPane.YES_NO_OPTION);
 if (n == JOptionPane.YES_OPTION) {
  String bookNum=(String) bookTable.getValueAt(rowNum, 0);
  String sql="DELETE FROM book_info WHERE book_num= '"+bookNum+"'";
  bookTableModel.deleteBook(sql);
  this.refreshTable();
  JOptionPane.showMessageDialog(this,"刪除成功", "提示",JOptionPane.PLAIN_MESSAGE);
 } else if (n == JOptionPane.NO_OPTION) {
  return;
 }
 }
 }
 else if(e.getSource()==modifyBut){
 bookTable.setModel(bookTableModel);
 int rowNum=bookTable.getSelectedRow();
 if(rowNum<0||rowNum>bookTable.getRowCount()){
 JOptionPane.showMessageDialog(this,"未選中", "提示",JOptionPane.PLAIN_MESSAGE);
 }
 else{
 @SuppressWarnings("unused")
 ModifyBook modifyWin=new ModifyBook(this,"修改信息",true,bookTableModel,rowNum);
 this.refreshTable();
 }
 }
 
 }
 public void refreshTable(){
 BookTableModel searchBook;
 try {
 searchBook = new BookTableModel("SELECT * FROM book_info");
 bookTable.setModel(searchBook);
 bookTableModel=searchBook;
 } catch (SQLException e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 }
}

BookTableModel.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package librarySystem;
import java.sql.*;
import java.util.*;
 
/*
 * 圖書表模型
 * */
import javax.swing.table.*;
@SuppressWarnings("serial")
public class BookTableModel extends AbstractTableModel{
 //表的元素
 private Vector<Vector<String>> rowData;
 private Vector<String> colName;
 // 數據庫
 private PreparedStatement stmt;
 private ResultSet result;
 public BookTableModel(String sql) throws SQLException{
 this.initData(sql);
 }
 public BookTableModel() throws SQLException{
 this.initData("SELECT * FROM book_info");
 }
 public void initData(String sql) throws SQLException{
 setRowData(new Vector<Vector<String>>());
 setColName(new Vector<String>());
 getColName().add("書號");
 getColName().add("書名");
 getColName().add("作者");
 getColName().add("出版社");
 getColName().add("出版時間");
 getColName().add("價格");
 /*
 * 數據庫的導入
 * */
 try {
 Class.forName("com.mysql.jdbc.Driver");
 } catch (ClassNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 String url= "jdbc:mysql://localhost:3306/device";
 String user="root";
 String password="zjq1314520";
 Connection con=DriverManager.getConnection(url,user,password);
 stmt = con.prepareStatement(sql);
 result=stmt.executeQuery();
 importSQL();
 }
 void importSQL() throws SQLException{
 // TODO Auto-generated method stub
 @SuppressWarnings("unused")
 boolean signNull=true;
 while(result.next()){
 Vector<String> item=new Vector<String>();
 for(int i=1;i<7;i++){
 item.add(result.getString(i));
 }
 getRowData().add(item);
 signNull=false;
 }
 result.close();
 }
 @Override
 public int getColumnCount() {//得到列數
 // TODO Auto-generated method stub
 return this.colName.size();
 }
 
 @Override
 public int getRowCount() {//得到行數
 // TODO Auto-generated method stub
 return this.rowData.size();
 }
 
 @Override
 public Object getValueAt(int row, int col) {//得到某行某列的數據
 // TODO Auto-generated method stub
 return (this.rowData.get(row)).get(col);
 }
 
 @Override
 public String getColumnName(int column) {
 // TODO Auto-generated method stub
 return this.colName.get(column);
 }
 
 public Vector<Vector<String>> getRowData() {
 return rowData;
 }
 public void setRowData(Vector<Vector<String>> rowData) {
 this.rowData = rowData;
 }
 public Vector<String> getColName() {
 return colName;
 }
 public void setColName(Vector<String> colName) {
 this.colName = colName;
 }
 public void addBook(String sql){
 try {
 stmt.executeUpdate(sql);
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
// initData("SELECT * FROM book_info");
 }
 public void deleteBook(String sql){
 try {
 stmt.executeUpdate(sql);
 } catch (SQLException e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
 }
 }
}

AddBookDialog.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package librarySystem;
 
import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
 
import javax.swing.*;
 
@SuppressWarnings("serial")
public class AddBookDialog extends JDialog implements ActionListener{
 private JLabel bookNumLabel;
 private JLabel bookNameLabel;
 private JLabel bookWriterLabel;
 private JLabel bookPublishLabel;
 private JLabel bookPriceLabel;
 private JLabel bookTimeLabel;
 private JTextField bookNumText;
 private JTextField bookNameText;
 private JTextField bookWriterText;
 private JTextField bookPublishText;
 private JTextField bookPriceText;
 private JTextField bookTimeText;
 
 private JButton submitBut;
 private JButton cancelBut;
 public AddBookDialog(Frame owner,String title,boolean model){
 //父窗口,窗口名,是否是模式窗口
 super(owner,title,model);
 bookNumLabel=new JLabel("書 號:");
 bookNameLabel=new JLabel("書 名:");
 bookWriterLabel=new JLabel("作 者:");
 bookPublishLabel=new JLabel("出版社:");
 bookPriceLabel=new JLabel("價 格:");
 bookTimeLabel=new JLabel("出版時間:");
 
 bookNumText=new JTextField(10);
 bookNameText=new JTextField(10);
 bookWriterText=new JTextField(10);
 bookPublishText=new JTextField(10);
 bookPriceText=new JTextField(10);
 bookTimeText=new JTextField(9);
 
 submitBut=new JButton("確認");
 cancelBut=new JButton("取消");
 submitBut.addActionListener(this);
 cancelBut.addActionListener(this);
 this.setBounds(350,150,400,260);
 this.setResizable(false);
 this.setLayout(new BorderLayout());
 initLayout();
 }
 public void initLayout(){
 Container[] con1=new Container[6];
 for(int i=0;i<6;i++) con1[i]=new Container();
 con1[0].setLayout(new FlowLayout());
 con1[0].add(bookNumLabel);
 con1[0].add(bookNumText);
 
 con1[1].setLayout(new FlowLayout());
 con1[1].add(bookNameLabel);
 con1[1].add(bookNameText);
 
 con1[2].setLayout(new FlowLayout());
 con1[2].add(bookWriterLabel);
 con1[2].add(bookWriterText);
 
 con1[3].setLayout(new FlowLayout());
 con1[3].add(bookPublishLabel);
 con1[3].add(bookPublishText);
 
 con1[4].setLayout(new FlowLayout());
 con1[4].add(bookPriceLabel);
 con1[4].add(bookPriceText);
 
 con1[5].setLayout(new FlowLayout());
 con1[5].add(bookTimeLabel);
 con1[5].add(bookTimeText);
 
 Container con2=new Container();
 con2.setLayout(new BorderLayout());
 con2.add(con1[0],BorderLayout.NORTH);
 con2.add(con1[1],BorderLayout.CENTER);
 con2.add(con1[2],BorderLayout.SOUTH);
 
 Container con3=new Container();
 con3.setLayout(new BorderLayout());
 con3.add(con1[3],BorderLayout.NORTH);
 con3.add(con1[4],BorderLayout.CENTER);
 con3.add(con1[5],BorderLayout.SOUTH);
 
 Container con4=new Container();
 con4.setLayout(new FlowLayout());
 con4.add(submitBut);
 con4.add(cancelBut);
 Container con5=new Container();
 con5.setLayout(new BorderLayout());
 con5.add(con2,BorderLayout.NORTH);
 con5.add(con3,BorderLayout.CENTER);
 con5.add(con4,BorderLayout.SOUTH);
 
 this.add(con5,BorderLayout.CENTER);
 this.validate();
 this.setVisible(true);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource()==submitBut){
 if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
  bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
  bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
 //System.out.println("輸入失敗");
 JOptionPane.showMessageDialog(this,"輸入不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
 }
 else{
 //System.out.println("輸入成功");
 String sql="insert into "
  + "book_info(book_num,book_name,book_writer,publish_house,book_price,publish_time)"
  + "values('"+bookNumText.getText()+"','"+bookNameText.getText()+"','"+bookWriterText.getText()+"','"+bookPublishText.getText()+"','"+bookPriceText.getText()+"','"+bookTimeText.getText()+"')";
 try {
  BookTableModel book=new BookTableModel();
  book.addBook(sql);
 } catch (SQLException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
 }
 JOptionPane.showMessageDialog(this,"添加成功", "提示",JOptionPane.PLAIN_MESSAGE);
 this.setVisible(false);
 }
 }
 if(e.getSource()==cancelBut){
 this.setVisible(false);
 }
 }
}

ModifyBook.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package librarySystem;
 
import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
import javax.swing.*;
 
@SuppressWarnings("serial")
public class ModifyBook extends JDialog implements ActionListener{
 private JLabel bookNumLabel;
 private JLabel bookNameLabel;
 private JLabel bookWriterLabel;
 private JLabel bookPublishLabel;
 private JLabel bookPriceLabel;
 private JLabel bookTimeLabel;
 private JTextField bookNumText;
 private JTextField bookNameText;
 private JTextField bookWriterText;
 private JTextField bookPublishText;
 private JTextField bookPriceText;
 private JTextField bookTimeText;
 private JButton submitBut;
 private JButton cancelBut;
 private BookTableModel bookModel;
 private int rowNum;
 public ModifyBook(Frame owner,String title,boolean type,BookTableModel model,int row){
 super(owner,title,type);
 bookModel=model;
 rowNum=row;
 bookNumLabel=new JLabel("書 號:");
 bookNameLabel=new JLabel("書 名:");
 bookWriterLabel=new JLabel("作 者:");
 bookPublishLabel=new JLabel("出版社:");
 bookPriceLabel=new JLabel("價 格:");
 bookTimeLabel=new JLabel("出版時間:");
 
 bookNumText=new JTextField(10);
 bookNameText=new JTextField(10);
 bookWriterText=new JTextField(10);
 bookPublishText=new JTextField(10);
 bookPriceText=new JTextField(10);
 bookTimeText=new JTextField(9);
 
 submitBut=new JButton("確認修改");
 cancelBut=new JButton("取消");
 submitBut.addActionListener(this);
 cancelBut.addActionListener(this);
 this.setBounds(350,150,400,260);
 this.setResizable(false);
 this.setLayout(new BorderLayout());
 this.setValue();
 this.initLayout();
 
 }
 public void initLayout(){
 Container[] con1=new Container[6];
 for(int i=0;i<6;i++) con1[i]=new Container();
 con1[0].setLayout(new FlowLayout());
 con1[0].add(bookNumLabel);
 con1[0].add(bookNumText);
 
 con1[1].setLayout(new FlowLayout());
 con1[1].add(bookNameLabel);
 con1[1].add(bookNameText);
 
 con1[2].setLayout(new FlowLayout());
 con1[2].add(bookWriterLabel);
 con1[2].add(bookWriterText);
 
 con1[3].setLayout(new FlowLayout());
 con1[3].add(bookPublishLabel);
 con1[3].add(bookPublishText);
 
 con1[4].setLayout(new FlowLayout());
 con1[4].add(bookPriceLabel);
 con1[4].add(bookPriceText);
 
 con1[5].setLayout(new FlowLayout());
 con1[5].add(bookTimeLabel);
 con1[5].add(bookTimeText);
 
 Container con2=new Container();
 con2.setLayout(new BorderLayout());
 con2.add(con1[0],BorderLayout.NORTH);
 con2.add(con1[1],BorderLayout.CENTER);
 con2.add(con1[2],BorderLayout.SOUTH);
 
 Container con3=new Container();
 con3.setLayout(new BorderLayout());
 con3.add(con1[3],BorderLayout.NORTH);
 con3.add(con1[4],BorderLayout.CENTER);
 con3.add(con1[5],BorderLayout.SOUTH);
 
 Container con4=new Container();
 con4.setLayout(new FlowLayout());
 con4.add(submitBut);
 con4.add(cancelBut);
 Container con5=new Container();
 con5.setLayout(new BorderLayout());
 con5.add(con2,BorderLayout.NORTH);
 con5.add(con3,BorderLayout.CENTER);
 con5.add(con4,BorderLayout.SOUTH);
 this.add(con5,BorderLayout.CENTER);
 this.validate();
 this.setVisible(true);
 }
 public void setValue(){
 this.bookNumText.setText((String) bookModel.getValueAt(rowNum, 0));
 this.bookNumText.setEditable(false);
 
 this.bookNameText.setText((String) bookModel.getValueAt(rowNum, 1));
 this.bookWriterText.setText((String) bookModel.getValueAt(rowNum, 2));
 this.bookPublishText.setText((String) bookModel.getValueAt(rowNum, 3));
 this.bookTimeText.setText((String) bookModel.getValueAt(rowNum, 4));
 this.bookPriceText.setText((String) bookModel.getValueAt(rowNum, 5));
 this.validate();
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // System.out.println(bookPriceText.getText());
 // TODO Auto-generated method stub
 if(e.getSource()==submitBut){
 if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
  bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
  bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
 //System.out.println("輸入失敗");
 JOptionPane.showMessageDialog(this,"修改不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
 }
 else{
 int n = JOptionPane.showConfirmDialog(null, "確認修改嗎?", "確認修改框", JOptionPane.YES_NO_OPTION);
 if (n == JOptionPane.YES_OPTION) {
  String sql="UPDATE book_info SET book_name ='"+bookNameText.getText()+"', book_writer= '"+bookWriterText.getText()+"',publish_house='"+bookPublishText.getText()+"',book_price='"+bookPriceText.getText()+"',publish_time='"+bookTimeText.getText()+"' WHERE book_num = '"+bookNumText.getText()+"' ";
  try {
  BookTableModel book=new BookTableModel();
  book.addBook(sql);
  } catch (SQLException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
  }
  JOptionPane.showMessageDialog(this,"修改成功", "提示",JOptionPane.PLAIN_MESSAGE);
  this.setVisible(false);
 } else if (n == JOptionPane.NO_OPTION) {
  return;
 }
 }
 }
 if(e.getSource()==cancelBut){
 this.setVisible(false);
 }
 }
}

程序運行結果:主界面:

圖書管理系統java版

查詢界面:

圖書管理系統java版

添加圖書界面:

圖書管理系統java版

圖書管理系統java版

修改界面:

圖書管理系統java版

圖書管理系統java版

刪除操作:

圖書管理系統java版

圖書管理系統java版

數據庫界面:

圖書管理系統java版

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久情趣视频 | 毛片网站大全 | 一区二区三区高清在线 | 免费观看黄色av网站 | 久久久久九九九九九 | 亚洲最新无码中文字幕久久 | 天天干夜夜拍 | 久久久久久91亚洲精品中文字幕 | 日韩素人一区二区三区 | 免费观看av电影 | 国产精品久久久久国产a级 成人a在线视频 | 久久精品中文字幕大胸 | 一区二区三区免费 | 一区免费视频 | av在线中文 | 99精品视频在线 | 日韩在线电影 | 久久久婷| 国产免费久久 | 在线观看欧美 | 久久色av| 日韩在线播放一区 | 免费精品 | 亚洲永久免费 | 日韩国产一区二区 | 亚洲免费观看在线视频 | 中文日韩在线 | 欧美在线观看黄 | 日韩免费| 激情亚洲 | 在线看黄色毛片 | 国产精品久久久久久吹潮 | 国产三级 | 日韩成人免费 | av中文字幕在线播放 | 亚洲午夜一区 | 久久久久中文字幕 | 天堂在线视频 | a久久| 午夜激情在线免费观看 | 四虎影视永久免费观看 |