日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

瀏覽:32日期:2022-08-18 10:05:56

(完整代碼+實(shí)訓(xùn)報(bào)告):

鏈接: https://pan.baidu.com/s/1E6BhEaHMa6Wch5yf6YAjOA 提取碼: vnrx

覺著有用就點(diǎn)個(gè)贊哦~

一,功能 管理員登錄 圖書借閱信息管理 圖書信息管理 管理員更改密碼 退出系統(tǒng)二,工具 Eclipse Version: 2018-09 (4.9.0) MySQL Workbench 8.0 CE mysql-connector-java-8.0.13.jar三、效果圖:

登錄界面:

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

主界面:

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

借閱書籍管理:

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

個(gè)人書庫管理:

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

更改密碼:

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

四、數(shù)據(jù)庫設(shè)計(jì)

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

1)圖書表

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

2)用戶表

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

兩個(gè)數(shù)據(jù)表間沒有關(guān)聯(lián):

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

五、JAVA層次分析

(1)邏輯圖

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

(2)包結(jié)構(gòu),采用MVC三層架構(gòu)組織各個(gè)模塊

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

六、主要Java代碼分析

Dao類(以BookDao為例)

package pers.cyz.dao; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List; import pers.cyz.model.Book;import pers.cyz.util.DBUtil; /** * 數(shù)據(jù)庫圖書表信息數(shù)據(jù)訪問對(duì)象類,包含增加圖書信息、刪除圖書信息 * 、更新圖書信息、查詢圖書信息、查詢借閱信息和歸還圖書 * * @author 1651200111 陳彥志 */public class BookDao { /** * 增加圖書信息 */ public void addBook(Book book) throws Exception{ // 首先拿到數(shù)據(jù)庫的連接 Connection con = DBUtil.getConnection(); String sql='insert into tb_books' // ISBN、書名、圖書價(jià)格、圖書作者、出版社 + '(ISBN, book_name, book_price, book_author, published_house,' // 分類號(hào)、借書人姓名、借書人電話、借書日期,已借天數(shù) + 'book_category, borrower_name, borrower_phone) ' + 'values(' /* * 參數(shù)用?表示,相當(dāng)于占位符,然后在對(duì)參數(shù)進(jìn)行賦值。當(dāng)真正執(zhí)行時(shí), * 這些參數(shù)會(huì)加載在SQL語句中,把SQL語句拼接完整才去執(zhí)行。這樣就會(huì)減少對(duì)數(shù)據(jù)庫的操作 */ + '?,?,?,?,?,?,?,?)'; /* * prepareStatement這個(gè)方法會(huì)將SQL語句加載到驅(qū)動(dòng)程序conn集成程序中, * 但是并不直接執(zhí)行,而是當(dāng)它調(diào)用execute()方法的時(shí)候才真正執(zhí)行; */ PreparedStatement psmt = con.prepareStatement(sql); // 先對(duì)應(yīng)SQL語句,給SQL語句傳遞參數(shù) psmt.setString(1, book.getISBN()); psmt.setString(2, book.getBookName()); psmt.setFloat(3, book.getPrice()); psmt.setString(4, book.getAuthor()); psmt.setString(5, book.getPublishHouse()); psmt.setString(6, book.getBookCategory()); if (book.getBorrowerName() == null || book.getBorrowerName() == '') { psmt.setString(7, null); } else { psmt.setString(7, book.getBorrowerName()); } if (book.getBorrowerPhone() == null || book.getBorrowerPhone() == '') { psmt.setString(8, null); } else { psmt.setString(8, book.getBorrowerPhone()); } //執(zhí)行SQL語句 psmt.execute(); } /** * 刪除圖書信息 */ public void delBook(int ID) throws SQLException{ // 首先拿到數(shù)據(jù)庫的連接 Connection con=DBUtil.getConnection(); String sql='' + 'DELETE FROM tb_books '+ // 參數(shù)用?表示,相當(dāng)于占位符 'WHERE ID = ?'; // 預(yù)編譯sql語句 PreparedStatement psmt = con.prepareStatement(sql); // 先對(duì)應(yīng)SQL語句,給SQL語句傳遞參數(shù) psmt.setInt(1, ID); // 執(zhí)行SQL語句 psmt.execute(); } /** * 更新圖書信息 */ public void changeBook(Book book) throws SQLException{ // 首先拿到數(shù)據(jù)庫的連接 Connection con=DBUtil.getConnection(); String sql='update tb_books ' + 'set ISBN = ?, book_name = ?, book_price = ?, book_author = ?' + ',published_house = ?, book_category = ?, borrower_name = ?, borrower_phone = ? ' // 參數(shù)用?表示,相當(dāng)于占位符 + 'where ID = ?'; // 預(yù)編譯sql語句 PreparedStatement psmt = con.prepareStatement(sql); // 先對(duì)應(yīng)SQL語句,給SQL語句傳遞參數(shù) psmt.setString(1, book.getISBN()); psmt.setString(2, book.getBookName()); psmt.setFloat(3, book.getPrice()); psmt.setString(4, book.getAuthor()); psmt.setString(5, book.getPublishHouse()); psmt.setString(6, book.getBookCategory()); if (book.getBorrowerName().equals('')) { psmt.setString(7, null); } else { psmt.setString(7, book.getBorrowerName()); } if (book.getBorrowerPhone().equals('')) { psmt.setString(8, null); } else { psmt.setString(8, book.getBorrowerPhone()); } psmt.setInt(9, book.getID()); // 執(zhí)行SQL語句 psmt.execute(); } /** * 查詢書籍信息 */public List<Book> query() throws Exception{ Connection con = DBUtil.getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery('select '// ISBN、書名、作者、圖書價(jià)格、出版社+ 'ID, ISBN, book_name, book_author, book_price, published_house, '// 分類號(hào)、借書人姓名、借書人電話+ 'book_category, borrower_name, borrower_phone '+ 'from tb_books'); List<Book> bookList = new ArrayList<Book>(); Book book = null; // 如果對(duì)象中有數(shù)據(jù),就會(huì)循環(huán)打印出來while (rs.next()){ book = new Book(); book.setID(rs.getInt('ID'));book.setISBN(rs.getString('ISBN'));book.setBookName(rs.getString('book_name')); book.setAuthor(rs.getString('book_author'));book.setPrice(rs.getFloat('book_price'));book.setPublishHouse(rs.getString('published_house'));book.setBookCategory(rs.getString('book_category'));book.setBorrowerName(rs.getString('borrower_name'));book.setBorrowerPhone(rs.getString('borrower_phone'));bookList.add(book); } return bookList; } /** * 查詢借閱信息 * * @return * bookList */public List<Book> borrowQuery() throws Exception{ Connection con = DBUtil.getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(''// ID、書名、借書人姓名、借書人電話+ 'SELECT ID, book_name, borrower_name, borrower_phone '+ 'FROM tb_books '+ 'WHERE borrower_name IS NOT NULL'); List<Book> bookList = new ArrayList<Book>(); Book book = null; // 如果對(duì)象中有數(shù)據(jù),就會(huì)循環(huán)打印出來while (rs.next()){ book = new Book(); book.setID(rs.getInt('ID'));book.setBookName(rs.getString('book_name')); book.setBorrowerName(rs.getString('borrower_name'));book.setBorrowerPhone(rs.getString('borrower_phone'));bookList.add(book); } return bookList; } /** * 更新圖書信息,歸還圖書 */ public void returnBook(Book book) throws SQLException{ // 首先拿到數(shù)據(jù)庫的連接 Connection con=DBUtil.getConnection(); String sql='UPDATE tb_books ' // ISBN、圖書名稱、作者、價(jià)格 + 'SET ' // 借書人姓名、借書人電話 + 'borrower_name = ?, borrower_phone = ? ' // 參數(shù)用?表示,相當(dāng)于占位符 + 'WHERE ID = ?'; // 預(yù)編譯sql語句 PreparedStatement psmt = con.prepareStatement(sql); // 先對(duì)應(yīng)SQL語句,給SQL語句傳遞參數(shù) psmt.setString(1, book.getBorrowerName()); psmt.setString(2, book.getBorrowerPhone()); psmt.setInt(3, book.getID()); // 執(zhí)行SQL語句 psmt.execute(); }}

重點(diǎn)內(nèi)容 :

JDBC進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫增刪改查

詳細(xì)參考:https://www.jb51.net/article/204374.htm

Model類(以Book為例)

package pers.cyz.model; /** * 圖書模型類,包含數(shù)據(jù)庫圖書表各對(duì)應(yīng)的字段get、set方法 * * @author 1651200111 陳彥志 */public class Book {private int ID;// ISBN號(hào)private String ISBN;// 圖書名稱private String bookName;// 圖書價(jià)格private float price;// 圖書作者private String author;// 出版社private String publishedHouse;// 圖書分類號(hào)private String bookCategory;// 借書人姓名private String borrowerName;// 借書人電話private String borrowerPhone; /** * 獲取ID */public int getID() {return ID;}/** * 設(shè)置ID */public void setID(int iD) {ID = iD;}/** * 獲取ISBN */public String getISBN() {return ISBN;}/** * 設(shè)置ISBN */public void setISBN(String iSBN) {ISBN = iSBN;}/** * 獲取圖書名稱 */public String getBookName() {return bookName;}/** * 設(shè)置圖書名稱 */public void setBookName(String bookName) {this.bookName = bookName;}/** * 獲取圖書價(jià)格 */public float getPrice() {return price;}/** * 設(shè)置圖書價(jià)格 */public void setPrice(float price) {this.price = price;}/** * 獲取圖書作者 */public String getAuthor() {return author;}/** * 設(shè)置圖書作者 */public void setAuthor(String author) {this.author = author;}/** * 獲取出版社 */public String getPublishHouse() {return publishedHouse;}/** * 設(shè)置出版社 */public void setPublishHouse(String publishedHouse) {this.publishedHouse = publishedHouse;}/** * 獲取圖書分類信息 */public String getBookCategory() {return bookCategory;}/** * 設(shè)置圖書分類信息 */public void setBookCategory(String bookCategory) {this.bookCategory = bookCategory;}/** * 獲取借書人姓名 */public String getBorrowerName() {return borrowerName;}/** * 設(shè)置借書人姓名 */public void setBorrowerName(String borrowerName) {this.borrowerName = borrowerName;}/** * 獲取借書人電話 */public String getBorrowerPhone() {return borrowerPhone;}/** * 設(shè)置借書人電話 */public void setBorrowerPhone(String borrowerPhone) {this.borrowerPhone = borrowerPhone;} }

重點(diǎn)內(nèi)容 :

主要就是數(shù)據(jù)庫對(duì)應(yīng)表中各對(duì)應(yīng)的字段get、set方法

Eclipse技巧:

Shift + alt + s -> Generate Getters and Setters -> Select all -> Generate 自動(dòng)生成set、get方法

Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

Controller類(以BookAction為例)

package pers.cyz.controller; import java.util.List; import javax.swing.JTable;import javax.swing.JTextField; import pers.cyz.dao.BookDao;import pers.cyz.model.Book; /** * 圖書信息行為控制類,包含增加圖書、刪除圖書 * 、 修改圖書、和初始化個(gè)人書庫管理窗體表格 * * @author 1651200111 陳彥志 */public class BookAction { /** * 初始化窗體表格 * @return * results */@SuppressWarnings('rawtypes')public Object[][] initializTable(String[] columnNames) throws Exception{BookDao bookDao = new BookDao();List list = bookDao.query();Object[][] results = new Object[list.size()][columnNames.length];for(int i = 0; i < list.size(); i++) {Book book = (Book)list.get(i);results[i][0] = book.getID();results[i][1] = book.getBookName();results[i][2] = book.getAuthor();results[i][3] = book.getPrice();results[i][4] = book.getISBN();results[i][5] = book.getPublishHouse();results[i][6] = book.getBookCategory();String borrowerName = book.getBorrowerName();if (borrowerName == null) {borrowerName = '';results[i][7] = borrowerName;}else {results[i][7] = borrowerName;}String borrowerPhone = book.getBorrowerPhone();if (borrowerPhone == null) {borrowerPhone = '';results[i][8] = borrowerPhone;}else {results[i][8] = borrowerPhone;}} return results;} /** * 添加圖書信息 */public void addBookInformation (JTextField textFieldISBN, JTextField textFieldName,JTextField textFieldPrice, JTextField textFieldAuthor, JTextField textFieldPublishedHouse, JTextField textFieldBookCategory, JTextField textFieldBorrowName, JTextField textFieldBorrowPhone) throws Exception { BookDao bookDao=new BookDao(); Book book=new Book(); book.setISBN(textFieldISBN.getText()); book.setBookName(textFieldName.getText()); float price = Float.parseFloat(textFieldPrice.getText()); book.setPrice(price); book.setAuthor(textFieldAuthor.getText()); book.setPublishHouse(textFieldPublishedHouse.getText()); book.setBookCategory(textFieldBookCategory.getText()); if (textFieldBorrowName.getText() == null ||textFieldBorrowName.getText() == '' ) { book.setBorrowerName(null); } else { book.setBorrowerName(textFieldBorrowName.getText()); } if (textFieldBorrowPhone.getText() == null || textFieldBorrowPhone.getText() == '') { book.setBorrowerPhone(null); } else { book.setBorrowerPhone(textFieldBorrowPhone.getText()); } //添加圖書 bookDao.addBook(book);} /** * 刪除圖書信息 */public void delBookInformation (JTable table) throws Exception {int selRow = table.getSelectedRow();int ID = Integer.parseInt(table.getValueAt(selRow, 0).toString()); BookDao bookDao=new BookDao(); Book book=new Book(); book.setID(ID); // 刪除圖書信息 bookDao.delBook(ID);}/** * 修改圖書信息 */public void changeBookInformation (JTextField textFieldISBN, JTextField textFieldName,JTextField textFieldPrice, JTextField textFieldAuthor, JTextField textFieldPublishedHouse, JTextField textFieldBookCategory, JTextField textFieldBorrowerName, JTextField textFieldBorrowerPhone, JTable table) throws Exception{ BookDao bookDao=new BookDao(); Book book=new Book(); int selRow = table.getSelectedRow();int ID = Integer.parseInt(table.getValueAt(selRow, 0).toString()); book.setID(ID); book.setISBN(textFieldISBN.getText()); book.setBookName(textFieldName.getText()); book.setAuthor(textFieldAuthor.getText()); float price = Float.parseFloat(textFieldPrice.getText()); book.setPrice(price); book.setPublishHouse(textFieldPublishedHouse.getText()); book.setBookCategory(textFieldBookCategory.getText()); book.setBorrowerName(textFieldBorrowerName.getText()); book.setBorrowerPhone(textFieldBorrowerPhone.getText()); //修改圖書 bookDao.changeBook(book); }}

util類(以DBUtil為例)

package pers.cyz.util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; /** * 連接數(shù)據(jù)庫類,包含一個(gè)對(duì)外提供獲取數(shù)據(jù)庫連接的方法 * * @author 1651200111 陳彥志 */public class DBUtil {// 數(shù)據(jù)庫連接路徑private static final String URL = 'jdbc:mysql://127.0.0.1:3306/db_books?'+ 'useUnicode = true & serverTimezone = GMT'// MySQL在高版本需要指明是否進(jìn)行SSL連接+ '& characterEncoding = utf8 & useSSL = false';private static final String NAME = 'root';private static final String PASSWORD = 'root';private static Connection conn = null;// 靜態(tài)代碼塊(將加載驅(qū)動(dòng)、連接數(shù)據(jù)庫放入靜態(tài)塊中) static{ try { // 加載驅(qū)動(dòng)程序 Class.forName('com.mysql.cj.jdbc.Driver'); // 獲取數(shù)據(jù)庫的連接 conn = DriverManager.getConnection(URL, NAME, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } // 對(duì)外提供一個(gè)方法來獲取數(shù)據(jù)庫連接 public static Connection getConnection(){ return conn; }}

util類(以BackgroundImage為例)

package pers.cyz.util; import java.awt.Container; import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel; /** * 設(shè)置背景圖片類 * * @author 1651200111 陳彥志 */public class BackgroundImage {public BackgroundImage(JFrame frame,Container container,String ImageName) {// 限定加載圖片路徑ImageIcon icon= new ImageIcon('res/' + ImageName);final JLabel labelBackground = new JLabel();ImageIcon iconBookManageSystemBackground = icon;labelBackground.setIcon(iconBookManageSystemBackground);// 設(shè)置label的大小labelBackground.setBounds(0,0,iconBookManageSystemBackground.getIconWidth(),iconBookManageSystemBackground.getIconHeight());// 將背景圖片標(biāo)簽放入桌面面板的最底層frame.getLayeredPane().add(labelBackground,new Integer(Integer.MIN_VALUE));// 將容器轉(zhuǎn)換為面板設(shè)置為透明JPanel panel = (JPanel)container;panel.setOpaque(false);}}

重點(diǎn)內(nèi)容 :

將圖片標(biāo)簽放在窗體底層面板,然后將窗體轉(zhuǎn)化為容器,將容器面板設(shè)為透明,背景圖片就設(shè)置好了,之后就可以直接在該容器中添加組件

將所有兩個(gè)或兩個(gè)以上類需要用到的代碼段全部封裝到了公共類。整體按照MVC三層架構(gòu)組織

參考文章:https://www.jb51.net/article/204374.htm

參考文章:https://www.jb51.net/article/88326.htm

到此這篇關(guān)于Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)的文章就介紹到這了,更多相關(guān)java mysql圖書管理系統(tǒng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
六月丁香综合在线视频| 日韩一区欧美二区| 综合日韩在线| 亚洲午夜视频| 激情自拍一区| 在线看片不卡| 亚洲综合国产| 玖玖精品视频| 亚洲精品系列| 欧美日韩va| 久久精品资源| 国产美女高潮在线| 色老板在线视频一区二区| 香蕉视频亚洲一级| 国户精品久久久久久久久久久不卡| 国产在线|日韩| 99国产成+人+综合+亚洲欧美| 99re国产精品| 日本不卡中文字幕| 青青青国产精品| 蜜桃久久久久| 蜜臀国产一区| 狠狠色狠狠色综合日日tαg| 六月婷婷一区| 欧美午夜三级| 国产一区日韩| 欧美va天堂| 亚洲有吗中文字幕| 久久国产日韩欧美精品| 国产精品99久久免费观看| av最新在线| av资源亚洲| 在线一区免费观看| 日韩视频一二区| 国产剧情一区| 免费一二一二在线视频| 夜久久久久久| 日韩av网站在线免费观看| 国产精品主播在线观看| 精品国产鲁一鲁****| 久久国产毛片| 亚洲精品系列| 国产精品99一区二区三区| 激情综合自拍| 日韩在线麻豆| 精品一区二区三区免费看| 国产综合色区在线观看| 久久国产成人| 免费在线欧美黄色| 日韩久久视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品久久久久久模特| 久久精品不卡| 国产精品欧美在线观看| 久久久久一区| 91精品国产自产在线丝袜啪| 久久久久亚洲| 欧美在线观看天堂一区二区三区| 日本免费一区二区三区四区| 日韩欧美中文字幕一区二区三区 | 日本韩国欧美超级黄在线观看| 蜜桃免费网站一区二区三区| 国产成人免费视频网站视频社区| 久久久人人人| 日韩精品午夜视频| 欧美13videosex性极品| 国产精品久久乐| 亚洲h色精品| 综合激情婷婷| 国产不卡av一区二区| 卡一卡二国产精品| 久久亚洲二区| 精品国产美女a久久9999| 国产精品99一区二区| 日韩国产在线不卡视频| 欧美国产中文高清| 亚洲精品成人| 福利一区和二区| 在线精品一区二区| 伊人网在线播放| 亚洲三级在线| av高清不卡| 偷拍亚洲精品| 免费观看亚洲| 日韩精品欧美精品| 伊人久久亚洲热| 国产精品久久久久久久久久齐齐| 成人精品亚洲| 国产日韩欧美一区在线| 久久99久久久精品欧美| 91精品国产成人观看| 国产欧美日韩一区二区三区四区| 国产在线成人| 亚洲香蕉久久| jizzjizz中国精品麻豆| 亚洲深夜av| 麻豆一区二区在线| 欧美日韩精品免费观看视频完整| 国产精品成人国产| 亚洲综合不卡| 国产麻豆久久| 欧美国产免费| 亚洲精品人人| 国产综合亚洲精品一区二| 欧美黄页在线免费观看| 国产色综合网| av在线日韩| 精品三级av| 奇米亚洲欧美| 亚洲一区导航| 黄色免费成人| 黄色在线网站噜噜噜| 欧美亚洲tv| 亚洲最新av| 香蕉精品视频在线观看| 国产精品一区二区三区四区在线观看| 亚洲1区在线| 亚洲精品网址| 日韩黄色大片| 精品丝袜久久| 日本亚洲视频在线| 亚洲中午字幕| 欧美成人高清| 黄色在线一区| 99久久婷婷这里只有精品| 国产成年精品| 久久av网站| 国产精品久久久网站| 欧美aa在线视频| 国产亚洲电影| 日韩福利视频一区| 国产一区二区高清| 99久久www免费| 日韩精品91| 国产免费av一区二区三区| 日韩av资源网| 日韩精选在线| 视频精品一区| 午夜精品影视国产一区在线麻豆| 午夜欧美理论片| 999精品色在线播放| www成人在线视频| 亚洲91久久| 欧美午夜精彩| 黑丝一区二区三区| 精品日韩视频| 99视频精品| 亚洲尤物在线| 免费久久99精品国产| 香蕉视频成人在线观看| 久久青草久久| 蜜臀久久99精品久久一区二区| 欧美日韩精品一本二本三本| 91精品高清| 99国产精品视频免费观看一公开| 9国产精品视频| 在线观看一区| 日本aⅴ精品一区二区三区| 日韩一区二区三区免费视频 | 丁香婷婷久久| 在线人成日本视频| 黄色亚洲精品| 中文字幕成人| 69堂免费精品视频在线播放| 日韩中文字幕一区二区高清99| 日韩精品导航| 国产精品片aa在线观看 | 亚洲精品极品| 日韩影院在线观看| 亚洲+小说+欧美+激情+另类| 最新国产精品视频| 久久永久免费| 三级精品视频| 亚洲欧美网站| 国产视频网站一区二区三区| 国产精品欧美三级在线观看| 久久精品国产999大香线蕉| 久久不见久久见免费视频7| 久久精品一区| 欧美综合另类| 中文字幕亚洲在线观看| 日韩福利视频导航| 国际精品欧美精品| 欧美激情视频一区二区三区在线播放| 亚洲精品一区三区三区在线观看| 国产一区日韩欧美| 日本不卡一二三区黄网| 国产精品1区| 婷婷成人综合| 日韩美女精品| 国产福利91精品一区二区| 国产精品普通话对白| 日韩一区二区三区精品| 久久中文欧美| 影音国产精品| 国产欧美高清| 国产精品99免费看| 欧美在线看片| 亚洲h色精品| 亚洲97av|