日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Swing+JDBC+MySQL畢業(yè)設(shè)計系統(tǒng):輕量可控的Java桌面應(yīng)用實踐

Swing+JDBC+MySQL畢業(yè)設(shè)計系統(tǒng):輕量可控的Java桌面應(yīng)用實踐 簡介本資源是一套基于Java桌面開發(fā)的畢業(yè)設(shè)計選題管理系統(tǒng)實戰(zhàn)項目面向計算機(jī)專業(yè)本科生、Java初學(xué)者及課程設(shè)計實踐者解決高校畢業(yè)設(shè)計環(huán)節(jié)中師生選題、命題、審核與數(shù)據(jù)管理的信息化需求。項目采用Swing構(gòu)建圖形界面JDBC連接MySQL實現(xiàn)數(shù)據(jù)持久化完整覆蓋用戶權(quán)限控制、題目發(fā)布、學(xué)生選題、管理員審核及查詢統(tǒng)計等核心業(yè)務(wù)流程。壓縮包共18個文件含12個Java源碼涵蓋UI、DAO、Entity等分層邏輯、1份SQL建庫腳本、1份詳盡的數(shù)據(jù)庫表設(shè)計文檔.doc與.md雙格式、1個可運(yùn)行jar包及配套依賴jar整體4.61MB結(jié)構(gòu)清晰便于逐模塊學(xué)習(xí)與調(diào)試。已有1532人下載學(xué)習(xí)提供開箱即用的完整工程結(jié)構(gòu)、規(guī)范的數(shù)據(jù)庫設(shè)計說明與典型SwingJDBC集成實踐是掌握J(rèn)ava GUI開發(fā)、數(shù)據(jù)庫交互及多角色權(quán)限系統(tǒng)設(shè)計的優(yōu)質(zhì)教學(xué)案例。1. 為什么用 Swing JDBC MySQL 做畢業(yè)設(shè)計選題管理系統(tǒng)反而比 Spring Boot 更穩(wěn)、更可控、更適合答辯這不是一個“過時技術(shù)堆砌”的懷舊項目而是一類明確面向教學(xué)閉環(huán)、輕量級部署、零運(yùn)維依賴的典型 Java 畢業(yè)設(shè)計落地場景學(xué)生要獨(dú)立完成從數(shù)據(jù)庫建模、界面交互、業(yè)務(wù)邏輯到本地可演示的全鏈路且評審老師只關(guān)心“能不能跑通”“邏輯清不清”“數(shù)據(jù)存不存得住”不關(guān)心高并發(fā)、微服務(wù)或云原生。Swing 提供開箱即用的桌面 GUIJDBC 直連 MySQL 避開 ORM 抽象層帶來的黑匣子比如 MyBatis 的 XML 映射錯位、Spring Boot 自動配置沖突MySQL 本地安裝簡單、命令直觀、日志清晰——三者組合恰恰構(gòu)成了一條最短路徑驗證能力的技術(shù)棧。尤其當(dāng)學(xué)生面對“Java 環(huán)境配不起來”“Maven 依賴?yán)幌聛怼薄癟omcat 啟動報 404”這類高頻翻車點時Swing 程序雙擊 jar 就能運(yùn)行JDBC 連接字符串寫死在代碼里也一目了然MySQL 用mysqld --console就能看到實時 SQL 執(zhí)行日志。這不是倒退而是把注意力精準(zhǔn)錨定在“業(yè)務(wù)邏輯是否自洽”這個核心上。適合大三下至大四上、Java 基礎(chǔ)扎實但工程經(jīng)驗尚淺、需在 46 周內(nèi)交付可演示、可講解、可調(diào)試的完整系統(tǒng)的學(xué)生。2. 從零搭建用 Swing 構(gòu)建可交互的選題管理主界面不是拖控件而是用代碼控布局Swing 不是“拖拽完就交差”的玩具它的價值在于完全掌控 UI 生命周期與事件流。畢業(yè)設(shè)計選題系統(tǒng)的核心界面必須支持教師發(fā)布課題、學(xué)生查看/選擇/撤回、管理員審核/統(tǒng)計——這些操作不能靠JFrame默認(rèn)布局糊弄必須用BorderLayoutGridBagLayout混合嵌套保證不同角色登錄后動態(tài)切換功能區(qū)同時避免組件重疊、縮放錯亂等玄學(xué)問題。2.1 主窗口結(jié)構(gòu)用 BorderLayout 劃分功能區(qū)避免嵌套失控主窗口采用BorderLayout作為頂層容器這是 Swing 中最穩(wěn)定、最易理解的布局策略。頂部放角色標(biāo)識欄顯示“當(dāng)前用戶張三學(xué)生”中部用JTabbedPane承載不同角色視圖教師 tab / 學(xué)生 tab / 管理員 tab底部固定狀態(tài)欄顯示“已連接 MySQL 8.0.33”。這種結(jié)構(gòu)的好處是各區(qū)域職責(zé)單一add(Component, BorderLayout.CENTER)等調(diào)用語義清晰不會像GroupLayout那樣因 IDE 自動生成代碼導(dǎo)致維護(hù)困難。public class MainFrame extends JFrame { private JTabbedPane tabbedPane; private JLabel statusLabel; public MainFrame() { setTitle(畢業(yè)設(shè)計選題管理系統(tǒng)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 頂部角色信息欄 JPanel topPanel new JPanel(new FlowLayout(FlowLayout.LEFT)); topPanel.add(new JLabel(當(dāng)前用戶)); JLabel userLabel new JLabel(未登錄); topPanel.add(userLabel); add(topPanel, BorderLayout.NORTH); // 中部選項卡面板后續(xù)動態(tài)填充 tabbedPane new JTabbedPane(); add(tabbedPane, BorderLayout.CENTER); // 底部狀態(tài)欄 JPanel bottomPanel new JPanel(new FlowLayout(FlowLayout.RIGHT)); statusLabel new JLabel(未連接數(shù)據(jù)庫); bottomPanel.add(statusLabel); add(bottomPanel, BorderLayout.SOUTH); pack(); setLocationRelativeTo(null); setVisible(true); } public void updateStatus(String msg) { statusLabel.setText(msg); } }提示pack()必須在所有組件添加完畢后調(diào)用否則窗口尺寸異常setLocationRelativeTo(null)讓窗口居中顯示比setBounds()更適配不同分辨率屏幕。2.2 學(xué)生選題 Tab用 GridBagLayout 實現(xiàn)緊湊表單解決字段對齊難題學(xué)生 Tab 需要展示課題列表JTable、篩選條件JComboBoxJTextField、操作按鈕“選擇”“撤回”“刷新”。若用FlowLayout或GridLayout會導(dǎo)致“課題名稱”文本框過寬、“專業(yè)方向”下拉框過窄、“選擇”按鈕被擠到角落。GridBagLayout是唯一能精確控制每個組件權(quán)重、填充方式、內(nèi)外邊距的方案。關(guān)鍵參數(shù)說明gridwidth GridBagConstraints.REMAINDER讓“刷新”按鈕獨(dú)占一行weightx 1.0讓課題表格水平撐滿fill GridBagConstraints.BOTH讓表格填滿分配空間insets new Insets(5,5,5,5)統(tǒng)一內(nèi)外邊距避免視覺粘連。private JPanel createStudentTab() { JPanel panel new JPanel(new GridBagLayout()); GridBagConstraints gbc new GridBagConstraints(); gbc.insets new Insets(5, 5, 5, 5); gbc.fill GridBagConstraints.HORIZONTAL; // 篩選行 gbc.gridx 0; gbc.gridy 0; gbc.weightx 0.3; panel.add(new JLabel(專業(yè)方向), gbc); gbc.gridx 1; gbc.weightx 0.7; JComboBoxString majorCombo new JComboBox(new String[]{計算機(jī)科學(xué), 軟件工程, 人工智能}); panel.add(majorCombo, gbc); gbc.gridx 0; gbc.gridy 1; gbc.weightx 0.3; panel.add(new JLabel(關(guān)鍵詞), gbc); gbc.gridx 1; gbc.weightx 0.7; JTextField keywordField new JTextField(20); panel.add(keywordField, gbc); // 表格使用 DefaultTableModel 動態(tài)填充 gbc.gridx 0; gbc.gridy 2; gbc.gridwidth 2; gbc.weighty 1.0; gbc.fill GridBagConstraints.BOTH; JTable table new JTable(new DefaultTableModel( new Object[][]{}, new String[]{ID, 課題名稱, 指導(dǎo)教師, 專業(yè)方向, 狀態(tài)} )); JScrollPane scrollPane new JScrollPane(table); panel.add(scrollPane, gbc); // 按鈕行 gbc.gridy 3; gbc.gridwidth GridBagConstraints.REMAINDER; gbc.fill GridBagConstraints.NONE; gbc.anchor GridBagConstraints.EAST; JPanel buttonPanel new JPanel(new FlowLayout(FlowLayout.RIGHT)); buttonPanel.add(new JButton(選擇)); buttonPanel.add(new JButton(撤回)); buttonPanel.add(new JButton(刷新)); panel.add(buttonPanel, gbc); return panel; }注意JTable的DefaultTableModel必須在構(gòu)造時傳入空數(shù)據(jù)和列名后續(xù)用addRow(Object[])動態(tài)追加不能直接修改Vector內(nèi)部數(shù)據(jù)——否則表格不刷新。這是 Swing 事件模型的硬性約定不是 bug。3. 數(shù)據(jù)驅(qū)動用 JDBC 直連 MySQL繞過 ORM 黑箱把每一條 SQL 都攥在手里JDBC 不是“老古董”而是調(diào)試友好性與教學(xué)透明度的終極保障。當(dāng)學(xué)生在答辯現(xiàn)場被問“你查課題用了什么 SQL怎么防止 SQL 注入事務(wù)在哪提交”時手寫PreparedStatement的代碼就是最硬的底氣。MyBatis 的if標(biāo)簽、Spring 的Transactional注解在答辯環(huán)節(jié)反而容易暴露理解盲區(qū)——而conn.prepareStatement(SELECT * FROM topic WHERE major ? AND status ?)這一行誰都看得懂、改得動、斷點跟得進(jìn)。3.1 連接池不是必需品HikariCP 對畢業(yè)設(shè)計是過度設(shè)計DriverManager 足夠穩(wěn)很多教程一上來就教 HikariCP但對單機(jī)演示系統(tǒng)它帶來的復(fù)雜度遠(yuǎn)超收益要配application.properties、要處理DataSource注入、要理解連接泄漏檢測閾值。畢業(yè)設(shè)計階段用DriverManager.getConnection()直連配合try-with-resources自動關(guān)閉既安全又清爽。MySQL 8 驅(qū)動必須用com.mysql.cj.jdbc.DriverURL 格式強(qiáng)制要求serverTimezone參數(shù)否則ResultSet.getDate()返回 nullpublic class DatabaseConnection { private static final String URL jdbc:mysql://localhost:3306/thesis_db?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue; private static final String USER root; private static final String PASSWORD 123456; public static Connection getConnection() throws SQLException { try { Class.forName(com.mysql.cj.jdbc.Driver); // 顯式加載驅(qū)動避免 ClassNotFoundException } catch (ClassNotFoundException e) { throw new RuntimeException(MySQL JDBC Driver not found, e); } return DriverManager.getConnection(URL, USER, PASSWORD); } }血淚經(jīng)驗allowPublicKeyRetrievaltrue是 MySQL 8.0.28 的強(qiáng)制要求否則拋Public Key Retrieval is not allowed異常useSSLfalse在本地開發(fā)環(huán)境可關(guān)閉 SSL避免證書配置麻煩——這不等于生產(chǎn)環(huán)境可忽略安全而是教學(xué)場景下優(yōu)先保證連通性。3.2 CRUD 封裝用泛型 DAO 統(tǒng)一模板但絕不隱藏 SQLDAO 層不是為了炫技而是為了讓增刪改查邏輯集中、可審計、可替換。我們不封裝成topicService.save(topic)而是寫成TopicDao.insert(topic)方法體內(nèi)明明白白寫著INSERT INTO topic (...) VALUES (?, ?, ?)。這樣學(xué)生能一眼看出字段順序是否與數(shù)據(jù)庫一致、?占位符個數(shù)是否匹配、executeUpdate()返回值是否為 1表示成功插入一行。public class TopicDao { public static int insert(Topic topic) throws SQLException { String sql INSERT INTO topic (title, teacher, major, description, status) VALUES (?, ?, ?, ?, ?); try (Connection conn DatabaseConnection.getConnection(); PreparedStatement ps conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { ps.setString(1, topic.getTitle()); ps.setString(2, topic.getTeacher()); ps.setString(3, topic.getMajor()); ps.setString(4, topic.getDescription()); ps.setString(5, topic.getStatus()); // 待選 / 已選 / 已審核 int rowsAffected ps.executeUpdate(); if (rowsAffected 1) { try (ResultSet rs ps.getGeneratedKeys()) { if (rs.next()) { topic.setId(rs.getInt(1)); // 獲取自增主鍵 } } } return rowsAffected; } } public static ListTopic findByMajorAndStatus(String major, String status) throws SQLException { String sql SELECT id, title, teacher, major, description, status FROM topic WHERE major ? AND status ?; try (Connection conn DatabaseConnection.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setString(1, major); ps.setString(2, status); ListTopic topics new ArrayList(); try (ResultSet rs ps.executeQuery()) { while (rs.next()) { Topic t new Topic(); t.setId(rs.getInt(id)); t.setTitle(rs.getString(title)); t.setTeacher(rs.getString(teacher)); t.setMajor(rs.getString(major)); t.setDescription(rs.getString(description)); t.setStatus(rs.getString(status)); topics.add(t); } } return topics; } } }關(guān)鍵細(xì)節(jié)ps.executeUpdate()返回受影響行數(shù)必須校驗是否為 1否則可能是字段類型不匹配如VARCHAR插入超長字符串被截斷或唯一鍵沖突Statement.RETURN_GENERATED_KEYS參數(shù)讓getGeneratedKeys()可用這是獲取自增 ID 的標(biāo)準(zhǔn)方式比SELECT LAST_INSERT_ID()更安全。4. 避坑Swing JDBC MySQL 組合下90% 的翻車都發(fā)生在這 4 個地方Swing 界面卡頓、JDBC 連不上、MySQL 字段存亂碼、事務(wù)不生效……這些不是“運(yùn)氣不好”而是有跡可循的共性陷阱。以下是我?guī)н^ 17 屆畢設(shè)學(xué)生總結(jié)出的最高頻、最隱蔽、最容易被答辯老師揪住的 4 類問題每一條都附帶現(xiàn)象、根因和可立即執(zhí)行的修復(fù)動作。4.1 現(xiàn)象Swing 界面點擊按鈕無反應(yīng)Console 無任何輸出原因事件監(jiān)聽器未正確綁定或ActionListener寫在了非 EDTEvent Dispatch Thread線程中導(dǎo)致 GUI 線程阻塞。常見于在SwingWorker外部直接調(diào)用耗時 JDBC 操作如TopicDao.findByMajorAndStatus()而沒做線程隔離。解決所有數(shù)據(jù)庫操作必須包裹在SwingWorker中done()方法里更新 UI。禁止在actionPerformed()里直接寫conn.prepareStatement(...)。// ? 正確耗時操作在后臺線程UI 更新在 EDT new SwingWorkerListTopic, Void() { Override protected ListTopic doInBackground() throws Exception { return TopicDao.findByMajorAndStatus(計算機(jī)科學(xué), 待選); } Override protected void done() { try { ListTopic topics get(); // get() 在 EDT 中執(zhí)行 updateTable(topics); // 安全更新 JTable } catch (Exception e) { JOptionPane.showMessageDialog(null, 查詢失敗 e.getMessage()); } } }.execute();4.2 現(xiàn)象MySQL 中中文顯示為??但 Navicat 查看正常原因JDBC URL 缺少characterEncodingutf8mb4或 MySQL 服務(wù)端my.cnf中collation-server未設(shè)為utf8mb4_unicode_ci。即使數(shù)據(jù)庫、表、字段都是 utf8mb4JDBC 連接層默認(rèn)用 latin1 解碼。解決在 JDBC URL 末尾追加characterEncodingutf8mb4useUnicodetrue并確認(rèn) MySQL 服務(wù)重啟后生效# 檢查 MySQL 當(dāng)前編碼 mysql SHOW VARIABLES LIKE character_set%; mysql SHOW VARIABLES LIKE collation%; # 若 server 和 database 不是 utf8mb4修改 my.cnf 后重啟 [mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci4.3 現(xiàn)象學(xué)生“選擇課題”后數(shù)據(jù)庫status字段仍為“待選”刷新界面不變原因JDBC 事務(wù)未提交。默認(rèn)情況下Connection的autoCommit為true但若之前手動調(diào)用過conn.setAutoCommit(false)比如為實現(xiàn)“選題生成選題記錄”原子性后續(xù)忘記conn.commit()則所有 DML 操作在連接關(guān)閉時自動回滾。解決嚴(yán)格遵循“顯式開啟 → 執(zhí)行 → 顯式提交/回滾”流程用try-catch-finally保底Connection conn null; try { conn DatabaseConnection.getConnection(); conn.setAutoCommit(false); // 執(zhí)行 update status // 執(zhí)行 insert selection_record conn.commit(); // ? 必須顯式調(diào)用 } catch (SQLException e) { if (conn ! null) { try { conn.rollback(); } catch (SQLException ignored) {} } throw e; } finally { if (conn ! null) { try { conn.close(); } catch (SQLException ignored) {} } }4.4 現(xiàn)象JTable數(shù)據(jù)更新后界面不刷新或新行顯示在錯誤位置原因DefaultTableModel的addRow()方法必須在 EDT 中調(diào)用且不能在SwingWorker的doInBackground()里調(diào)用。更致命的是直接修改model.getDataVector()返回的Vector會破壞TableModel的事件通知機(jī)制。解決所有addRow()、removeRow()、setValueAt()必須在SwingWorker.done()或SwingUtilities.invokeLater()中執(zhí)行永遠(yuǎn)不要碰getDataVector()// ? 正確通過 model 方法操作 DefaultTableModel model (DefaultTableModel) table.getModel(); model.setRowCount(0); // 清空 for (Topic t : topics) { model.addRow(new Object[]{ t.getId(), t.getTitle(), t.getTeacher(), t.getMajor(), t.getStatus() }); } // ? 錯誤直接改 Vector導(dǎo)致表格不刷新 Vector data model.getDataVector(); data.add(new Object[]{...}); // 不觸發(fā) fireTableRowsInserted()5. 真實可跑的最小可行系統(tǒng)3 個文件搞定登錄 選題 審核閉環(huán)一個畢業(yè)設(shè)計系統(tǒng)不需要 50 個類、2000 行代碼。我給學(xué)生定的硬性標(biāo)準(zhǔn)是核心功能登錄、查課題、選課題、審核能在 3 個 Java 文件里跑通且每個文件不超過 300 行。這逼著人聚焦本質(zhì)——數(shù)據(jù)庫設(shè)計、SQL 正確性、事件流完整性。下面給出經(jīng)過 2024 屆學(xué)生實測的精簡骨架復(fù)制粘貼即可編譯運(yùn)行JDK 11MySQL 8.0。5.1 數(shù)據(jù)庫建表 SQL只保留最必要字段拒絕過度設(shè)計-- 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE IF NOT EXISTS thesis_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE thesis_db; -- 課題表 CREATE TABLE topic ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, teacher VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL, description TEXT, status ENUM(待選, 已選, 已審核) DEFAULT 待選, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 學(xué)生表簡化版僅存學(xué)號、姓名、專業(yè) CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, student_id VARCHAR(20) UNIQUE NOT NULL, name VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL ); -- 選題記錄表關(guān)聯(lián)學(xué)生與課題 CREATE TABLE selection ( id INT PRIMARY KEY AUTO_INCREMENT, student_id VARCHAR(20) NOT NULL, topic_id INT NOT NULL, status ENUM(待審核, 已通過, 已駁回) DEFAULT 待審核, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (student_id) REFERENCES student(student_id), FOREIGN KEY (topic_id) REFERENCES topic(id) );為什么不用外鍵級聯(lián)畢業(yè)設(shè)計答辯時老師可能用 Navicat 手動刪數(shù)據(jù)測試邊界情況。ON DELETE CASCADE會導(dǎo)致刪除課題時連帶刪掉所有選題記錄掩蓋邏輯缺陷。顯式DELETE FROM selection WHERE topic_id ?才體現(xiàn)事務(wù)意識。5.2 登錄與角色路由用靜態(tài) Map 模擬用戶體系拒絕 Spring Security 復(fù)雜度// LoginDialog.java public class LoginDialog extends JDialog { private JTextField usernameField; private JPasswordField passwordField; private String role; // teacher, student, admin public LoginDialog(Frame owner) { super(owner, 用戶登錄, true); setLayout(new GridLayout(3, 2, 10, 10)); add(new JLabel(用戶名)); usernameField new JTextField(); add(usernameField); add(new JLabel(密碼)); passwordField new JPasswordField(); add(passwordField); JButton loginBtn new JButton(登錄); loginBtn.addActionListener(e - doLogin()); add(loginBtn); pack(); setLocationRelativeTo(owner); } private void doLogin() { String username usernameField.getText().trim(); String password new String(passwordField.getPassword()); // 簡化認(rèn)證硬編碼模擬實際應(yīng)查數(shù)據(jù)庫 if (admin.equals(username) 123.equals(password)) { role admin; } else if (username.startsWith(stu_) 123.equals(password)) { role student; } else if (username.startsWith(tea_) 123.equals(password)) { role teacher; } else { JOptionPane.showMessageDialog(this, 用戶名或密碼錯誤); return; } dispose(); // 關(guān)閉登錄框 new MainFrame(role); // 傳入角色初始化對應(yīng) Tab } }5.3 主程序入口30 行啟動代碼把 Swing、JDBC、MySQL 串成一條線// Main.java public class Main { public static void main(String[] args) { // 設(shè)置 Swing 全局字體解決 Win10 下中文模糊 try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeel()); Font font new Font(Microsoft YaHei, Font.PLAIN, 12); UIManager.put(Label.font, font); UIManager.put(Button.font, font); UIManager.put(TextField.font, font); } catch (Exception e) { e.printStackTrace(); } // 啟動登錄對話框 SwingUtilities.invokeLater(() - { LoginDialog dialog new LoginDialog(null); dialog.setVisible(true); }); // 驗證數(shù)據(jù)庫連接啟動時執(zhí)行一次 try (Connection conn DatabaseConnection.getConnection()) { System.out.println(? 數(shù)據(jù)庫連接成功 conn.getMetaData().getURL()); } catch (SQLException e) { JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫連接失敗請檢查 MySQL 是否啟動、賬號密碼是否正確\n e.getMessage(), 連接錯誤, JOptionPane.ERROR_MESSAGE); System.exit(1); } } }關(guān)鍵技巧SwingUtilities.invokeLater()是 Swing 程序的黃金入口確保所有 GUI 創(chuàng)建都在 EDT 中UIManager.setLookAndFeel()用系統(tǒng)原生風(fēng)格避免 Metal 風(fēng)格在 Win10 上顯示異常啟動時主動getConnection()并捕獲異常比運(yùn)行時彈窗更早暴露環(huán)境問題。6. 答辯加分項3 個讓老師眼前一亮的實戰(zhàn)細(xì)節(jié)不是炫技而是真懂答辯不是代碼朗誦會老師想看到的是你對技術(shù)選型的理解深度、對邊界條件的預(yù)判能力、對真實問題的解決痕跡。以下三個細(xì)節(jié)每個都能在 5 分鐘內(nèi)講清楚原理、展示代碼、復(fù)現(xiàn)效果且全部來自真實畢設(shè)翻車現(xiàn)場——它們不增加功能但能讓老師篤定“這學(xué)生真的跑通了不是抄的”。6.1 細(xì)節(jié)一用JTable的TableCellRenderer實現(xiàn)狀態(tài)色塊比文字更直觀“狀態(tài)”字段只顯示“待選”“已選”太單薄。用TableCellRenderer為不同狀態(tài)渲染不同背景色既提升可用性又證明你理解了 Swing 的渲染機(jī)制。// StatusCellRenderer.java public class StatusCellRenderer extends DefaultTableCellRenderer { Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); String status (String) value; switch (status) { case 待選: c.setBackground(Color.LIGHT_GRAY); break; case 已選: c.setBackground(new Color(173, 216, 230)); // 淺藍(lán) break; case 已審核: c.setBackground(new Color(144, 238, 144)); // 淺綠 break; default: c.setBackground(Color.WHITE); } return c; } } // 在創(chuàng)建 JTable 后設(shè)置 table.getColumnModel().getColumn(4).setCellRenderer(new StatusCellRenderer());為什么值得講這不是 CSS而是 Java 代碼對每個單元格的逐個繪制控制。老師會意識到你不僅會用JTable還知道它背后是TableCellRenderer接口且能定制實現(xiàn)——這比“用過 Spring Boot”更有說服力。6.2 細(xì)節(jié)二用JOptionPane的showConfirmDialog實現(xiàn)二次確認(rèn)防誤操作“撤回選題”按鈕一點就刪太危險。加一層showConfirmDialog返回JOptionPane.YES_OPTION才執(zhí)行 JDBC 刪除這是最樸素的用戶保護(hù)意識。JButton withdrawBtn new JButton(撤回); withdrawBtn.addActionListener(e - { int result JOptionPane.showConfirmDialog( this, 確定要撤回該課題嗎此操作不可撤銷, 確認(rèn)撤回, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); if (result JOptionPane.YES_OPTION) { // 執(zhí)行 JDBC 刪除 selection 記錄 try { SelectionDao.deleteByStudentAndTopic( currentStudentId, selectedTopicId ); JOptionPane.showMessageDialog(this, 撤回成功); refreshTable(); // 重新加載 } catch (SQLException ex) { JOptionPane.showMessageDialog(this, 撤回失敗 ex.getMessage()); } } });答辯話術(shù)“老師這里我加了二次確認(rèn)因為選題是關(guān)鍵業(yè)務(wù)操作。如果直接刪學(xué)生手滑點錯就無法恢復(fù)。用JOptionPane是最輕量的方案不需要引入額外框架也符合桌面應(yīng)用的交互習(xí)慣?!?.3 細(xì)節(jié)三導(dǎo)出選題統(tǒng)計為 Excel用 Apache POI 而不是截圖答辯時老師常問“能導(dǎo)出數(shù)據(jù)嗎”截圖是下策用 Apache POI 生成.xlsx文件才是正解。只需 20 行代碼就能把JTable數(shù)據(jù)轉(zhuǎn)成 Excel且兼容 Office 和 WPS。// 導(dǎo)出按鈕事件 JButton exportBtn new JButton(導(dǎo)出統(tǒng)計); exportBtn.addActionListener(e - { try (XSSFWorkbook workbook new XSSFWorkbook(); FileOutputStream fileOut new FileOutputStream(選題統(tǒng)計.xlsx)) { XSSFSheet sheet workbook.createSheet(選題匯總); String[] headers {課題ID, 課題名稱, 指導(dǎo)教師, 專業(yè)方向, 選擇人數(shù)}; Row headerRow sheet.createRow(0); for (int i 0; i headers.length; i) { headerRow.createCell(i).setCellValue(headers[i]); } // 假設(shè)已有統(tǒng)計結(jié)果 ListStatItem ListStatItem stats ReportService.getTopicStats(); for (int i 0; i stats.size(); i) { Row row sheet.createRow(i 1); row.createCell(0).setCellValue(stats.get(i).getId()); row.createCell(1).setCellValue(stats.get(i).getTitle()); row.createCell(2).setCellValue(stats.get(i).getTeacher()); row.createCell(3).setCellValue(stats.get(i).getMajor()); row.createCell(4).setCellValue(stats.get(i).getCount()); } workbook.write(fileOut); JOptionPane.showMessageDialog(this, 導(dǎo)出完成選題統(tǒng)計.xlsx); } catch (IOException | SQLException ex) { JOptionPane.showMessageDialog(this, 導(dǎo)出失敗 ex.getMessage()); } });依賴添加pom.xmldependency groupIdorg.apache.poi/groupId artifactIdpoi-ooxml/artifactId version5.2.4/version /dependency我?guī)М呍O(shè)十年見過太多學(xué)生花兩周調(diào)通 Spring Boot Vue 前后端分離結(jié)果答辯時 Tomcat 突然報port 8080 already in use當(dāng)場崩潰。而用 Swing JDBC MySQL 的學(xué)生往往在答辯前夜還在優(yōu)化GridBagLayout的insets參數(shù)第二天演示時雙擊 jar 包界面秒開SQL 日志清清楚楚老師問哪句 SQL 怎么寫的他打開TopicDao.java指著prepareStatement就能講。技術(shù)沒有高低只有是否服務(wù)于目標(biāo)——畢業(yè)設(shè)計的目標(biāo)從來不是造輪子而是證明你有能力把需求、代碼、數(shù)據(jù)、界面嚴(yán)絲合縫地擰成一股繩。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久操视频在线观看| 超碰97综合网| 亚洲精品成人| 九九av| 人妻精品视频一区二区三区| 大香蕉日韩| 国产自产91区13区| 日韩无码嘿咻黑热久| 另类TS人妖一区二区三区| 天天大干大香蕉| 2026国产精品视频| 日日干夜夜骑| 一牛一区二区三区久久| 午夜天堂精品久久| 中文字幕在线观看网页| 婷婷亚洲中文字幕在线| 人妻人久久精品中文字幕| 91九色丨国产丨爆乳| 丰满人妻无码一区二区三区| 亚洲中文日韩欧美大香蕉视频| 亚洲网站一区二区在线| 伊人网高清| 91亚州欧美| 日本三级日本三级三级人妇四虎| 国产辣妈在线视频福利| 91天天综合网,天天综合网| 亚洲欧美日韩制服另类| 99热日| 高清无码国产亚洲| 丝袜美腿操av| 天天综合网国产| 色五月婷婷网| 激情五月天网站| 天天激清| 亚洲一区二区性爱电影| 久久人妻视频网| 走光一区92下载| 蜜臀99久| 亚欧洲日韩国产精品| 人人搡人人肉久久精品| 欧美在线啊啊啊| 国产熟女免费观看久久| 国产精品女生av| 一本一道波多野毛片中文在线| 亚洲精品乱码线路中文字幕 | 大香蕉日亚洲日本亚大 | 久久25| 青青草自拍视频在线播放| 六六久久日韩不卡| 97干天天| 青青草原伊人网| 丰满少妇精品一区二区| 欧美精品97| 中文字幕天堂在线| 日韩国产成人自拍视频| 亚洲强奸乱伦影视网| 国产高清MV操逼视频| 日日摸日日弄日日拍| 久久风骚城市人| 成人无码欧美一级A片狼牙直播| 国产91丝袜 在线播放| 亚洲有码视频二区| 18禁精品网站在线看| 中文字幕一区电影在线观看| 免费一级欧美片片线观看| 精品性爱一区二区| 黄总AV色图| 五月天婷婷小说| 天天爽天天操啊啊啊| 96AV久久久| 97婷婷色| 乱老女人一区二区视频| 青青操轻轻| 丁香婷婷九月| 欧美 综合 亚洲| 蜜臀久久99精品久久久久久无删减| 国产一区二区免费福利片| 五月色网| 日韩二区三四区五区六区在线看| 久久性爱视频免费看| 日亚韩精品视频二区三| 亚洲精品天天影视综合网 | 国产又粗又长又爽又色| 少妇精品久久| 视频国产成人精品日本亚洲18| 国产乱伦一二三区| 日韩欧美一级特黄大片| 久草资源在线视频官方总站日韩丝袜美腿 | 超碰人妻97| 人人摸人人叼| 999精品女人| 免费观看欧美日韩操逼视频| 中文字幕一区二区三区人妻不卡| 国产亚洲色婷婷久久99精品91葵花宝典| 欧美性天天影院| 极品尤物在线观看| 综合色色婷婷| 国产免费一区2区3区| 超碰9 7女人 | 九九成人| 午夜男女爽爽爽影院视频| 大香蕉在线视频15| 岛国视频一二三区| 九九九九九九综合| 图色综合网| heyZO天然素人无码AⅤ专区| 91久久精品美女高潮喷水| 精吧天堂| 制服乱伦| 中文字幕第9页萱萱影音先锋| 亚洲色堂免费视频| 欧美大的香蕉有线电视视频| 91无码中出人妻视频| 立川理惠被中出无码| 日韩中文字幕av在线播放| 欧美大香蕉同搞| 欧美天天综合网版| 日本道日本道中文字幕日本道最新日本道在线观看 | 18禁无码永久免费无限制| 999 久久久| 久久久久久久伊人精品| 日韩有码中文字幕女同性恋| 亚洲码在线中文在线观看| 日韩av在线免费网站| 偷拍网站久久男女男| 色婷婷视频| 四虎午夜影院| 国产熟妇 码视频户外直播| 欧美亚洲一级在线观看| 9色国产精品一区粉嫩 | 亚洲黄色AV电影| 综合网97| 九九九国产精品| yiren97| 玖玖在线视频| 天天综合网~91综合网| 久久‘黄片视频| 精品人妻一区二区蜜桃视频| 亭亭在线资源| 蜜乳av一区二区三区| 大肉棒导航| 欧美日本久久精品一区 | 日韩精品.久久精品.AV女优.天美传媒| 国产一级作爱毛片| 久久一二三四五六七八九区区区 | 亚洲情色婷婷五月天| 亚洲欧美精品一区天堂久久 | 婷婷性网| 亚洲男人的天堂一区二区| 婷婷五月天伊人| 免费网色网站| 四月丁香婷婷| 91麻豆一二三区| 97超碰色中文字幕| 78久久| 国产又色又粗又黄又爽| 国产黄色视频久久| 日韩人妻精品| 久久久蜜桃臀无码视频| 亚洲日韩在线a不卡99精品| 亚洲国产一级中文综合久久天堂在线免费观看 | blacked精品一区国产| 日本新免费二区三区| 久久精品99久久久久久| 久久在线观看免费视频 | 麻豆天天躁天天揉揉AV| 人干人人人操人人摸| 国产av强奸美女| 任你爽视频| 久久神马影院| 国产精品成久久久久午夜午夜| 操逼操逼视频操逼| 日本999精品| 国产精品乱码久久久久| 性爱av网站| 一区操逼日比视频| 九九热精品视频在线观看| av午夜玫瑰| 超91综合网| 欧美激情一| 日本一区视频在线观看| 综合 青草 伊久久 影院 综合| 欧美日韩国产精品久久色婷婷| 欧美一区二区日韩三区| 99r九九| 人妻人久久精品中文字幕| 伊人专区一区二区三区| 在线天堂999| 国产又黄又粗又猛大片| 天天操女人| 麻豆国产av网| 欧美激情 亚洲色图| 啊啊在线| 97 亚洲 日韩 欧美 在线| 夫妻AV网站| 国产男女无套视频免费观看| 亚洲 小说 欧美 激情 另类| 色五月综合| 国产97/欧美| 色欲天天综合网| 久久大香蕉97| 综合激情97 | 亚洲国产精品无码AV久久| 98一区二区精品| 青草成人免费视频一com| 亚洲天堂久久久久久粉红视频| 夜色综合| 操操碰| 久久二| 大香蕉伊人亚洲| 九月丁香| 国产精品96| 欧美暴力猛交| 婷婷色网| 在线看免费无码AV天堂的| 蜜臀网址在线| 久久综合久色欧美综合狠狠| 婷婷中文字幕| 久精品无码av一区二免费国产在线观看| 亚洲人精品久久久| 视频一区二区三区精品| 亚洲欧美九九九| 97色97干| 欧美日韩狠狠爱| 大香蕉一人在线| 狠狠操天天干| 国产日韩欧美三级片| 操逼逼一区视频| 欧美激情一区| 热热色青青草| 91色伦| 大香蕉亚洲中文| 九九内射在线| 99re在线| 激情五月天丁香| 日韩丰满熟妇| 特级毛片特黄久久免费看| 91精品国产91综合久久蜜臀| 久操国产在线| 91人妻最真实刺激绿帽| 亚av顶级裸体一区二区三区四区五区| 久久高清无码夜夜操| 啊啊啊啊啊在线观看网址| 精品人人插人人操| 97九色人妻| 超碰久久性爱| 欧美情色男人的天堂| 久久久久无码| 欧美日日夜夜| 日本人体九九九九九九| 国产精品探花视频| 欧美日韩国产中文超碰| 色五月天AV| 日韩欧美tv一区二区在线观看| 丁香色狠狠色综合久久小说| 日韩精品资源专区二区| 久操网址| 午夜精品一区二区三区三上悠亚| 玖玖人人爱| 亚洲操逼无码| 久久午夜色播影院免费高清| 亚洲男人的天堂在线看| 在线洲亚线| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 午夜男人天堂| 老女人日韩美91| 欧美熟妇亚洲版| 97欧美综合网| 丝袜剧情| 国产最新AV| 欧洲与亚洲欧美精品中文字幕| 黑人干亚洲| 一起草三级AV电影在线观看 | 精品久久久久久久久久久久| 特级丰满少妇一级AAAA爱毛片| 国产亚洲在线观看| 日本东京热大香蕉a片| 欧美综合天堂| 岛国AV一区二区电影| 东北老女人的激情视频| 女人久久久| 婷婷色婷婷| 久热精品色情| 成在线人在线观看视频| 天天亚洲综合| 大肥女高潮bbwbbwhd视频| 99久久婷婷国产综合| 午夜后入| 日韩在线观看中文字幕视频| 日本免费亚洲欧美| 天堂俺去俺来也www久久婷婷| 亚洲免费看片| 欧美激情 亚洲色图| 黄色高清无码无码破解免费暗网| 大香蕉伊然在亚洲91| 中文字幕一区二区在线日韩精品| 97 国产一区| 99久久精品无码一区二区毛片免费| 91久热| 91老司机视频| 欧美三级免费伊人| av日韩国产一区二区| 日韩精品电影| 长长久久免费视频| 久久精视频美日韩在线视频| 久久久久久久极品香蕉视频| 亚洲高清无码AAA久久久精品| 婷婷色综合| 亚洲黄日韩无码专区| 美女诱惑久久| 动漫片子网站3黄| 永久免费av无码网站国产app | 超碰9 7女人| 亚洲欧美经典一区二区| 久久AV无码AV| 天天干夜夜操一区二区| 夜夜夜久久| 国产av波波国产精品| www久久精品| 国产精品视频电影| 婷婷99狠狠| 天天日夜干| 熟女五十路一区二区三| 91处女视频在线观看| 超碰95| 加勒比伊人影院| 熟女啪啪视频| 综合婷婷| 中文字幕 国产区| 无遮挡男女激烈动态图| 亚洲性综合11| 久夜视频| 成人久久久精品| 91老司机在线视频免费观看| 久久老子无码午夜伦不卡| 国产精品视频91久久| 精品久久久久综合无码| 欧洲一区二区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 91亚洲狠狠色| 青青欧洲黑| 香港成人一级视频在线青青草| 91狠狠综合久久| 99久久久久| 亚洲另类久操网| 国产AV毛片| 国产日韩在线播放av| 久久丁香| 免费黄色视频网址| 日韩精品 资源| www黄片免费看com| 99视频精品| 亚洲av在线免费观看| 天美传媒av 在线| 99热超碰| 精品国产无码中文| 熟女激情综合网| 欧美一级二级三级| 玖玖爱综合网| 96精品久久久久久久久久| 家庭乱伦国产| 亚洲av综合色区图片亚洲| 日本视频在线观看污污污| 国产一区二区在线电影| 一道本久久棕合爱| 亚洲的天堂网| 超碰97人妻| 国产操操日韩三级黄| 久热这里只有精品9| 十八禁成人网站在线观看| 5月婷婷6月六月丁香| 精品少妇一区二区三区在线视频| 草莓精品视频| 久久人妻无码毛片A片麻豆| 97 色综合| 国产丸一视频| 97综合在线观看| 超碰人妻中文在线| 欧美第二页| 97超碰jingpin| 又黄又粗又硬又长又大| 中文字幕熟女人妻丝袜丝| 久久亚州精品成人Av无| 五月丁香啪啪网| 伊人久久久日韩一区| 成人久久久| 婷婷啪啪| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 爱逼综合| 久久久久成人蜜桃精品| 黄色一区三区| 国语精品内射在线观看| 亚洲图片 激情小说| 色欧洲97| 91无码人妻| 久久久一区二区三区麻豆| 干干干天天| 欲香欲色| 人妻夜夜爽天天爽麻豆三区网站 | 日韩成人私密一级精品av| 97五月天| 国产第12页| 亚洲精品国产av天美传媒| 新久久AV| 天天影视91看看| 99热97| 你懂的在线观看区国产| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 伦理日韩国产久久| 尤物一级在线免费观看| 快播电影网日韩新片| 少妇精品久久久| 久久美女国产| 自拍欧美| 激情五月婷婷| 人人模人人看| 国产精品久久久久久9999| 日韩成人大片一区二区| 青青草原香蕉日本Ap| 国产剧情一区在线观看| 久久午夜鲁丝片| 午夜精品久久久久| 色情五月婷婷| 天美av在线观看| 麻花豆传媒剧国产MV出差| 高潮的A片激情扒开一区| 日韩精品1区2区中文字幕| 丁香五月久久| 亚洲精品乱码线路中文字幕| 精品人妻视频一区二区在线播放 | 密臀在线一区尤物| 亚州色图欧美| 污啪啪啪视频| 日韩亚洲Av人人夜夜澡人人爽| 蜜臀久久99精品久久久久久婷婷 | 综合久久久久久久综合网| 亚洲 欧美 日本 国内 首页| 哈哈操电影AV| 日韩人体偷拍| 91网站18+| 激情久久av一区av二区av| 亚洲大色堂| 美美91成人国产精品欧美精品久久久久久久| 色在线视频导航| 九九九九九用不成了| 六月婷婷激情| 亚洲激情网| 黄片不用下载在线观看| 中文字幕一区电影在线观看| 亚洲 欧美 日韩 国产一区二区| 国产中文字幕在线观看| 青青草亚洲一区| 超碰人人干| 手机在线看片免费人成视频| 国产成人亚洲精品无码最新在线| 亚洲色婷婷久久久综合日本| 国产视频第二页| 久久久久久综合久久伊人蜜月| 333kkkk·亚洲com久久| 久久久精品网站| 久久久久9999| 国产精品熟女丝袜一区二区| 黄在线| 日韩无码黄色片| 欧美日韩国产高清在线一二三区 | 精品日韩人妻精品一二三区| 日韩在线欧美精品一区二区| 三级三级三级a级全黄三| 风流老熟女一区二区三区l| 强奸乱伦中文字幕AV| 亚洲欧美在线观看2021| 九九九九久久久| 亚州成人A√| 久热久| 久久精品操| 日韩精品在线观看网站| av天堂手机版追回| 成人网址在线观看| 亚洲av热热色| 成人在线视频一区| 蜜臀AV成人精品蜜臀| 蜜臀精品1区2区| 青青欧洲黑| 欧美老妇女内射网址| 97就爱干| 在线免费观看高清无码视频| 影音先锋日本乱伦| 夜夜夜夜久久久久| 国产综合网站在线播放 | 五月天我淫我色av| 无码高清少妇久久| 99爱爱| 欧美午夜色妇色鬼| 亚洲日韩美女中文字幕乱| 亚洲 欧美综合| 国产毛片毛片4p懂色| 欧美在线观看综合国产| 天天夜夜久久| 精品国产Av无码久久久亚洲| 日本日逼视频网| 97亚洲一区| 色妇综合网| 欧美一级A片在线看视频性色| a人欧美综合天堂麻豆| 亚洲国产熟妇综合色专区| 黄片在线免费在线观看| 亚洲AV在线资源| 自拍偷拍 日韩无码| 亚熟hd视频在线| 欧美激情性久久久久久| 夜精品久无码| 久久香蕉国产线看观看猫咪av| 99蜜桃臀久久久欧美精品网站| 国产精品点击进入在线影院| 玖玖久久久| 大香网伊人久久综合| 99色婷婷| 欧美极品女人的天堂| 狼天天狼天天大香蕉| 欧美亚洲系列| 久久久影院| 黄色AV免费| 男人的天堂啪啪| 日韩十八禁| 欧美熟女激情| 91精品无码人妻系列| 国产人妻精品一区二区三区秋霞| 欧美极度丰满熟妇hd| 男人天堂东京热| 中文字幕天天操| 国产精品无码在线| 亚洲男人天堂AV| wuyechaopeng| 亚洲中文字幕乱码无码一区二区| 操逼大黄片| 亚洲在线91| 黑人精品久久97| 国产乱码久久| 8050无码八戒| 尤物网址| 亚洲AV永久无码精品成人调教| 精品久久久久久亚洲| 中文人妻av高清一区| 老女人综合| 亚州高清av| 亚洲91在线| 亚洲青青草| 啊啊啊啊啊好大好舒服想要| 久久精品中文字幕女同| 女人高潮大叫一级毛片| 日韩精品在线观看观看| 超碰97久久| 性色综合网| 大逼色网站| 2020天天色综合| 青青草无码视频| 尤物av网站| 97中文超碰| 第一高清av中文字幕| 亚洲激情综合另类男同| 欧美日韩黄片精品在线| 日本色色色网站免费看不卡| 97免费视频在线| 国产区在线| 99re视频在线播放青草| 少妇淫妇久久久久久久| 97aiaiai| 日本一区二区成人在线| 91成人在线免费视频| 囯产精品久久久久久久久久梁医生 | 国产精品网址| 91精品丝袜久久久久久无码人妻| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 操逼日韩无码| 国产欧美岛国精品一区| 午夜寂寞欧美| 最新国产精品久久精品| 欧美18老人禁| 一本色道无码DVD中文字幕| 亚洲一区二区三区春色| 尤物网站91| 国产亚洲99久久精品熟| 麻豆天天躁天天揉揉AV| 91精品国| 色欧洲| 久久九色| 亚洲日韩精品久久久久一区壹牛| 操逼操2| 日韩极品无码B| 国产无马在线| 中国一级特黄大片护士| 女人双腿搬开让男人桶| 亚洲欧美天堂在线| 日日夜夜噜| 91热色| 无码不卡亚洲成?人片| 青青青国产手线观看视频2| 粉嫩av平台| 国内精品伊人久久久久影院会| 九九99精品视频在线观看| 欧美色吧综合| 女人天堂av在线播放| 精品无码久久久久久久杏吧| 97 亚洲 日韩 欧美 在线| 欧美综合另类| 久久超碰网| 国产精品亚洲四五区在线观看| 激情综合网一盗摄| 一本久道久久综合狠狠爱一密臀精| 国产精品一区二区密臀| 九色在线熟女国产黑人| 国产60区。| 超碰诱惑| 国产精品青草综合久久| 综合日韩激情另类图片| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 少妇久久久久久久久| 中国东北熟女老太婆内谢| 欧美中文字幕男人天堂久久精品| 91黄射| 午夜AV人气不卡| 黄色二级片网站| 免费观看一区| 啊啊啊在线观看免费视频| 精品久9| 日本免费中文一区二区三区四区| 亚洲欧美天| 成人性爱全视频观看| 曰韩少妇无码| 色久桃花影院在线观看| 东京热不卡视频| 中国国国产一级特黄毛片| 久久久久久久久久久久九| 性久久久| 久草毛片| 日本天天操| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 97人妻色| 在线无码视频| 91九色丰满高潮| 丁香五月激情网| 成人26uuu| 精品久久大胆人体| 色色婷| 欧美成人A√在线一区二区| 少妇与黑人高潮在线| 久久天天艹| 色97国产69香蕉| 男人的天堂2010| 天天影视色香欲综合网小说| 69久久久久久久久久久久久| 伊人五月天| 人人艹亚洲| 日本 情色 1区| 欧美在线l亚洲| 麻豆久久久一区二区| gogogo免费高清看中国国语| 在线播放欧洲免费av| 国产精品91ai| 97人人模人人爽人人| 人人操人人爽人人操人人| 久肏视频字幕| 亚洲熟妇AV日韩熟妇在线| 伊人91| 欧美另类综合久久| 国产精品美女在线一区| 超碰97综合在线| 黄页视频网站野外| 欧美制服网站美腿丝袜| 久久久久久久唑| 欧亚第一综合网| 午夜福利视频在线一区| 26uuu性| 日韩操逼性鲍| 无码丰满熟妇一区二区浪潮AV| 欧美夜夜| 91少妇人妻| 人人澡人人干| 国产激情视频一区区三区| 九久久精| 超碰97中文| 欧美操人视频| 国产精品爆乳懂色蜜乳| 亚洲在线网站| 日韩欧美中文日韩欧美色| 香蕉久久AⅤ...| 国产1769在线| 99精品欧美一区二区三区桃色| 国产精品无码av在线| 国产精品自在线发布| 久久老子无码午夜伦不卡| 欧美亚洲日本激情在线| 狠狠操狠狠爱| 国产精品午夜成人福利| 夜夜嗨老熟女AV一区二区三区| 超碰97首页| 日韩av电影网站| 精精品人妻一区二区三区| 色吧91| 一级AV性爱| 殴美大黄片| 伊人久久国产免费观看视频| 97欧美色综合| 秋霞一集毛片观看| 国产精品成人无码av| 亚洲有码 欧美精品| 国产日韩欧美| 色色五月天婷婷| 伊人网综合在线视频| 久久久久久中文版| 1024人妻熟女一区二区三区| 欧美传媒一区| 嗯嗯啊啊用力视频免费| 99久久99久久免费精品蜜臀| 91丝袜美女| 熟女网站最新| 另类亚洲一区二区三区| 午夜免费视频1000| 精品大全99999| 全球成人中文在线| 热热色综合网| 精品久久久高清无码| 人人天天欧洲| 国产精品久久久久999| 亚洲第一页色网| 国产一区二区视频在线播放| 欧美性Fer办公室秘书| 顶级丝袜熟女一区二区三区 | 天天摸,夜夜摸| 好爽免费视频| 97精彩视频网站| 精品久久久久久中文字幕视频免费| 色婷婷久久| 又粗又长又大国产不卡| 欧美视频激情久久久久久| 97天天操| 操B久久| 国产欧美精选自拍一区| 爱爱动态试试看6 0秒| 97碰| 色五月天AV| 亚洲图片欧洲图片aⅴ| 精品人妻一区二区三区视频在线| 中文字幕日韩综合| 久久久国产av美女私房| 爱丝福利| 青青草十区九区爱夜| 亚洲 自拍偷拍 欧美| 爱妻综合网| 丁香五月成人| 亚欧日韩成人| 无码精品久久| 久久97| 夜夜爽夜夜操| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 97人妻碰碰中文无码久热丝袜| 色爱亚洲| 久久久内射良家| 99国产天美| 国产一区二区三区精品观看啪| 国产精品999aaa| 亚洲色性| 激情文学小说一区二区| 美女露胸露尿口| 成人性爱电影一区二区| 91成人久久| 台湾一区国产高清在线| 91国产丝袜白虎| 亚洲无限观看| 97频视在线| 性生活无遮挡纯毛片在线看| 内射中出日韩在线观看视频| 亚洲春色激情小说| 一起草视频在线| 中文字幕精品一区二| 一级性爱网| 国产家庭乱伦性爱视频| 免费观看性欧美一级| 性色AV蜜色av色欲av| 亚洲精品久久久久毛片A片拉屎 | 99在线精品观看视频中文 | 大屁股人妻女教师撅着屁股| 欧美传媒| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 人人操人人色网| 91处女在线观看| 3P乱轮视频| 996热| 亚洲情色1区| 一区二区不卡免费| 性夜影院爽黄A爽免费动漫| 亚洲自拍天堂| 婷婷色婷婷| 蜜臀一二三| 四虎午夜影院| 懂色AV一区二区三区| 亚欧美综合网。| 天天肏天天干| av天堂5| 天天看特黄的免费网站| 欧美色院| 色噜噜人妻丝袜a∨先锋影| 蜜臀国产AV中文字幕| 97草草| 豆花视频操逼网址| 亚洲少妇色| 久久久亚洲精品中文字幕人妻| 国产精品久久久久无码Av网曝门| 啪啪啪大香蕉| 亚洲国产97在线精品一区| 国产亚洲精品久久久久小| 麻豆av一区二区三区| 亚洲色欧美| 91色图片| 中文字幕日韩专区精品系列| 尤物av网站| 久久这里只精品免费福利| 欧美中文字幕日韩在线| 亚洲AV高潮| 日本 色 导航| 欧美肥臀在线| 九色97| 神马久久久久久| 三上制服丝AV| 国产精品久久久久亚洲av| 久久亚洲天堂| 99热| 艹精品| 国产精品熟女AV中文字幕在线播放| 天天草天天日| 久久人妇| 91狠狠色丁香婷婷综合久久精品| 黑人综合网| 激情综合av| 极品极品色影院| 婷婷av在线中文字幕| 伊人久久亚洲色欲综合网站| 亚洲?V无码专区在线电影| 欧美综合777| 中字乱伦AV| 大香蕉黄色一级片免费看| aV中文麻| 韩国女主播青草在线| 中文字幕在线高清男人的天堂| 97欧美日韩| 亚洲九九视频在线观看| 1区2区3区中文字幕日韩| 欧美丰满熟妇XXXX性ppX人交| 97超碰人人操人人操| 高清无码91| 9精品在线| 欧美 中文字幕 一区| 六月婷婷激情| 99热啪啪| 999国产精品999| 成人五级久久| 无码久久国产| 视频不卡中文字幕| 黄页| 高清无码学生妹高潮| 伊人久久亚洲色欲综合网站| 亚洲欧美成人网站AAA| 亚洲色图第一页| 久久r精品| 97超碰色中文字幕| 1204人成网站色www| 亚洲97网站| 国产精品对白自产拍| 美女爽到高潮91| 91情色在线| 欧美人妻少妇| 操b在线观看| 三男一女不戴套的A片| 欧美v日韩v亚洲v最新在线| 久久久性| 69少妇一区二区| 免费观看国产小粉嫩喷水精品午| 欧美日韩日产免费网站看| 熟妇xxxxx性春色| 亚洲,日韩,欧美,成人播放| 欧美性爱伊人| 五月丁香婷婷综合| 国产乱弄免费在线视频。| 色偷偷2020免费视频播放| 无码78| 波多野结衣被操50分钟免费视频| 人妻啪| JULIA一区二区三区在线播放| 久久国产视频性吧| 淫色网综合| 校园春色美腿丝袜 | 久这精品中文在线观看视频| 人人操人人爽人人操人人| 双插性欧美一二三区| 五月天婷婷色色| 久久精品老司| 男人的天堂亚洲| 超碰97资源中文字幕| 大香蕉99re| 二男一女成人A片| 亚州色图第三区| 青青草玖玖爱| 一起草视频在线| 久久伊人五月天| 佐山爱中文字幕| 欧美第二页午夜| 手机在线中文字幕国产 | 成人小说视频在线精品欧美| 天天弄天天操| 成人三级片一区二区三区视频| 亚洲无码?第一页| 啊啊啊在线观看免费视频| 亚州熟女乱伦| 中美日韩毛片| 极品综合| 五月开心久久AV官网| 国产精品久久天天干| 亚洲熟妇无码一区二区三区| 精品在线蜜臀| 精品人妻二区三区| av一区二区三区四区| 久久婷婷亚洲欧| 丁香六月东京热| 青青草一本道福利视频| 五月激情综合网| 亚洲国产精品无码AV久久| 大香蕉综合| 玖玖资源综合在线视频| 久男人久久| 欧美超碰9798| 久久成人国产精品| 91无码人妻| 亚洲天天艹| 欧美性爱精品七区| 热久日综合| 日韩高潮一区| 午夜120视频在线观看| 午夜毛片亚洲精品片国产久久久| 热天堂一区二区| 综合欧美日本三级| 精品三级在线专区| 亚洲日本大香蕉1| 亚洲淫色网中文| 国产精品色色| 黑人狂躁日本妞一区二区三区| 999热这里只有精品| 综合av影片| 97天天综合网| 日产狠狠干| 亚州操逼网| 精品国产乱码久久久久久蜜臀| 日本黄大片在线观看视频| 91色宗合| 97操B| 丝袜色综合| 亚洲综合网电影91| 亚洲一本大道中文字幕无码在线| 26uuu最新| 天天干18禁| 亚洲欧美黄| 日比av无码| 激情文学小说一区二区| 久久999久| 麻豆国产成人精品| 色色综合97| 国产成人主播| 久湿久久| 天天操天天日青青草超碰av| 久久日本熟女精品一区| 欧美制服网站美腿丝袜| 欧美天天拍| 久久一二三四五六七八九区区| 67194无码不卡| 久久一区二区加油站| 国产精品久久久久久夜夜夜夜| 啊啊啊啊好疼视频| 91亚洲狠狠色| 蜜臀久久99精品久久久| 综合av社区| 浪人综合网| 超碰 97国产熟女| 久久综合精品一区二区三区| 麻豆AV短剧| 九一国产精品| 美女黄网| 欧美亚洲色图另类国产| 福利色色| 九九九久千久久激情蜜桃在线看 | 亚洲中文字母在线播放| 欧亚综合一卡二卡中文字幕| 青青草啪啪网| 青娱乐妇女性生活| 成人麻豆av电影网站| 大香蕉综合网| wuyechaopeng| 国产成人拍国产亚洲精品| 亚洲一本色道中文无码aV天美| 日韩操人| 久久成人午夜狠狠| 人妻偷拍一区二区三区| 欧美视频在线视频免费va| 综合影院亚洲| 欧美九九九| 欧美一级做a爰片免费视频| 97国伦国色| 超碰在线人妻中文字幕| 色婷婷视频| 九九九九亚洲| 九九色图| 欧美 日韩第一性色| 亚洲啪啪视频免费| 国产精品经典一卡久久久 | 四虎国产精品永久在线囯在线| 亚洲成人av电影在线| 国产精品久久久久绯色| 欧美,日韩,中文,另类| 强奸乱伦av电影| 天天日熟妇| 久久久精品成人国产| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 五月丁香六月| 色九久| 九久9热| 中国AV美女| 亚洲天堂性爱| 午夜在线播放| 天堂蜜桃无码视频一区二区| 亚洲色人阁| 操人妻丝袜高跟| 亚洲综合20p| 国产久久久久久久久一区二区| 久久亚洲天堂| 手机在线看片免费人成视频| 久久一二三四不卡 | 亚洲国产av中文字幕久久| 91女优在线观看| 精品区9| 免费观看的黄色的网站| 欧美BT 亚洲色图| 污到发麻的视频 国产| 免费在线黄片视频| 亚洲久久久久| 97视频新免费| 人妻一区久久二区三区色播| 高清在线偷拍自拍视频| 国产偷拍网站| 亚洲交性| 日韩综合色网| 91天美传媒精品| 色婷婷丁香五月| 久久毛卡| 国产一区二区三区视频在线看| 国产精品毛片| 日本不卡高清免v欧美日韩在线观看| 亚洲欧美日韩制服另类| 亚州欧美在线| 精品无码一二三四区| 麻豆精品久久久久久久| 亚洲小电影免费涩涩成人在线高清| 天天干人人乐| 人妻蜜桃臀| 蜜臀99久久精品久久久久久| 天天综合有色网| 91视频观看网站| 日韩AV电影网站| 麻豆60秒| 翘臀vidoes| 欧中日成人免费影视| http://qxhbdz.com| 日韩紧密久久| 久久亚州高清| 亚洲精品1区| 久热久| 久久99干一本高清| 东京热91| A级毛片在线看免费| 欧美不卡在线一区二区| 日本免费中文字幕在线| 精品v日韩欧美国产| 婷婷久草| 亚洲欧洲视频小说在线观看| 哈哈操电影AV| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 校园春色之综合网| 天天操天天射青青草| 色踪合AV| 啊啊啊在线观看| 97国产成人精品免费视频| 一区二区播放| 91丝袜| 美国一区二区三区视频| 日本一级一级一级一级| 麻豆国产av网| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 国产精品爽爽va在线观看98| 国产伦精品一区二区三区视频女| 欧美少妇第一页| 一区二区三区四区理论片| 综合色好色| 日本99久久| 免费超碰97久久| 小日子操bb在线看| 日本三级久| 大逼色网站| 91九色网| 青青草公开在线免费不卡视频| 中国一级操逼视频| 久久婷婷伊人| 无码二级三级| 日韩欧美午夜视频在线| 欧美少妇色综合| 精品久久无码午夜福利| 国内精品999| 日本精品五区| 黄色网址久久精品欧美喷水| 91殴美| 久久久久国产亚洲一区欧美色图日韩 | 九九九九九九视频| 日韩熟女无码| 欧美狠狠弄| 久久精品人人做人人看| 久草精品国产蜜臀| 久久国产性爱| 999久久久久久久久| 六六久久日韩不卡| 97九色| 亚洲精品国产av天美传媒| 亚洲天堂五月天国产| 超碰这里只有精品| 91碰超| 精品人妻一区二区三区四区| 婷婷五月天色色| 欧美亚洲天堂| 九九九热精品| Julia在线播放亚洲久久| 精品国产91内射久久| 伦在线97| 狠狠 91| 太久视频| 日本影视久久免费| 亚洲中文字幕久久无码精品| 中出91| 91精品无码人妻系列| 不卡视频一区蜜桃视频| 久久久久久中文版| 婷婷久久综合久| 欧 美 自 拍 偷 拍| 91美女视频| 亚洲人久久久网| 美女91在线观看| 色播五月丁香| 日本亚洲熟女视频| 国产成人亚洲精品无码古代早漏男| 少妇精品| 无码操逼天堂| 日韩女优在线| 老色69| 人妻少妇视频在线播放| 牛黄色久午久| 性爱av在线免费观看|