欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Java Swing+MySQL學生選課系統(tǒng):JDBC事務與數(shù)據(jù)庫設計實戰(zhàn)

Java Swing+MySQL學生選課系統(tǒng):JDBC事務與數(shù)據(jù)庫設計實戰(zhàn) 簡介基于Java Swing與MySQL實現(xiàn)的學生選課管理系統(tǒng)課程設計資源面向Java初學與課程設計人群提供一套可直接運行、復用的完整項目方案。系統(tǒng)囊括系統(tǒng)管理、數(shù)據(jù)管理、數(shù)據(jù)查詢?nèi)蠛诵哪K覆蓋用戶登錄與密碼設置、學生/課程/選課信息的新增刪除修改、以及多維查詢等典型功能運行于Eclipse/IDEA、JDK8、MySQL5.7以上環(huán)境功能鏈路完整適合理解Swing界面開發(fā)與MySQL數(shù)據(jù)庫交互。資源包共3個文件總大小3.34MB包含項目源碼壓縮包、數(shù)據(jù)庫初始化SQL腳本及一份課程設計實訓報告docx按“源碼—數(shù)據(jù)—報告”組織結構清晰便于對照使用。已有268人學習下載讀者可借助完整源碼快速部署調(diào)試參考報告梳理論文框架與設計思路高效完成課程作業(yè)或畢業(yè)設計。1. 學生選課管理系統(tǒng)Java Swing 與 MySQL 的典型落地組合如果你在學?;蚺嘤枡C構待過大概率見過這種場景教務老師還在用 Excel 維護幾百人的選課名單學生要發(fā)郵件或者跑到辦公室才能改選一次課。這套基于 Java Swing MySQL 的學生選課管理系統(tǒng)目標就是把“課程信息維護、學生選課、退課、成績錄入、統(tǒng)計查詢”這幾件高頻事收斂到一個桌面程序里。它是 Java 課程設計里最經(jīng)典的題目之一難點不在業(yè)務邏輯而在你把 Swing 界面事件、JDBC 事務、數(shù)據(jù)庫表關系這三樣東西縫在一起時是否足夠穩(wěn)。這套方案適合兩類人一是準備做畢業(yè)設計或課程設計的學生需要一份能跑通、能答辯、有實訓報告支撐的完整項目二是剛學完 Java SE想找一個“不依賴 Web 容器、雙擊就能跑”的桌面項目來鍛煉 JDBC 和 GUI 編程的開發(fā)者。它的價值在于選課系統(tǒng)天然包含一對多、多對多的表關系你能在一百來行 SQL 里把外鍵約束、級聯(lián)刪除、事務回滾這些概念全部實戰(zhàn)一遍比刷十道練習題都管用。我對這套組合的評價是技術棧雖然不算新但它穩(wěn)定、可控、容易調(diào)試作為一個練手和交付物都合適的項目依然是當下課程設計里最穩(wěn)妥的選擇之一。2. 技術選型為什么是 Swing MySQL桌面端 JDBC 項目的經(jīng)典組合2.1 Swing 和 JavaFX 的選擇穩(wěn)定優(yōu)先于新潮很多人在做桌面選課系統(tǒng)時會糾結用 Swing 還是 JavaFX我的經(jīng)驗是除非你有明確的動畫、圖表或富媒體需求不然 Swing 依然是課程設計里更安全的選擇。原因有三點第一Swing 是 JDK 自帶的 GUI 工具包不需要額外引入運行時和構建插件放在普通 JDK 環(huán)境里就能編譯運行第二Swing 的資料沉淀極多遇到 “JTable 刷新不生效”“JFrame 關閉后進程不退出”這類問題隨便搜一下就有現(xiàn)成答案第三Swing 的組件模型足夠完成選課系統(tǒng)里所有的需求包括表格展示課程列表、下拉框選擇院系、文本域錄入反饋意見。JavaFX 雖然界面更現(xiàn)代但它需要獨立 SDK、可能在 IDEA 里需要額外配置 VM 參數(shù)這對一個以“快速跑通、順利答辯”為目標的實訓項目來說是多余的復雜度。你交的是“學生選課管理系統(tǒng)”不是“交互動效展示平臺”Swing 的平庸恰恰是它的優(yōu)勢。我現(xiàn)在做這類桌面工具時一般先用 Swing 做原型如果后續(xù)確實需要更精致的界面再考慮遷移到 JavaFX 或者干脆改成 Web 版但那是后話了。2.2 MySQL 5.7 還是 8.0先看你手頭的環(huán)境數(shù)據(jù)庫方面這個項目用 MySQL 是標配。你需要先做一個決定用 MySQL 5.7 還是 8.0。我建議你在自己機器上裝哪個方便用哪個但要注意驅(qū)動版本。如果你用 8.0JDBC 驅(qū)動類名是com.mysql.cj.jdbc.DriverURL 需要加serverTimezoneAsia/Shanghai否則連數(shù)據(jù)庫時會報時區(qū)錯誤。如果你用 5.7驅(qū)動類名是com.mysql.jdbc.DriverURL 則不需要帶時區(qū)參數(shù)但兩者在代碼里混用會導致 ClassNotFoundException 或者奇怪的通信異常。另一個常見坑是 MySQL 8.0 的加密規(guī)則。如果你在連接時遇到 “Public Key Retrieval is not allowed” 的錯誤在 JDBC URL 后追加allowPublicKeyRetrievaltrueuseSSLfalse就能解決。這個參數(shù)不寫在驅(qū)動代碼里而是寫在連接字符串里。下面是一個兼容 MySQL 5.7 和 8.0 的 JDBC 配置模板我一般會寫在db.properties文件里方便以后修改jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/course_select?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue jdbc.usernameroot jdbc.password123456這段配置里characterEncodingutf8是為了避免中文亂碼serverTimezoneAsia/Shanghai只對 MySQL 8.0 有效useSSLfalse是因為本地開發(fā)不需要加密連接能省去證書配置的麻煩。注意allowPublicKeyRetrievaltrue這個參數(shù)如果你用的驅(qū)動是 8.0 且 MySQL 用戶秘鑰是 caching_sha2_password不加這個會在第一次連接時報錯。2.3 IDEA 里的項目結構一個 Module 就夠別搞多 Module這個項目我建議用 IDEA 新建一個普通的 Java 項目不要用 Maven也不要用 Gradle除非你后續(xù)打算把項目轉成 Web 服務。原因還是在“可控”兩個字上不引入構建工具你只需要把 mysql-connector.jar 導入到項目的 lib 目錄然后在 Project Structure 里把它添加為 Library 即可。如果用 Maven雖然依賴管理方便但很多新手會在坐標版本、私服配置上浪費時間這些都不是選課系統(tǒng)本身的關注點。IDEA 里建議的項目結構是course-selection-system/ ├── src/ │ ├── com.course.ui/ # Swing 界面類 │ │ ├── LoginFrame.java │ │ ├── StudentFrame.java │ │ └── AdminFrame.java │ ├── com.course.dao/ # JDBC 數(shù)據(jù)訪問層 │ │ ├── StudentDao.java │ │ ├── CourseDao.java │ │ └── SelectionDao.java │ ├── com.course.model/ # 實體類 │ │ ├── Student.java │ │ ├── Course.java │ │ └── Selection.java │ ├── com.course.util/ # 工具類 │ │ ├── DBUtil.java │ │ └── TableModelUtil.java │ └── com.course.MainApp.java ├── lib/ │ └── mysql-connector-java-8.0.30.jar └── sql/ └── init.sql這里我把MainApp.java放到com.course包下作為程序入口只負責調(diào)用LoginFrame。不要把 main 方法寫在某個界面類里否則后續(xù)做單元測試和代碼審查都會別扭。另外我建議把init.sql放在項目根目錄下的sql文件夾中這樣實訓報告里可以直接引用建表語句答辯時也方便演示。3. 數(shù)據(jù)庫設計與初始化從三張表到兩個核心事務3.1 表結構設計學生表、課程表、選課表再多一張就是冗余選課系統(tǒng)的核心數(shù)據(jù)模型是三張表學生表student、課程表course、選課關系表selection。其中選課表是連接前兩張表的多對多關系表它只存student_id和course_id兩個外鍵以及選課時間、成績這兩個業(yè)務字段。為什么要單獨拆出來而不是在學生表里加一個course_ids字段因為關系型數(shù)據(jù)庫的設計原則是“一行只表達一個事實”你在學生表里塞一個逗號分隔的課程 ID 列表后續(xù)統(tǒng)計“每個課程選了多少人”的時候就只能靠字符串分割既慢又容易出錯這種反模式在面試里也是典型的扣分項。下面是初始化 SQL我在課程設計項目里慣用的寫法是這樣。注意我刻意用了ENGINEInnoDB和CHARSETutf8mb4并打開了外鍵約束-- 學生表 CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 學號主鍵, student_no VARCHAR(20) NOT NULL UNIQUE COMMENT 學號唯一索引, name VARCHAR(30) NOT NULL COMMENT 學生姓名, password VARCHAR(64) DEFAULT 123456 COMMENT 登錄密碼默認123456, major VARCHAR(50) COMMENT 專業(yè), class_name VARCHAR(50) COMMENT 班級, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT學生表; -- 課程表 CREATE TABLE course ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 課程主鍵, course_no VARCHAR(20) NOT NULL UNIQUE COMMENT 課程編號, name VARCHAR(50) NOT NULL COMMENT 課程名稱, teacher VARCHAR(30) COMMENT 授課教師, credit DECIMAL(3,1) DEFAULT 2.0 COMMENT 學分, max_students INT DEFAULT 50 COMMENT 選課人數(shù)上限, selected_count INT DEFAULT 0 COMMENT 已選人數(shù)可在應用層維護 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT課程表; -- 選課關系表 CREATE TABLE selection ( id INT PRIMARY KEY AUTO_INCREMENT, student_id INT NOT NULL, course_id INT NOT NULL, select_time DATETIME DEFAULT CURRENT_TIMESTAMP, score DECIMAL(5,2) COMMENT 成績教務錄入, UNIQUE KEY uk_student_course (student_id, course_id), CONSTRAINT fk_sel_student FOREIGN KEY (student_id) REFERENCES student(id) ON DELETE CASCADE, CONSTRAINT fk_sel_course FOREIGN KEY (course_id) REFERENCES course(id) ON DELETE CASCADE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT選課關系表;這里說明幾個設計決策第一student_no用UNIQUE而不是直接做主鍵是為了讓主鍵id在后續(xù)關聯(lián)時保持穩(wěn)定學號即使被教務處調(diào)整也不影響已有選課關系第二course表里的selected_count字段是冗余設計主要是為了方便在課程列表界面直接展示已選人數(shù)不用每展示一行課程就COUNT(*)一次這個字段可以通過事務保證一致第三selection表上的UNIQUE KEY uk_student_course是防重復選課的關鍵應用層就算代碼有并發(fā)問題數(shù)據(jù)庫這一層也會攔住重復插入。3.2 初始化數(shù)據(jù)與事務演示把實訓報告的案例測出來建表之后建議你順手插入幾條演示數(shù)據(jù)方便后面測試登錄和選課功能。這個數(shù)據(jù)集不要太大一兩百個學生、二三十門課足夠。插入時注意學生密碼我用的是123456真實環(huán)境里應該加密存儲但作為課程設計演示明文密碼在實訓報告里更容易講清楚認證流程。下面這段 SQL 用于插入 5 個學生和 5 門課程并且預置一條選課記錄用來驗證登錄后的界面能正確顯示“我已選的課程”INSERT INTO student (student_no, name, major, class_name) VALUES (2023001, 張三, 計算機科學與技術, 計科2301), (2023002, 李四, 軟件工程, 軟工2302), (2023003, 王五, 數(shù)據(jù)科學, 數(shù)據(jù)2301), (2023004, 趙六, 計算機科學與技術, 計科2302), (2023005, 錢七, 網(wǎng)絡工程, 網(wǎng)工2301); INSERT INTO course (course_no, name, teacher, credit, max_students, selected_count) VALUES (C001, Java程序設計, 陳老師, 3.0, 50, 0), (C002, 數(shù)據(jù)庫原理, 劉老師, 3.5, 40, 1), (C003, 操作系統(tǒng), 李老師, 3.0, 45, 0), (C004, 計算機網(wǎng)絡, 王老師, 2.5, 35, 0), (C005, 軟件工程, 趙老師, 2.0, 60, 0); -- 預置一條選課記錄張三選了數(shù)據(jù)庫原理 INSERT INTO selection (student_id, course_id) VALUES (1, 2);注意這里選課記錄插入后course表里C002的selected_count也應該同步更新為 1。這個同步動作在真實代碼里應該在同一個事務里完成。SQL 文件里如果你手動跑這兩條語句需要記得把selected_count一起UPDATE掉否則界面上的已選人數(shù)不準確很容易在演示的時候被老師挑出毛病。4. 用 JDBC 寫一個永不串號的學生端選課邏輯從連接池到事務4.1 數(shù)據(jù)庫連接工具類別把連接參數(shù)散落在各處寫 Swing 界面時最容易出現(xiàn)的情況是每個按鈕事件里都直接寫DriverManager.getConnection(url, user, password)結果換一臺電腦跑項目時要全局搜索替換數(shù)據(jù)庫密碼。這種做法在課程設計里不算致命但會讓你的代碼在實訓報告里顯得很業(yè)余。我建議你寫一個DBUtil工具類把連接管理工作收口package com.course.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL jdbc:mysql://localhost:3306/course_select?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue; private static final String USER root; private static final String PASSWORD 123456; static { try { Class.forName(com.mysql.cj.jdbc.Driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } public static void close(Connection conn, java.sql.Statement stmt, java.sql.ResultSet rs) { try { if (rs ! null) rs.close(); } catch (SQLException ignored) {} try { if (stmt ! null) stmt.close(); } catch (SQLException ignored) {} try { if (conn ! null) conn.close(); } catch (SQLException ignored) {} } }這個工具類里Class.forName是在注冊 JDBC 驅(qū)動MySQL 8.0 的驅(qū)動在 SPI 機制下可以省略這行但寫上它能讓驅(qū)動加載過程更明確排查問題時也少一個變量。close方法里我把ResultSet、Statement、Connection的關系理清楚關閉順序必須從里到外否則你可能會在日志里看到連接泄漏。這里我沒有引入連接池因為 Swing 桌面應用是單用戶模式并發(fā)量極低每次操作新建連接、用完即關就夠了。如果后續(xù)你把它改造成多用戶并發(fā)訪問再考慮換成 HikariCP但現(xiàn)在不要過度設計。4.2 核心選課事務先查容量再插入最后更新計數(shù)下面是選課功能里最關鍵的一段代碼。我把它寫在SelectionDao.selectCourse(int studentId, int courseId)方法里這個方法要承擔兩個職責一是檢查課程是否已滿、學生是否已選過二是完成插入選課記錄并更新課程已選人數(shù)。整個過程必須在一個事務里執(zhí)行否則在“檢查容量”和“插入記錄”之間如果其他線程也執(zhí)行了同樣操作就可能導致超選。package com.course.dao; import com.course.util.DBUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SelectionDao { public boolean selectCourse(int studentId, int courseId) { String checkCourseSql SELECT max_students, selected_count FROM course WHERE id ? FOR UPDATE; String checkSelectedSql SELECT id FROM selection WHERE student_id ? AND course_id ?; String insertSql INSERT INTO selection (student_id, course_id) VALUES (?, ?); String updateCountSql UPDATE course SET selected_count selected_count 1 WHERE id ?; Connection conn null; PreparedStatement checkCourseStmt null; PreparedStatement checkSelectedStmt null; PreparedStatement insertStmt null; PreparedStatement updateCountStmt null; ResultSet rs null; try { conn DBUtil.getConnection(); // 開啟事務關閉自動提交 conn.setAutoCommit(false); // 第一步鎖定課程行防止并發(fā)超選 checkCourseStmt conn.prepareStatement(checkCourseSql); checkCourseStmt.setInt(1, courseId); rs checkCourseStmt.executeQuery(); if (!rs.next()) { conn.rollback(); return false; // 課程不存在 } int maxStudents rs.getInt(max_students); int selectedCount rs.getInt(selected_count); if (selectedCount maxStudents) { conn.rollback(); return false; // 課程已滿 } // 第二步檢查是否重復選課 checkSelectedStmt conn.prepareStatement(checkSelectedSql); checkSelectedStmt.setInt(1, studentId); checkSelectedStmt.setInt(2, courseId); rs checkSelectedStmt.executeQuery(); if (rs.next()) { conn.rollback(); return false; // 已經(jīng)選過這門課 } // 第三步插入選課記錄 insertStmt conn.prepareStatement(insertSql); insertStmt.setInt(1, studentId); insertStmt.setInt(2, courseId); insertStmt.executeUpdate(); // 第四步更新課程已選人數(shù) updateCountStmt conn.prepareStatement(updateCountSql); updateCountStmt.setInt(1, courseId); updateCountStmt.executeUpdate(); // 全部成功提交事務 conn.commit(); return true; } catch (SQLException e) { if (conn ! null) { try { conn.rollback(); } catch (SQLException ignored) {} } e.printStackTrace(); return false; } finally { DBUtil.close(conn, insertStmt, rs); } } }這段代碼的邏輯說明如下。第一步里FOR UPDATE是關鍵它會在事務期間鎖住course表里那一行其他事務要更新同一行時必須等當前事務提交或回滾。第二步的重復檢查能攔截大部分重復插入但由于應用層可能并發(fā)執(zhí)行數(shù)據(jù)庫層的外鍵約束和UNIQUE索引仍然是最后的兜底防線。事務的提交或回滾都放在try-catch里任何一個步驟失敗都會把所有改動回滾避免出現(xiàn)“選課記錄插入成功但課程已選人數(shù)沒更新”的數(shù)據(jù)不一致。這里有個參數(shù)值得你注意setAutoCommit(false)必須在getConnection()之后、第一條 SQL 執(zhí)行之前調(diào)用如果放在finally里再改回去就沒有意義了。另外這個事務里rs變量在第一步和第二步之間重復使用我每次執(zhí)行完查詢后就繼續(xù)復用同一個ResultSet其實這是有風險的因為同一個Statement上復用ResultSet會關閉前一個結果集。好在這里第一步的rs在第二步執(zhí)行前已經(jīng)用完了所以沒有踩坑但更規(guī)范的寫法是為每一步查詢單獨準備Statement和ResultSet。這是我在實際開發(fā)中踩過的坑所以特別提醒你。4.3 Swing 事件線程按鈕點擊之后代碼跑在哪里Swing 是單線程模型所有界面更新必須在事件分發(fā)線程EDT上執(zhí)行。這里有個常見的做法是在按鈕的事件監(jiān)聽器里直接調(diào)用SelectionDao.selectCourse()然后根據(jù)返回值彈出JOptionPane提示框并刷新表格模型。這個做法對于課程設計來說沒有問題因為本地數(shù)據(jù)庫查詢很快你不會感受到界面卡頓。但如果你把項目擴展到網(wǎng)絡數(shù)據(jù)庫或者數(shù)據(jù)量變大就需要在SwingWorker里執(zhí)行 JDBC 操作避免 EDT 被數(shù)據(jù)庫 IO 阻塞導致界面無響應。下面這段代碼是選課按鈕的典型實現(xiàn)我把刷新表格數(shù)據(jù)的邏輯一起寫進去btnSelectCourse.addActionListener(e - { int selectedRow courseTable.getSelectedRow(); if (selectedRow 0) { JOptionPane.showMessageDialog(this, 請先在表格中選擇一門課程); return; } // 從表格模型取課程 ID注意這里是 model 的索引不是 view 的索引 int courseId (int) courseTableModel.getValueAt(selectedRow, 0); boolean success new SelectionDao().selectCourse(currentStudentId, courseId); if (success) { JOptionPane.showMessageDialog(this, 選課成功); loadMyCourses(); // 刷新“我的課程”表格 loadAllCourses(); // 刷新全部課程表格更新已選人數(shù) } else { JOptionPane.showMessageDialog(this, 選課失敗課程已滿或已選過該課程); } });這里有一個培訓時經(jīng)常被忽略的細節(jié)JTable的getSelectedRow()返回的是視圖模型view的行索引而表格數(shù)據(jù)我們存放在DefaultTableModel中兩者在表格經(jīng)過排序或篩選后可能不一致。如果課程表格只是順序展示沒有排序功能那么 view 索引和 model 索引是一致的但如果你加了TableRowSorter排序就必須用table.convertRowIndexToModel(selectedRow)轉換。我在做這個系統(tǒng)時加過排序功能結果選課選錯了課程所以在這提醒你拿到選中行以后第一件事就是做索引轉換否則容易給學生選錯課。5. 避坑與排查實訓報告里最容易翻車的 5 個細節(jié)5.1 中文亂碼不是數(shù)據(jù)庫的鍋是連接參數(shù)沒帶對現(xiàn)象登錄界面顯示中文正常但課程列表里所有中文都變成“”。原因數(shù)據(jù)庫表已經(jīng)是utf8mb4但 JDBC 連接字符串里沒有characterEncodingutf8導致客戶端和服務器之間的字符集不一致。解決在db.properties或DBUtil里把 URL 改成jdbc:mysql://localhost:3306/course_select?useUnicodetruecharacterEncodingutf8同時確認 IDEA 里項目的文件編碼是 UTF-8不要用 GBK。另外如果你發(fā)現(xiàn)INSERT語句傳中文參數(shù)亂碼檢查PreparedStatement的參數(shù)是否在 setString 之前就經(jīng)過了正確編碼一般加連接參數(shù)后這個問題會一并消失。5.2 mysql-connector 版本與 MySQL 服務器版本不匹配現(xiàn)象程序能編譯但運行到Class.forName(com.mysql.jdbc.Driver)時報 ClassNotFoundException或者連接時報Communications link failure。原因MySQL 8.0 的驅(qū)動類名改了你用 5.1.x 驅(qū)動連 8.0 服務器會失敗。解決確認你的 lib 目錄下 jar 包版本。如果是 8.x驅(qū)動類名是com.mysql.cj.jdbc.Driver并且 URL 里要帶serverTimezone。我一般直接在 MySQL 官網(wǎng)下載mysql-connector-j-8.0.30.jar然后導入 IDEA 的 Project Structure Libraries。這個坑在實訓報告里值得寫一段因為它是 Java 連接數(shù)據(jù)庫最典型的升級兼容問題。5.3 重復選課成功應用層檢查被繞過現(xiàn)象連續(xù)快速點擊“選課”按鈕兩次數(shù)據(jù)庫里出現(xiàn)兩條一樣的選課記錄。原因并發(fā)時兩個線程都通過了checkSelectedSql的檢查然后先后執(zhí)行了插入。解決不要只依賴應用層判斷數(shù)據(jù)庫里的UNIQUE KEY uk_student_course (student_id, course_id)是最后防線。當插入第二條時MySQL 會拋出DuplicateKeyException你的catch (SQLException e)會捕獲它并回滾。為了讓實訓報告更好看我建議你在這個 catch 里判斷e.getErrorCode() 1062然后提示“您已選過這門課”而不是顯示“選課失敗”這種模糊文案。5.4 Swing 界面卡死JDBC 操作阻塞了事件分發(fā)線程現(xiàn)象點擊“加載全部課程”按鈕后窗口變成白屏光標轉圈幾秒鐘后才恢復。原因MainApp直接調(diào)用 DAO 查詢數(shù)據(jù)庫執(zhí)行時間較長時阻塞了 EDT。解決最簡單的做法是在查詢方法里加一個Thread.sleep(100)模擬慢查詢?nèi)缓蟾挠肧wingWorkerVoid, Void在后臺線程執(zhí)行查詢在done()方法里更新表格模型。不過對于本地 MySQL 和幾千條數(shù)據(jù)不這樣做也感覺不出來。我的建議是實訓報告里可以寫這個方案但代碼里不必過度設計只要答辯時能解釋清楚 EDT 模型就行。5.5 關閉主窗口后 Java 進程不退出現(xiàn)象點窗口右上角關閉按鈕界面消失了但 IDEA 里程序還在運行進度條一直是綠色。原因沒有設置setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)默認是HIDE_ON_CLOSE窗口隱藏了但 JVM 還在跑。解決在JFrame構造函數(shù)里加this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);。這算是最基礎的 Swing 常識但幾乎每屆都有學生在這上面踩坑因為光標點在窗口右上角時根本沒意識到只是隱藏。也有同學用DISPOSE_ON_CLOSE配合System.exit(0)效果一樣但EXIT_ON_CLOSE是最直接的。6. 把項目做成能答辯的樣子從報表導出到體檢清單項目到了收尾階段除了選課、退課這些核心功能外教務管理員通常需要把選課名單導出來存檔。一個實用的技巧是直接在 Swing 界面里用JFileChooser選擇保存路徑然后用FileWriter把ResultSet的內(nèi)容寫成 CSV 文件。這個功能不需要引入第三方庫二十行代碼就能完成而且容易在答辯時演示。我只保留一個建議——先寫表頭再寫數(shù)據(jù)行用英文逗號分隔中文內(nèi)容加雙引號這樣用 Excel 打開時不容易亂。下面是一個簡易的導出實現(xiàn)private void exportSelectionToCsv() { JFileChooser chooser new JFileChooser(.); chooser.setDialogTitle(導出選課名單); int result chooser.showSaveDialog(this); if (result ! JFileChooser.APPROVE_OPTION) { return; } File file chooser.getSelectedFile(); if (!file.getName().endsWith(.csv)) { file new File(file.getAbsolutePath() .csv); } String sql SELECT s.student_no, s.name, s.major, c.name AS course_name, sc.select_time FROM selection sc JOIN student s ON sc.student_id s.id JOIN course c ON sc.course_id c.id ORDER BY c.id, s.student_no; try (Connection conn DBUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql); ResultSet rs ps.executeQuery(); BufferedWriter writer new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), UTF-8))) { writer.write(學號,姓名,專業(yè),課程名稱,選課時間\n); while (rs.next()) { writer.write(String.format(\%s\,\%s\,\%s\,\%s\,\%s\\n, rs.getString(student_no), rs.getString(name), rs.getString(major), rs.getString(course_name), rs.getString(select_time))); } JOptionPane.showMessageDialog(this, 導出成功 file.getAbsolutePath()); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, 導出失敗 ex.getMessage()); } }這里用try-with-resources把連接、語句、結果集和文件流都收口是 Java 7 以后的推薦寫法即使有異常也會自動關閉資源。輸出到 CSV 文件時用了OutputStreamWriter指定 UTF-8 編碼防止 Excel 打開亂碼。注意String.format里的占位符順序要和writer.write的拼接保持一致一般我在開發(fā)時如果導出的表格列很多會先在一張紙上畫出表頭順序再寫代碼這樣不容易出錯。答辯演示時除了導出功能我還會在實訓報告里附上一份“項目運行環(huán)境清單”包括 JDK 版本推薦 8 或 11、MySQL 版本5.7 或 8.0、IDEA 版本2019.3 及以上均可、mysql-connector-java-8.0.30.jar 以及數(shù)據(jù)庫初始化腳本。這個清單看起來不起眼但評委老師最常問的就是“你換一臺電腦能跑起來嗎”你把這幾個版本信息寫清楚能省掉不少追問。另外我習慣給項目根目錄配一個 README.txt里面寫清楚三步啟動流程先用 MySQL 執(zhí)行sql/init.sql再在 IDEA 導入項目最后修改DBUtil.java里的數(shù)據(jù)庫密碼為本地密碼。這樣哪怕過了一個月再回來看這個項目也能快速接手。最后說一個我自己的教訓我在早期做這類課程設計時總是忍不住往項目里堆功能比如加一個“公告板”模塊加一個“課程評價”模塊結果數(shù)據(jù)庫表越來越多代碼越來越亂最后連自己都理不清外鍵關系。后來我?guī)W生做項目時都會先讓他們把核心流程走順——學生登錄、選課、退課、管理員審核、統(tǒng)計報表一個功能只能有一個界面、一個 DAO 方法以及一段事務邏輯做完這些之后其余的可選功能都只是錦上添花。Selbst當老師問起“你的項目有什么亮點”時你不必說“界面特別好看”你可以說“我的選課事務能保證數(shù)據(jù)一致”這個說服力強得多。希望這些經(jīng)驗和代碼片段能幫到你祝你的選課管理系統(tǒng)一次通過答辯。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷综合五月| 丁香五月六月激情| 丁香五月婷婷操逼| 五月激情小说网| 婷婷激情五月综合基地| 五月天狠狠网站| 久久九网| 丁香五月天AV在线 | 色婷婷丁香| 免费看欧美成人A片无码| 丁香九月婷婷色| 久久久宗合| 激情综合文学| 五月婷婷久草| 久久一级AV| 丁香激情网| 99久久久国产精品免费蜜乳tv| 五月丁香福利| 99精品人人| 9热成人在线视频| 天天射影院| 六月丁AV| 五月婷婷网站| 婷婷五月图片小说视频| 亚洲女婷婷五月基地综合久久久| 这里只有精品热| 小色小蛇伊人婷婷色香五月| 久热婷婷在线视频| 久激情| 久色网| 九九精品亚洲| 久久与婷婷| 激情五月丁香六月婷婷| 26uuu欧美激情另类| 五月丁香婷婷在线综合蜜桃| 思思视频这里是精品| 国产免费一区二区三区三州老师F1F1.CC | 91婷婷色 | 欧美色色色| 色五月激情五月| 久久婷婷操| 99re在线观看| 天天操天天操| 五月丁香六月婷婷久久久综合| 婷婷五月综合欧美在线播放| 婷婷射婷婷舔| 天天干天天做| 婷婷五月天亚洲| 色婷婷五月天| 99热久| 狠狠色综合网| 五月丁香成人网| 日日夜夜天天综合| 99在线精品观看99| 欧美A片在线视频免费观看| 亚洲国产精品VA在线看黑人 | 久久性视频| 九九热精品视频在线观看| 五月丁香久久| 极品人妻VIDEOSSS人妻| 色欲色香综合网站| 亚洲综合五月天婷婷丁香| 激情九月综合| 五月婷婷在线网站| 99精品免费视频| 激情五月婷婷网| 欧美激情综合色丁香婷婷五月天| 五月丁香久久| 亚洲色五月| 777精品久无码人妻蜜桃| 久久婷婷伊人| 亚洲中文AV| 热久91| 伊人综合婷婷| 亚洲性爱99| 婷婷日| 日本美女97在线视频| 欧美天堂婷婷日韩| 色综合区| 婷婷精品综合| 色婷婷导航| 久久久国产精品黄毛片| 日韩黄色电影| 丁香五月天啪啪激情综合网| 日本啪啪天堂| 超极99精品| 国产婷婷五月| 丁香五月激情欧欧美| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 婷婷丁香五月亚洲| 欧美色偷偷大香| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 久久久久久久综合狠狠综合| 五月婷精品| 五月丁香六月激情综合| 亚洲天堂色| 欧美图片丁香五月天| 丁香五月色| 怡红院院久久| 亚洲综合久| 色婷婷电影网| 日本美女上人| 99精品视频网站| 涩五月婷婷| 99热10在线高清播放| 26uuu偷拍亚洲欧洲综合| 337p大胆噜噜噜噜噜91Av| 成人婷婷深爱综合网| 五月天婷婷7米| 性爱综合网| 免费操超碰| 天天激情5月天亚洲| www久热com| 亚洲啪啪啪啪| 色婷婷精品视频| 婷婷五月天.com| 99熟女啪啪视频| 黄色中文字目| 国产丁香五月天婷婷| 色婷婷伊人| av在线免费播放观看| 人妻AV在线| 天天做夜夜爽| 99视频啪啪| 五月天六月丁香| 国产偷人妻精品一区| 大战熟女丰满人妻AV| 九九热re99re6在线精品| 日韩五月天婷婷| 91美女被操| 日韩成人无码片| 天天综合.com| 激情九月婷婷九月| 五月综合激情视频| www,婷婷,com| 人人操A| 五月激情综合网| 91丁香| 九九精品视频在线6| 久草热久草在线视频| 九九热中文| 色五月婷婷亚洲最大| 99在线视频操999| 丁香五月婷婷姐| 91一起操| 五月天婷婷色播在线网| 中文不卡av| 狠狠色丁香婷婷综合久久97AV| 色色色com| 66精品国产成人| 久久婷婷五月综合色奶水99啪| 丁香熟女乱| 婷婷综合六月| 色五月婷婷激情基地| 天天色综网| 婷婷五月精品| 91色吧网| 九九精品片一| 九九九九九九热| 五月之婷婷| 在线综合亚洲欧美65| 一本久久亚洲五月婷婷| 五月激情综合婷婷| 欧美三级欧美一级| 九九爱这里只有精品| www.色五月| 五月丁香综合啪啪啪啪啪| 91九色网| 久久成人天| 五月丁香激情综合六月涩涩爱| 欧美在线干| 欧美大奶熟女噜噜噜噜| 男同色五月开心五月激情五月| 婷婷色网站| 9热成人在线视频| 五月天色影院| 久久色在线视频| 99碰碰| 99精品久久久久久久婷婷久久 | 天天爽日日爽夜夜爽| 五月婷婷丁香日韩在线| 无码区婷婷五月花开| 人妻激情综合| 久99999热视频在线观看免费| 天天干天天日日| 婷婷丁香综合网| 五月丁香六月婷婷亚洲视频| 亚洲九区| 亚洲人成网站999久久久综合| 久热这里| 天天拍久久| 丁香青青五月天| 婷婷五月天网址| 丁香五月网站| 九九偷拍网| 中文字幕在线免费观看视频| 久久九九在线视频| 日韩三级片一区二区| 69天堂99| 国产av天堂| 婷婷五月花西瓜| 婷婷五月亚洲综合| 精品九九婷婷| 青青草a在线| 国产免费性爱| 丁香五月香蕉| 色播五月天激情| WWW夜夜| Caoub青青超碰 | 天天日夜夜帕| 337p午夜影院| 六月丁香啪啪啪| 精品人妻一区二区三区在| 五月天桃色深爱网| 激情开心五月天婷婷基地丁香社区| 国产三级片91| 色婷婷无吗| 精品人妻久久久久久| 天天综合色综合| 色99在线看| 专区无日本视频高清8| 尔尔AV一区| 99爱免费在线观看| 色9999日韩国产| 九九伦子片| 99热这里有精品| 五月丁香婷婷免费视频| 婷婷成人丁香色情基地30 | 在线观看亚洲AV| 婷婷在线视频| 99热这里是精品| 亚洲另类视频| 五月婷婷狠狠干| 乱码操操| 91九色在线| 婷婷五月综合丁香久久| 五月婷婷av在线| 天天日天天舔| 色5月婷婷| 色欲影香| 色五月色五天色情网| 色五月天成人| 99色热| 99热无码| 色综合色色色| 玖玖午夜视频| 成人在线视频网| 婷婷色婷婷| 一级性爱视频| 色噜噜五月天| 五月天精品视频| 日本一毛片| 丁香五月婷婷五月天| 日本色色色| 逼里香不卡| 亚洲色vA| 久机视频这只有精品| 激情性五月天免费小说视频| 丁香激情综合| 伊人www22综合色| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 日操五月婷| 国产激情综合五月| 99热日本| 五月天久久网站| 五月婷精品| 人妻久久久久久久久久久| 日夜夜久久| 婷婷婷婷婷婷婷五月丁香| 日本五月天一页| 天天干天天色综合| 婷婷伊人綜合中文字幕小说| 婷婷色情 | 老司机视频lsj爱就色| 免费色婷婷| 久久五月天丁香花| 九九亚洲视频| 热成人网| 熟女激情五月天| 欧美日韩aaa| 色色色999| 99久久国产宗和精品1上映| 直接看的AV网站| 99五月香婷婷丁香在线视频| 欧美啪啪网| 超碰伊人碰婷婷五月| 久久99综合网| 色亚洲色宗合| 97人人干人人操| 久久五月天婷婷| 久久性爱视频| 黄网在线观看免费| 午夜爱爱爱成人| 五月天婷婷在线播放免费| 五月婷婷影院| 日韩专区五月天婷婷丁香| 久久久五月天婷婷成人网| 91精品又长又大又粗又爽又猛| 人妻人人操| 五月婷婷m| 婷婷五月天成人网| 国产精品第一国产精品| 丁香六月婷婷综合激情欧美| 欧美综合激情五月天| 秋霞AV淫| 久草视频大香蕉99| 五月天色婷婷视频| 97人人草| 高清国产AV| 欧美丁香婷婷天天操| 五月丁香六月婷婷的女人| 另类视频综合| 欧美伊人9| 婷婷丁香成人在线视频| 色五月五月婷婷| 怡红院AV亚洲一区二区三区H| 亚洲第二AV| 欧洲婷婷五月天| 色婷婷五月天激情在线观看| 国产乱人偷精品人妻A片| 超碰高清在线| 色色色色色色色色综合网| 久操热线| 99热最新网址| 五月婷中文字幕| 超碰人人摸人人操| 激情欧美婷五月| Av九九| 久久久久久久,99精品视频| 婷婷综合欧美| 久久久com| 欧美日韩五月婷婷| 天天操天天操天天操天天操天天操 | 一操久久| jiZZdr| 亚洲午夜成人av电影网| jiujiu无码五区| 日本精品99| 新激情综合| 天天日天天做天天操| 成人在线99| 丁香五月天狠狠操| 99热| 在线观看免费狠狠色丁香香综合| 2025色婷婷| 欧美色片中文字幕久久久久| 先锋资源 996| 真实的国产乱XXXX在线91| 色婷婷丁香五月在线| 色色色五月婷婷| 国产99久9在线| 五月丁香六月综合激情无码软件亮点| 精品九九久久| 丁香在线视频| 99在线观看视频| 99丁香五月婷| 91久久久久久| 丁香五月成人| 激情婷婷综合| 久久九网| 丁香五月在线观看| 精品牛仔裤超碰| 亚洲色夜| 伊人大香五月天| 激情五月天婷婷| 丁香五月香蕉在线| 大陆极品少妇内射AAAAAA| 狠狠操.com| 丁香五月社区| 五月丁香婷婷啪啪综合网| 五月丁久久| 亚洲综合狠狠艹| 影音先锋 萱萱| 久久婷婷色五月| 色网站9| www.国产色| 99 福利 导航| 深爱激情六月天| 婷婷五月中文在线| 91操黄| 久久久久丁香婷婷五月天| 国产色色小草视频| AV在线免费网站| 欧美久热| 日本性视频| 五月丁香六月激情欧美综合| 九九色中文| 人人摸人人干| 色婷五月天| av大香蕉| 色婷婷aV四虎| 五月婷婷六月色| 色五月婷婷五月久久| 开心五月婷婷伊人| 久久久久9| 伊人久久婷婷五月天激情四射| 丁香婷婷影院| 色播五月网| 色噜噜在线| 激情五月天的婷婷| 久这里只有精品| 国产欧美精品AAAAAA片| 日本天堂免费99| 久久五月天色婷婷| 亚洲欧洲一二| 天天爽天天| 涩婷婷五月天| 丁香五月天激情网址| 九九久久9 9在线观看| 日本欧美国产| 日韩操逼小电影| 天天射综合网站| 欧美槡BBBB槡BBB少妇| 国产精品久久7777777精品无码| 九九干视频| 狠狠狠狠狠| 人人摸人人干人人做| 亚洲九区| 久久精品日| 五月丁香啪啪啪综合网| 人妻自慰高清合集| 色婷婷成人影片| 久久99日本精品视频免费观看| 91欧美| 五月天六月婷| 色婷婷五月天激情久久| 久久五月激情| 国产黄色av| 激情综合五月天| 99热a片免| 婷婷五月综合色中文字幕| 激情98色婷婷五| www.minyis.com【JT】实力收量可预付QQ2101460746 | 五月丁香综合伦理片| yiqicaoav| 日韩啪啪网| 狠狠插狠狠操| 五月天天天色| 婷婷基地五月色| 9久精品视频| 成人免费网站免费看| 99色热| 日日干日日| 婷婷精品视频| 亚洲成人AV在线观看| 天天色天天噜| 爱之国产色情综合| 六月色日韩| 亚洲人妻Av| 婷婷最新地址| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 插插插色综合网| 国产日产成人亚洲欧美国产VA| 日本天堂网站99| 欧美大肥婆大肥BBBBB| 色综合丁香婷婷| 97色色视频| site:feetmall.com| 99热99思午夜精品| 精品一区二区三区四区五区六区介绍 | 婷婷五月天亚洲| 丁香婷婷月| 色五月亚洲开心网| 久久久思思热| 久草久青福利| 在线五月色播| 激情五月综亚网| www.日日日.com| 欧美噜噜噜草| 青草性爱视频| 9er热在线精品视频| 成人在线不卡| 丁香五月天AV在线| 久热视频A.| 五月婷婷综合色啪| 三十路磁力链接| 狠狠干2007| 色欲香综合网| 色婷婷丁香五月综合| 天天天日天天天干| 成人婷婷深爱综合网| 婷婷五月天免费| 国产69久久久欧美黑人A片| 综合色色网| CHINESE熟女老女人HD视频| 婷婷五月色| 99re久久| 97成人在线视频| 亚洲天堂制| 日韩三级视频一区二区| 99re在线精品视频| 日本婷婷丁香五月| 99成人精品视频| www激情婷婷com| 99爽视频| 国色天香成人网| 牛牛澡牛牛爽| 国产高潮白浆一区二区| www.黄色片-久久成人国产精品在线播放-999AV | 99热最新| 狠狠五月激情婷婷直播片| 婷婷五月激情视频在线| 激情婷婷丁香五月天| 79精品视频在线观看,| 日本久久精品| 天堂在线婷婷| www.久久| 91色情播放| 久久三级视频| 欧美精品狠狠色丁香婷婷| 无码动漫av| 激情五月综合六月丁香婷婷狠狠干| 99久久婷婷五月天| 在线另类视频| 五月婷婷综合色啪首页| 中文字幕在线免费观看视频| 99.色| av色婷婷| 九九久久9 9在线观看| 激情五月综合久久| 婷婷深爱色五月| 五月天开心网| 艳妇野外情欲放荡HD| 日韩无码人妻一区二区| 婷婷六月插屄激情| 丁香五月综合激情啪啪| 青青草伊人婷婷| 久9热| 五月婷婷网五月在线| 97碰超级人人看| 婷婷另类小说| 天天操B| 激情婷婷丁香色五月| 久久婷丁香五月| 51精品国自产在线| 99热大全在线观看| AA丁香综合激情| 天天激情站| 另类图片色五月| 丁香婷婷综合激情五月色| 婷婷五月影院| 9精品视频在线观看| 婷婷五月天少妇| 9l视频自拍9l视频自拍九色学生| 国产九月婷婷| 色情五月天se| 99热亚洲精品| 五月丁香啪啪激情| 99ri视频在线播放| 色婷婷影视99| 亚洲天码视频www蛋播视频| 五月天婷婷成人网| 国产91视频| 桃色五月天| a性生活久久无| www。88热在线视频免费观看| 色九月婷婷综合| 久久婷鲁| 国产日韩亚洲欧美在线观看| 日韩人妻AV在线| 天天 青草 制服丝袜 在线| 一区二区免费看| 91趴趴| 激情丁香图片| 极品少妇婷婷五月| 五月深爱网| 视频一区二区在线| 五月开心深深爱激情综合| 双性美人被调教到喷水A片| 婷婷五月天中文字幕.| 91九色|疯狂|高潮|对白|| 欧美WW在线网| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 丁香婷婷黄网站| 99热网址| 中文字幕婷婷| 五月婷婷导航| 五月久久网| 色五月婷婷五月天| 黄网免费观看| 人妻久久久久久久| 秋霞三级色戒| 99亚洲天堂| 五月总合激情网| 九九热视频这里只有精品| 天堂爱啪啪| 色婷五月天| 久久综合性| 成人丁香五月| 久久一二三视频| 精品热青草| 亚洲欧州色情在线观看| 激情综合99| 色五月琪琪| 开心五月深爱五月| 99这里只有免费的精品| 五月天激情小说| 五月丁香婷婷人体| 第四色大香蕉| jiZZdr| 日日干日日s| 高清 码 免费看片短视频| 天堂五月婷婷| 婷婷香香五月| 亚洲人操亚洲人| 亚洲激情五月| 五月丁香久久| 91久久18| 激情www| 丁香五月天婷婷中文| 久久婷婷五月综合色天| 日韩成人免费电影| 精品一区二区三区木瓜| 4399在线观看免费高清黄色视频| 亚洲情欲| 婷婷5月天av| 欧美色色日韩| 91超碰人人操| 天天操综合网| 五月天婷婷爱丁香中文字幕| 久久九九婷婷| 国精产品一区一区三区免费视频| 婷婷香五月天| 99热在线99| 99ri在线播放| 五月丁香婷婷成人网| 婷婷五月色情| 色五月丁香五月婷婷五月成人网| 成人短视频在线| www.91五月| 五月天婷婷在线AN| 九九免费视频| 天天色伊人| 91黄操| 成人精品免费在线观看| 婷婷综合五月| 五月天婷婷小说| 丁香五月天激情五月天激情五月天激情网| 婷婷久久伊人| 丁香五月激情图片婷婷| www激情| 色丁香五月婷婷| 深爱婷婷色| www.五月天色色.com| 中文字幕丰满乱孑伦无码专区 | 天天干天天日天天插| 超碰人人99| 老师高潮流白浆喷水的A片| 99热精品在线播放| 天天爱综合网| 五月婷婷免费看| 五月天婷婷六月| 玖玖在线视| 97成人超碰免| 色婷婷91激情小说| 国产午夜精品一区二区三区嫩草| 九九伊人网| 久久婷婷大香蕉| WWW.桔色成人.COM| 婷婷伊人网| 情色五月天网站| www激情| 常久最新免费的色吊丝| 99精品在| 天天舔天天摸天天射| 激情综合5| 黄网免费观看| 99久在线观看| 97色婷| 国产免费一区二区三区三州老师F1F1.CC | 99热一区| 婷婷丁香六月天| 激情床戏| 色噜噜狠狠色综合日日| 人人爱操| 国产精品一区在线观看你懂的| 久久九九99| 色五月涩涩婷婷| 久久精彩视频| 激情综合网激情五月天| 九九热re99re6在线精品| 色婷婷超碰| 超级碰碰碰97免费| 欧美精品999| 色五月婷婷色| 永久精品| 中文字幕丰满孑伦无码专区| 男女啪啪做爰高潮无遮挡| 香蕉久久av一区二区三区| 97色婷婷| 色婷婷亚洲综合网站| 国产美女无遮挡裸体毛片A片 | 91啪啪视频| 99免费成人网| 色五月丁香一区在线| 九九免费在线视频| 天天爽天天日天天舔| 婷婷成人五月天成人文学小说| www.夜夜操.com| 久久久精品AV| 五月天综合色| 天天综合区| 婷五月天丁香婷五月| 超碰99久久| 99国产小视频2013| 深爱丁香激情| 亚洲综合另类| 九九热AV| 9 9 9色色| 婷婷五月天六月丁香| 欧美影院| 白人荫道BBWBBB大荫道| 另类图片五月天激情| 五月丁香色婷基地综合久久| 久思思久视频| 婷婷五月伦理网站| 夜夜撸天天操| 99在线视频网址在线观看| 成人AV网站在线| 丁香五月综合久久八| 丁香五月精品| 色噜噜综合网| 久久综合婷婷激情| 97干视频在线| 99久久综合精品五月天| 偷拍91九色| 婷婷五月天成人网| 九九视频在线观看| www.日韩艹| 亚洲欧洲另类| 午夜五月天| 99热精品在线观看| 久久五月天丁香花| 热的国产,热的综合,热的有码 | 欧美性生交XXXXX无码小说| 韩日AV片| 开心久久爱五月天| 人妻九九九九| 激情综合网激情五月丁香五月俺也去| 免费黄色视频网址| 色色色色色色色色综合网| 26uuu国产| 绿色小导航AV| 欧美性丁香色色五月天综合爱爱| 丁香五月六月综合激情| www.色多多婷| 日本女va| 久久婷婷五月综合激情国产| 91re色综合视频| WWW五月婷婷| 久久精彩视频| 丁香亚洲色综合| 色五月丁香五月五月婷婷| 婷婷五月天首页| 日日夜夜天天| 日本片日本片祼观看网站在线看中文版网页在线看| 99在线观看视频| 欧美私人家庭影院| 色婷婷激情四射视频| 俺也去综合| 亚洲另类在线观看| 婷婷在线精品| 欧美日韩成人在线网| 欧美,日韩成人在线| 激情婷婷五六月天| 久色视频| 天天色月| 99热久| 久草五月婷婷| 国产97色在线 | 日韩| 色网站9| 天天综合网网欲色| 99婷婷狠狠成为人免费视频| 五月人妻婷婷| 天天综合网站| 婷婷五月深情丁香深爱日韩| 人妻22p| 久人操| 97九色视频| 亚洲色婷婷五月天| 色99自拍| 五月丁香亭亭操逼| 伊人网碰碰| 99在线精品视频| 日韩成人AV在线播放 | 婷婷九月激情| 97人人干| 色婷婷五月天激情| 激情综合网激情五月天| 亚洲色涩视频| 亚洲色网络| 色 免费网站视频| 99色在线| 这里只有精品热| 色色热| 亚洲色vA| 96色婷婷| 天天操天天操天天操天天操天天操| 1024你懂的欧美曰韩| 五月激情婷婷在线| 五月综合激情| 99热手机在线精品| 色丁香在线视频| 播丁香五月婷婷欧美| 丁香五月开心五月激情| 超碰京东热av男人的天堂| 久久免费精彩视频| 五月丁香激情啪啪| 亚洲激情AV| 99re最新地址| 五月丁香激| 综合久久99| 黄页大全十八禁| 亚洲一二三网| 99在线热| 开心五月婷婷六月丁香| 亚洲成人av在线观看| 五月丁香六月玩女人| 丁香婷婷九月| 五月丁香啪啪啪免费看| 五月婷婷五月天| 五月丁婷婷| 第四色色色色色丁香五月天| 丁香六月婷婷久久综合| 久久99热只有精品| 亚洲国产精品成人午夜| 精品久久人妻| 开心五月天私房婷婷| 激情婷婷五月丁香啪啪啪| 色婷婷综合网| WWW、日本色丁香co m| 亚洲岛国电影| 婷婷五月天天天| 在线观看熟女少妇| 人人操婷婷| 天天干天天日天天操| www.丁香黄色五月天人与| 丁香五月色网| 日欧一片内射VA在线影院| 婷婷激情视频| 婷婷激情综合网| 欧美成人AAA片一区国产精品| 99.N在线视频| 玖操97| 欧美色色色色色色色| 国产性爱在线| 久久这里只有精品99| www.色色色色| 欧美婷婷五月无砖| 欧美日比视频| 色色色五月| 五月天婷婷综合网| 婷婷在线播放| 国产婷婷五月天| 久久永久网址| 99久在线观看| 丁香五月婷婷激情中文| 国产精品久久久久久久久久免费| 另类 在线| 综合久久人妻| 天天操天天操综合| 五月丁香六月激情综合网| 人人操人人添人人摸97| 另类天堂| WWW,五月| 五月婷婷,六月丁香| 婷婷免费无视频| 亚洲综合网区| 婷婷导航| 丁香五月综合激情啪啪| 美女xx不卡| yazhoujiqingav| 五月丁香亭亭| 丁香色婷婷五月天| 51XX午夜影福利| 五月天激情小说欧美激情| www.99在线| 丁香五月激情啪啪啪| 欧美日韩精品人妻狠狠躁免费视频| 99热亚洲精品| 久久人人九九| 91人操人人人操人| 这里只有精品1| 五月婷婷干| 五月丁香婷婷五月色| 丁香婷婷色五月| 午夜大香蕉| 国产激情av| 日本一级特黄大片AAAAA级| 热婷婷在线视频| 丁香五月婷婷久久久| 久久五月婷综合| 99九九精品视频推荐| 天堂伊人干| 五月天丁香色色| 精品亚洲国产成AV人片传媒| 婷婷D区| 久久久国产精品黄毛片| 久99999热视频在线观看免费| 色婷婷五月天| 五月天激情综合| 色综合色色| 色天五月天在线观看视频| 婷婷五月天国产| 播五月丁香三月婷婷| 97色在线观看视频| 玖玖爱资源站| 99久久婷婷| 九九色色| 五月天激情亚洲| 九九99九九精品视频| 九月色婷婷综合| 综合99视频| 香蕉综合网| 久久99最新| 性生活久久人妻| 婷婷五月天成人小说| 91狠狠色丁香| 99热这里只有精品22| 无码色| 综合欧美五月婷婷| 五月综合丁| 五月丁香久久网| 五月色婷婷综合色| 激情五月色综合国产精品| 99久久6| 色99日韩| 亚洲中文字幕在线观看| 六月婷综合| 99久操| 亚洲激情亚洲激情| 亚洲婷婷乱乱丁香| 噜噜在线| 99免费视频| 欧美日韩一区二区三区四区| 97人人搞| 天天综合.com| 九九在线视频| 开心五月天激情网| 亚洲六月色| 五月丁香综合成人社区| 99re热精品视频国| 成人九九视频| 99久久婷婷| 三年高清大片免费观看国语| 色综合色色色色| 在线观看五月婷婷网| 丁香成人色情五月天| 91凹凸在线| 成人做爰高潮A片免费视频| 美女被肏网站在线看| 欧美久久婷婷| 五月天激情社区| 激情婷婷丁香五月天| 丁香五月激动深爱欧美| 超碰在线超碰| 色五月婷婷婷婷| 久久伊人9| 丁香色婷婷色手机免费在线| 久久久久亚洲AV成人无码电影| 26UUU在线观看| 久久99综合网| 1024成人免费看| 99色视频| 91九色视频在线观看| 无码AV免费精品一区二区三区| 婷婷五月天情色| 婷婷激情五月综合基地| 久久99网站| 九一牛视频探花| 2025最新亚洲激情在线| 国产性爱一级| 91操女| 五月丁香激情五月天| 色99热| 99精品无码| 日本久久精品| 色丁香婷婷| 激情开心五月天| 色五月婷婷av| 色色色免费视频| 色婷婷五月综合激情中文字幕| 天天爽人人综合免费7799| 亚洲五月婷婷| 超碰免费观看| 五月天色在线| 色欧洲| 999婷婷综合| 婷婷色五月在线视频| 丁香五月婷婷图片综合| 九九人妻福利| 天天干天天干天天干天天干天| 97操碰日本女人| 亚洲精品国产精品乱码不99| 六月丁香五月婷婷| 五月婷婷深深的爱| 99在线资源| 色综合色婷色基地| 国产日韩亚洲欧美在线观看| 成熟妇人A片免费看网站| 五月网激情| 99色色网| 97操在线视频| 国产免费一区二区三区三州老师F1F1.CC| 超碰在线资源| 天天插天天| 久久五月婷天天干| 五月丁香六月婷婷色| 亚洲操操操| 亚洲日韩国产黑丝黑丝AVAV一区二区三区 | 涩婷婷视频快播人妻| 婷婷开心久久| 天天综合网~91| 激情五月婷婷色| 五月激情四射网站| 久久久人妻系列| 黄色片avv| 精品A√| 狠狠色婷婷色| 久久综合五月天| 五月丁香激情怕怕| 色三级色三级| 日韩成人免费电影| 丁香五月影院| 五月花综合网| 久久综合五月天| 婷婷五月天深爱| 国产99久久久国产精品免费看| 国产又黄又爽又激情不遮挡视频在线观看| www.99热视频| 538在线| 九月丁香婷婷基地| 丁香六月亚洲综合| 日本在线wwww| 欧美激情综合色综合啪啪五月| 久久停停超碰| 天天日日夜夜| 五月丁香人人婷婷在线观看| 99这里有精品视频| 丁香六月天婷婷开心综合| 超碰啪啪网| 丁香婷婷九月| 99久久99视频只有精品| 涩五月婷婷| 99re这里只有精品视频了| 免费超碰在线| 色综合激情| 激情五月深爱五月| 国精产品一区一区三区免费视频 | 婷婷五月激情中文字幕| 五月熟妇婷婷久久| 五六月婷婷久久| 五月天激情图片| 开心久久五月天| 五月丁香久久久| 丁香 久久| 九九色精品| 思思久久99热只有频精品66| 婷婷99狠狠躁| 九九综合| 欧美久久九九| 啪啪婷婷五月天激情| 色久婷婷网| 久久婷婷六月综合综合| 丁香五月六月激情久久| 大香蕉九九| 国产婷婷婷| 五月综合丁香婷婷| 六月婷婷狠狠| 亚洲在线视频321| 五月丁香啪啪综合| 日韩综合大黄| 中文字幕婷婷| 7777国产盗摄农村女人| 久久99网站| 国色天香伊人狠狠色| 久久婷婷热| 成人 AV播放| 激情五月婷婷五月| 99色精品| 成人久久天天x资源站| 亚洲AV第二区国产精品| 色五月天堂| 五月婷婷激情视频| 99色啊| 九九综舍久久| 五月天婷婷丁香成人网| 五月丁香啪啪啪综合网| 91色情播放| AV 3P| 99九九综合久久九九| 天天操天天插天天射| 99精品免费视频| 超碰在线免费9| 2025年最新亚洲在线欧美| 成人色五月天婷婷| 九热免费视频| 婷婷大香焦| 亚洲综合在线视频| 婷婷色基地| 色情综合网| 99九九在线视频| 激情 婷婷 丁香五月天| 99er精品| 青青久久大香蕉| 激情五月天。| 丰满少妇猛烈A片免费看观看 | www激情com| 精品视频99看在线视频| 成人 视频免费观看网站| 偷偷操九九| 久久精品一区二区三区四区| 97久久久| 99re思思热久久| 亚洲久热无码| 99久久综合精品五月天| 久这里只有精品| 色婷婷XXXXX| 五月天综合激情网| 久草a片| av在线免费网站 | 色播五月天激情| 婷婷性色| 婷婷噜噜| 五月天天爽| 天天日日综合| 色婷婷五月综合网| 密桃激情五月天综合网| 天天成人综合| 亚洲色婷婷网站| 亚洲色情一区二区三区四区| 五月天婷婷黄色视频| 色欲人妻综合aaaaaaaa网| 色五月天激情| 精品色色色| 69凹凸成人综合网| 九九这里只有精品| 五月丁香激情综合| 五月综合久久| 天天天干夜夜夜操| www色色色com| 婷婷网五月天| 五月激情综合网| 五月婷色| 少妇AB又爽又紧无码网站| 色五月婷婷网| 五月综合视频| 老美AA片| 激情五月天久久| 日本波多野结衣视频| 色很久综合| 婷婷五月,偷窥偷拍网| 午夜九九九九九九九九九九九九九| 大香蕉啪啪啪啪啪啪| 婷婷六月丁综合| 精品网站:999WWW| 97人人操在线| VA国产在线综合网站| 另类激情五月| 亚洲AV成人无码久久精品老人法拉利| 丁香六月久| 色色色成人网| 一月婷婷色色| 婷婷激情五月| 香蕉AV777XXX色综合一区 | 五月中旬婷婷丁香六| 玖玖资源站中文| 五月婷精品| 思思99热| Caoub青青超碰| www98日本小时间到了| 九九热精品| 日本成人小说婷婷六月| 婷婷五月天激情小说网站| 午夜丁香婷婷| 狠狠综合网| a久久| 五月色婷婷夜色| 9久热在线视频精品| 99免费成人网| 色五月影视| 婷婷激情五月综合| 九九视频在线观看视频6| 激情熟女网| 久色资源| 色五月丁香五月| av免费在线观看0| 97久人人| 热99视频| 五月丁香色| 免费无码毛片一区二区A片| 丁香花操逼| 99热在线里有精品| 丁香六月在线| 久久小视频| 婷婷丁香五月天色色| 97久久人人操| 深爱五月日韩| 日本九九九九| 亚洲电影中文字幕| 丁香五月精品视频| 26uuu欧美宗合| 超碰免费人人| 亚洲无码99| 国产激情在线观看| 337p大胆噜噜噜噜噜91Av| 五月丁香六月停停| www.91久久| 中文AV网站| 丁香婷婷五月天亚洲| 操你av| 97操碰| 丁香五月天天| 亚洲精品五月| 九九色影院| 99九九热播在线免费视频| 亚洲婷婷丁香五月在线| 九九热在线视频观看| BBWCUCKOLD精品熟妇| 色综合丁香婷婷| 99久久九九| 九九热精品| 99乱视频| 99色视| 久久人人九| 久久婷婷网址| site:esunnet.com| 99色婷婷| 欧美激情综合色综合啪啪五月| 色五月婷婷啪啪五月| 26uuu成人网| 成年人夜夜喷水| 亚洲欧美999| 婷婷中文字幕欧美| 色久播播| 色婷婷在线播放| 欧美性爱一区| 色色色色色色网| 五月天婷婷狂暴白浆| 天天色一道本综合婷婷| 91久热| 4399在线观看免费高清黄色视频| 性色视频| 亚洲午夜成人av电影网| 亚韩在线视频| 国产精品视频| 婷婷五月丁香香蕉| 开心深爱激情网| 中文不卡av| 久久aaaa片一区二区| av中文字幕免费观看| 第四色色六月色综合| 精品色色| 九九热re99re6在线精品| 婷婷亚洲欧美丁香五月| 色婷婷亚洲综合网站| 99热这里只有精品无码| 国产午夜精品一区二区三区四区 | www天天爽| 人人操人人妻| 人人摸人人干人人做| 色色色com| 五月天精品视频| 五月丁香综合网| 久久五月天综合| 在线中文亚洲|