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

ARTICLE DETAIL

資訊詳情

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

基于Java與MySQL的柑橘類水果管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

基于Java與MySQL的柑橘類水果管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 簡(jiǎn)介本資源是一款面向農(nóng)業(yè)信息化管理場(chǎng)景的Java企業(yè)級(jí)應(yīng)用源碼適用于水果種植企業(yè)、農(nóng)產(chǎn)品流通公司及高校計(jì)算機(jī)專業(yè)課程設(shè)計(jì)與畢業(yè)項(xiàng)目實(shí)踐。系統(tǒng)聚焦柑橘類水果全生命周期管理覆蓋生產(chǎn)記錄、庫(kù)存監(jiān)控、銷售跟蹤與物流追溯等核心業(yè)務(wù)助力提升農(nóng)業(yè)數(shù)字化運(yùn)營(yíng)效率。壓縮包共554個(gè)文件總大小39.79MB包含120個(gè)Java業(yè)務(wù)邏輯源文件、179個(gè)XML配置文件用于數(shù)據(jù)庫(kù)連接、Spring框架及系統(tǒng)參數(shù)管理、2個(gè)SQL建庫(kù)腳本、2個(gè)IntelliJ IDEA項(xiàng)目配置文件iml、1個(gè)JSON數(shù)據(jù)文件、1個(gè)Cookies會(huì)話文件及1個(gè)HTTP請(qǐng)求調(diào)試文件結(jié)構(gòu)完整、模塊清晰具備開箱即用的工程化特征。已有285人學(xué)習(xí)下載配套readme.txt提供快速部署指南doc目錄下含設(shè)計(jì)文檔與技術(shù)說明便于開發(fā)者理解架構(gòu)、二次開發(fā)或教學(xué)演示。 做管理系統(tǒng)這活兒說難不難說簡(jiǎn)單也不簡(jiǎn)單。尤其是“基于Java語言的柑橘類水果管理系統(tǒng)”這類題目幾乎是Java課設(shè)和畢設(shè)里出現(xiàn)頻率最高的類型之一。前兩天還有學(xué)弟拿這個(gè)題目來找我說自己網(wǎng)上找了一圈要么源碼跑不起來要么代碼風(fēng)格亂七八糟看不懂。我干脆把自己整理過的一套完整資料重新梳理了一遍從項(xiàng)目結(jié)構(gòu)、數(shù)據(jù)庫(kù)設(shè)計(jì)到核心代碼實(shí)現(xiàn)、環(huán)境配置再到那些一踩一個(gè)準(zhǔn)的坑全部寫出來。無論你是準(zhǔn)備交課程設(shè)計(jì)還是想拿一個(gè)“能講清楚、能演示、能擴(kuò)展”的Java項(xiàng)目去面試這篇都值得收藏。這套系統(tǒng)本質(zhì)上是典型的信息管理系統(tǒng)核心業(yè)務(wù)就是水果檔案管理、入庫(kù)、出庫(kù)、庫(kù)存查詢和一些基礎(chǔ)統(tǒng)計(jì)報(bào)表。之所以落到柑橘類水果這個(gè)具體的業(yè)務(wù)域是因?yàn)樗确悍旱摹俺泄芾硐到y(tǒng)”更有辨識(shí)度帶上了品種、產(chǎn)地、成熟季節(jié)、保鮮期、糖度這些農(nóng)業(yè)屬性字段分析和設(shè)計(jì)空間大擴(kuò)展到其他農(nóng)產(chǎn)品也順理成章。1. 項(xiàng)目整體設(shè)計(jì)與技術(shù)選型1.1 為什么這種課設(shè)項(xiàng)目都愛用Java MySQL先說技術(shù)選型。市面上的管理系統(tǒng)項(xiàng)目主流無外乎三種路線Java Web MySQL、Java Swing 文件存儲(chǔ)、Java Swing/JavaFX MySQL。我看過很多同學(xué)自己選型有人圖省事用SQLite有人干脆把數(shù)據(jù)存在文本文檔里跑是能跑但答辯的時(shí)候很容易被老師一句“如果數(shù)據(jù)量變大怎么辦”問倒。我建議用 Java Swing 做界面 MySQL 做數(shù)據(jù)存儲(chǔ) 原生 JDBC 做數(shù)據(jù)訪問理由有三點(diǎn)。第一Swing 是Java自帶的桌面GUI框架不需要引入額外的前端工程也不需要啟動(dòng)Tomcat。對(duì)課程設(shè)計(jì)來說一個(gè)可執(zhí)行JAR或者直接IDEA里運(yùn)行就能看到完整界面演示非常方便省去了部署環(huán)境的干擾。第二MySQL 是主流關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)安全性和查詢能力都比文件存儲(chǔ)強(qiáng)外鍵、索引、事務(wù)這些數(shù)據(jù)庫(kù)核心特性都能用上寫文檔的時(shí)候有大量可寫的技術(shù)點(diǎn)。第三JDBC 是Java訪問數(shù)據(jù)庫(kù)的底層標(biāo)準(zhǔn)接口用它能真正理解連接、Statement、ResultSet、事務(wù)提交回滾這些概念之后再學(xué)MyBatis、Hibernate會(huì)快很多。很多同學(xué)一上來就想用 SSM、Spring Boot 那套不是說不行但那是另一個(gè)維度的復(fù)雜度??蚣馨姹緵_突、Maven依賴下載失敗、注解掃不到包……任何一個(gè)問題都可能讓你在環(huán)境階段卡一整天。先老老實(shí)實(shí)把 JDBC 版本跑通再談框架這是我對(duì)大部分人最真誠(chéng)的建議。1.2 柑橘類水果系統(tǒng)的業(yè)務(wù)模塊怎么拆登錄模塊之外我會(huì)把系統(tǒng)拆成五個(gè)核心模塊模塊職責(zé)說明典型操作水果檔案模塊維護(hù)柑橘類水果的品種信息比如砂糖橘、臍橙、沃柑、丑橘、蜜柚等字段包括品種名、類別、產(chǎn)地、參考糖度、保鮮天數(shù)、季節(jié)新增、修改、刪除、按品種模糊查詢供應(yīng)商模塊管理供貨商信息記錄聯(lián)系人、電話、地址入庫(kù)時(shí)選擇對(duì)應(yīng)供應(yīng)商新增、修改、刪除入庫(kù)管理模塊采購(gòu)入庫(kù)生成入庫(kù)單和庫(kù)存批次自動(dòng)累加對(duì)應(yīng)品種庫(kù)存新增入庫(kù)單、查看入庫(kù)歷史出庫(kù)/銷售模塊銷售出庫(kù)扣減庫(kù)存記錄銷售訂單和銷售明細(xì)校驗(yàn)庫(kù)存是否充足新增銷售單、查看銷售歷史庫(kù)存與統(tǒng)計(jì)模塊按品種統(tǒng)計(jì)當(dāng)前庫(kù)存、月度入庫(kù)總量、銷量Top榜、庫(kù)存預(yù)警刷新統(tǒng)計(jì)、按時(shí)間段篩選這五個(gè)模塊拆完之后功能邊界就非常清晰檔案和供應(yīng)商是基礎(chǔ)數(shù)據(jù)入庫(kù)和出庫(kù)是業(yè)務(wù)流水統(tǒng)計(jì)是目的。我見過有人把入庫(kù)、出庫(kù)、庫(kù)存全寫在一個(gè)類里方法幾百行表面上看代碼量很大但可維護(hù)性很差。模塊拆開的另一個(gè)好處是寫文檔好寫寫代碼好分工答辯也容易解釋。1.3 代碼包結(jié)構(gòu)讓答辯老師一眼看懂分層我知道很多人習(xí)慣把所有類都堆在同一個(gè)包下面命名也從MainFrame、Test、Utils亂取。這種代碼老師一眼就能看出沒有工程素養(yǎng)。我建議包結(jié)構(gòu)按分層來組織這是Java EE和桌面應(yīng)用開發(fā)里通用的思想也是一種“習(xí)慣性正確”。我整理后的源碼包結(jié)構(gòu)是這樣的src/main/java/com/citrus/ ├── entity/ // 實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表 │ ├── User.java │ ├── Fruit.java │ ├── Supplier.java │ ├── StockRecord.java │ └── SaleOrder.java ├── dao/ // 數(shù)據(jù)訪問對(duì)象封裝JDBC操作 │ ├── UserDao.java │ ├── FruitDao.java │ ├── SupplierDao.java │ ├── StockDao.java │ └── SaleDao.java ├── service/ // 業(yè)務(wù)邏輯層處理規(guī)則校驗(yàn)和事務(wù) │ ├── AuthService.java │ ├── FruitService.java │ ├── StockService.java │ └── SaleService.java ├── ui/ // Swing界面 │ ├── LoginFrame.java │ ├── MainFrame.java │ ├── FruitPanel.java │ ├── StockPanel.java │ └── StatsPanel.java └── util/ ├── DBUtil.java // 數(shù)據(jù)庫(kù)連接工具 └── TableUtil.java // 表格刷新工具entity對(duì)應(yīng)表結(jié)構(gòu)dao只寫增刪改查SQLservice負(fù)責(zé)業(yè)務(wù)規(guī)則比如庫(kù)存不足不能出庫(kù)ui只管渲染界面和調(diào)用service。這個(gè)順序是單向依賴ui - service - dao - entity。違反這個(gè)方向?qū)懘a后面改需求的時(shí)候就知道痛苦了。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)戰(zhàn)一張好表勝過十行代碼2.1 柑橘類水果建模的特殊字段數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)系統(tǒng)最核心的部分。給柑橘類水果做管理系統(tǒng)和給圖書做管理系統(tǒng)的差別不在“管理”兩個(gè)字而在“水果”這兩個(gè)字的業(yè)務(wù)屬性上。柑橘類水果有幾個(gè)非常明顯的行業(yè)特征。第一是品種維度多且差異大砂糖橘是寬皮柑橘臍橙是甜橙類柚子又是另一大類不同類別的存儲(chǔ)要求不同。第二是季節(jié)性很強(qiáng)砂糖橘集中在冬季上市夏橙夏季成熟一個(gè)良好的管理系統(tǒng)應(yīng)該能記錄每一個(gè)品種的成熟月份和最佳銷售季節(jié)。第三是保鮮期短柑橘類比不了蘋果銷售計(jì)劃要基于保鮮周期做預(yù)警。我把這些字段都設(shè)計(jì)到了水果檔案表里包括類別、產(chǎn)地、上市月份、參考糖度、保鮮天數(shù)、參考售價(jià)、最低庫(kù)存量。這些字段看起來平平無奇但答辯時(shí)如果老師問“你這個(gè)系統(tǒng)的業(yè)務(wù)特點(diǎn)是什么”你完全可以指著表說普通的水果管理系統(tǒng)只記錄名稱和價(jià)格而這里通過保鮮天數(shù)實(shí)現(xiàn)了臨期預(yù)警通過參考糖度輔助分級(jí)定價(jià)通過最低庫(kù)存量觸發(fā)補(bǔ)貨提醒。這就是業(yè)務(wù)建模的價(jià)值。2.2 核心表結(jié)構(gòu)與完整建表SQL我整理出的這套庫(kù)一共六張表名字和字段我都起得比較規(guī)范全部小寫加下劃線沒有用中文表和字段名。建表腳本如下CREATE DATABASE IF NOT EXISTS citrus_manage DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE citrus_manage; -- 用戶表 CREATE TABLE sys_user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(30) NOT NULL UNIQUE, password VARCHAR(64) NOT NULL, real_name VARCHAR(30), role VARCHAR(20) DEFAULT ADMIN, create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 水果檔案表 CREATE TABLE fruit ( id INT PRIMARY KEY AUTO_INCREMENT, variety VARCHAR(50) NOT NULL COMMENT 品種名稱, category VARCHAR(20) COMMENT 類別橙類/橘類/柚類/檸檬類, origin VARCHAR(50) COMMENT 產(chǎn)地, season VARCHAR(30) COMMENT 上市季節(jié)如冬季, sugar_content DECIMAL(4,1) COMMENT 參考糖度如12.5, shelf_life INT COMMENT 保鮮天數(shù), reference_price DECIMAL(10,2) COMMENT 參考售價(jià), min_stock INT DEFAULT 50 COMMENT 最低庫(kù)存預(yù)警值, remark VARCHAR(200), create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 供應(yīng)商表 CREATE TABLE supplier ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, contact VARCHAR(30), phone VARCHAR(20), address VARCHAR(100), remark VARCHAR(200) ); -- 入庫(kù)表 CREATE TABLE stock_in ( id INT PRIMARY KEY AUTO_INCREMENT, batch_no VARCHAR(40) NOT NULL, fruit_id INT NOT NULL, supplier_id INT, quantity INT NOT NULL, unit_price DECIMAL(10,2) DEFAULT 0, in_time DATETIME DEFAULT CURRENT_TIMESTAMP, operator VARCHAR(30), FOREIGN KEY (fruit_id) REFERENCES fruit(id), FOREIGN KEY (supplier_id) REFERENCES supplier(id) ); -- 銷售表 CREATE TABLE sale_order ( id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(40) NOT NULL, fruit_id INT NOT NULL, quantity INT NOT NULL, unit_price DECIMAL(10,2) DEFAULT 0, amount DECIMAL(12,2) DEFAULT 0, customer VARCHAR(50), sale_time DATETIME DEFAULT CURRENT_TIMESTAMP, operator VARCHAR(30), FOREIGN KEY (fruit_id) REFERENCES fruit(id) ); -- 庫(kù)存表 CREATE TABLE inventory ( id INT PRIMARY KEY AUTO_INCREMENT, fruit_id INT NOT NULL, batch_no VARCHAR(40), quantity INT DEFAULT 0, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_fruit (fruit_id), FOREIGN KEY (fruit_id) REFERENCES fruit(id) );這里有一個(gè)需要說明的點(diǎn)我設(shè)計(jì)了獨(dú)立 inventory 表來做庫(kù)存冗余。理論上庫(kù)存可以通過 stock_in 的入庫(kù)量合計(jì)減去 sale_order 的銷售量合計(jì)來實(shí)時(shí)計(jì)算但那種方式每次刷新頁面都要聚合查詢整張流水表數(shù)據(jù)一多性能就明顯變差。用 inventory 表單獨(dú)維護(hù)當(dāng)前庫(kù)存入庫(kù)時(shí)加數(shù)量銷售時(shí)減數(shù)量查詢的時(shí)候直接查這一行速度是常量級(jí)的。這是典型的空間換時(shí)間也是很多企業(yè)級(jí)系統(tǒng)在用的做法。2.3 為什么用批號(hào)管理庫(kù)存而不是一張流水表搞定還有人喜歡用“一張表搞定所有”字段加個(gè)類型1代表入庫(kù)2代表出庫(kù)然后查詢的時(shí)候一個(gè)SQL把全部記錄拉出來。這種臺(tái)賬模式在小項(xiàng)目里確實(shí)能跑但有幾個(gè)問題第一無法區(qū)分同品種不同批次。今天進(jìn)了一批砂糖橘每斤3元明天又進(jìn)了一批每斤3.2元。臺(tái)賬模式下你想看舊批次的庫(kù)存還沒賣完多少做不到。第二統(tǒng)計(jì)口徑混亂。月度報(bào)表需要入庫(kù)總量、銷售總量、庫(kù)存結(jié)余混合表要反復(fù)GROUP BYSQL寫起來繞來繞去。第三銷售訂單和庫(kù)存批次一旦耦合出庫(kù)時(shí)想追溯哪一批貨賣給了誰非常麻煩。所以我堅(jiān)持用“入庫(kù)單/銷售單兩張流水表 一張庫(kù)存匯總表”的結(jié)構(gòu)。stock_in 每插入一條就更新 inventory 表對(duì)應(yīng) fruit_id 的 quantity 加 quantitysale_order 每插入一條就更新 quantity 減 quantity。整個(gè)過程放在一個(gè)事務(wù)里要么全部成功要么全部回滾。3. 核心功能源碼解析與實(shí)操要點(diǎn)3.1 DBUtil別再用DriverManager重復(fù)造輪子寫JDBC項(xiàng)目第一個(gè)要寫的工具類就是數(shù)據(jù)庫(kù)連接工具。如果每個(gè)Dao里都寫一遍 Class.forName 和 DriverManager.getConnection代碼會(huì)又臭又長(zhǎng)而且連接參數(shù)改一處要全局搜索。我的 DBUtil 寫法如下package com.citrus.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/citrus_manage?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf8; 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(); throw new ExceptionInInitializerError(MySQL驅(qū)動(dòng)加載失敗請(qǐng)檢查依賴lib目錄); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } public static void close(AutoCloseable... resources) { for (AutoCloseable r : resources) { if (r ! null) { try { r.close(); } catch (Exception ignored) { } } } } }重點(diǎn)看兩個(gè)坑。一個(gè)是 URL 里的 serverTimezoneAsia/ShanghaiMySQL 8.0 以后不指定時(shí)區(qū)會(huì)報(bào) CST 時(shí)區(qū)錯(cuò)誤。另一個(gè)是驅(qū)動(dòng)類名MySQL 5.x 用 com.mysql.jdbc.DriverMySQL 8.x 用 com.mysql.cj.jdbc.Driver搞混了就是 ClassNotFoundException。注意如果你用的是 MySQL 5.7 和 mysql-connector-java 5.xURL 和驅(qū)動(dòng)類名要用老版本寫法否則會(huì)報(bào)各種奇怪的 SSL 或時(shí)區(qū)問題。最好是統(tǒng)一用 MySQL 8.0 Connector/J 8.0少踩很多坑。3.2 登錄模塊密碼別明文存登錄模塊是每個(gè)系統(tǒng)必須有的門面也是老師演示時(shí)第一個(gè)點(diǎn)擊的功能。這個(gè)模塊我不建議只寫“select * from user where username? and password?”因?yàn)槊魑拿艽a在任何正式項(xiàng)目里都是硬傷。教學(xué)項(xiàng)目里我推薦至少做一層 MD5 加鹽處理。加鹽的意思是密碼不是直接用明文哈希而是拼上一個(gè)隨機(jī)字符串再哈希防止彩虹表破解。示例代碼如下public class Md5Util { public static String md5(String source) { try { MessageDigest md MessageDigest.getInstance(MD5); byte[] bytes md.digest(source.getBytes(StandardCharsets.UTF_8)); StringBuilder sb new StringBuilder(); for (byte b : bytes) { sb.append(String.format(%02x, b)); } return sb.toString(); } catch (Exception e) { throw new RuntimeException(MD5加密失敗, e); } } }注冊(cè)或者初始化用戶時(shí)往密碼里拼一個(gè)固定鹽值比如 “citrus2024”然后存 md5(password salt)。登錄驗(yàn)證時(shí)把用戶輸入的密碼做同樣處理再和數(shù)據(jù)庫(kù)里的值比對(duì)。這樣即使數(shù)據(jù)庫(kù)泄露也無法直接逆推出原始密碼。課程設(shè)計(jì)做到這一步已經(jīng)能比大多數(shù)同學(xué)高一個(gè)檔次。生產(chǎn)環(huán)境要用 BCrypt 或 PBKDF2但課設(shè)里 MD5 加鹽足夠你講解清楚密碼存儲(chǔ)思路。3.3 入庫(kù)與出庫(kù)事務(wù)里最容易被忽略的坑入庫(kù)和出庫(kù)是整個(gè)系統(tǒng)里最容易出錯(cuò)的核心邏輯因?yàn)樯婕皟蓮埍淼臄?shù)據(jù)變更。我見過很多人這么寫StockInDao.add(stockIn); // 插入入庫(kù)單 InventoryDao.add(inventory); // 累加庫(kù)存如果第一條SQL成功、第二條SQL失敗就會(huì)導(dǎo)致流水增加了但庫(kù)存沒變數(shù)據(jù)就對(duì)不上了。解決方式是在 service 層開啟事務(wù)把兩條操作放到同一個(gè)數(shù)據(jù)庫(kù)事務(wù)里。核心代碼如下public boolean stockIn(StockIn stockIn) { Connection conn null; try { conn DBUtil.getConnection(); conn.setAutoCommit(false); // 1. 插入入庫(kù)單 StockInDao.add(conn, stockIn); // 2. 更新庫(kù)存表如果不存在則插入 int rows InventoryDao.updateBatchAdd(conn, stockIn.getFruitId(), stockIn.getQuantity()); if (rows 0) { InventoryDao.insertFruitStock(conn, stockIn.getFruitId(), stockIn.getQuantity()); } conn.commit(); return true; } catch (Exception e) { if (conn ! null) { try { conn.rollback(); } catch (SQLException ex) { ex.printStackTrace(); } } e.printStackTrace(); return false; } finally { if (conn ! null) { try { conn.setAutoCommit(true); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }這里有個(gè)細(xì)節(jié)所有 DAO 方法都要改成接收 Connection 參數(shù)的寫法而不是在 DAO 內(nèi)部另外去拿連接。只有這樣多條 SQL 才能復(fù)用同一個(gè)連接事務(wù)才能生效。如果你在 StockInDao.add 里再調(diào)用一次 DBUtil.getConnection()那這個(gè)事務(wù)實(shí)際上就是無效的因?yàn)閮蓚€(gè)連接不在同一個(gè)事務(wù)上下文里。這是新手最容易忽略的“事務(wù)失效”原因。出庫(kù)的邏輯類似但多了一個(gè)校驗(yàn)動(dòng)作扣減庫(kù)存前必須先查詢當(dāng)前庫(kù)存如果當(dāng)前庫(kù)存小于銷售數(shù)量直接返回“庫(kù)存不足當(dāng)前庫(kù)存為XX”。這個(gè)校驗(yàn)必須在事務(wù)里和扣減一起做防止并發(fā)情況下超賣。雖然課設(shè)系統(tǒng)沒有并發(fā)場(chǎng)景但這個(gè)設(shè)計(jì)思想寫進(jìn)文檔里很加分。3.4 庫(kù)存預(yù)警與統(tǒng)計(jì)報(bào)表的實(shí)現(xiàn)思路庫(kù)存預(yù)警功能實(shí)現(xiàn)起來不復(fù)雜但很體現(xiàn)產(chǎn)品思維。我在 Fruit 表里設(shè)計(jì)了 min_stock 字段每次刷新庫(kù)存面板時(shí)執(zhí)行如下查詢SELECT f.variety, f.category, i.quantity, f.min_stock FROM inventory i JOIN fruit f ON i.fruit_id f.id WHERE i.quantity f.min_stock ORDER BY (f.min_stock - i.quantity) DESC;查出來的結(jié)果用醒目的紅色標(biāo)記在表格里并在主界面狀態(tài)欄提示“當(dāng)前共有N種水果需要補(bǔ)貨”。這個(gè)功能做起來半小時(shí)都不到但演示起來視覺效果非常好老師一看就知道你考慮了業(yè)務(wù)場(chǎng)景。統(tǒng)計(jì)報(bào)表我建議做兩張一張是按品種的庫(kù)存匯總一張是按月份的銷售Top榜。庫(kù)存匯總就是 group by variety 的聚合銷售Top榜用下面這條SQLSELECT f.variety, SUM(s.quantity) AS total_qty, SUM(s.amount) AS total_amount FROM sale_order s LEFT JOIN fruit f ON s.fruit_id f.id WHERE DATE_FORMAT(s.sale_time, %Y-%m) ? GROUP BY f.variety ORDER BY total_amount DESC LIMIT 10;技巧提示報(bào)表查詢不要一次性把所有數(shù)據(jù)拉回Java里再for循環(huán)統(tǒng)計(jì)盡量把聚合邏輯交給SQL代碼簡(jiǎn)單性能也更好。這也是面試?yán)锍柕摹皵?shù)據(jù)庫(kù)聚合優(yōu)于應(yīng)用層聚合”的通俗體現(xiàn)。4. 環(huán)境搭建、運(yùn)行配置與項(xiàng)目打包4.1 JDK安裝與JAVA_HOME配置這套源碼我默認(rèn)用的是 JDK 8 或 JDK 11不推薦直接用 JDK 17 或更高版本除非你有把握處理各種模塊化帶來的兼容問題。JDK 8 在課設(shè)項(xiàng)目里依然是兼容性最好的選擇Swing 穩(wěn)定、JDBC 穩(wěn)定、各種第三方庫(kù)支持也最全。JDK 安裝本身沒什么好說的重點(diǎn)在環(huán)境變量。JAVA_HOME 指向 JDK 安裝目錄比如C:\Program Files\Java\jdk1.8.0_202Path 變量新增%JAVA_HOME%\binCLASSPATH 不需要手動(dòng)配置如果你在網(wǎng)上看到有人讓配置 CLASSPATH那是 JDK 5 時(shí)代的老黃歷現(xiàn)在配置了反而可能干擾運(yùn)行。配置完之后在命令行執(zhí)行java -version和javac -version兩個(gè)都有輸出說明環(huán)境就緒。IDEA/Eclipse導(dǎo)入項(xiàng)目時(shí)記得在 Project Structure 里把 Project SDK 和 Project language level 都改成一致否則會(huì)出現(xiàn)“源發(fā)行版 XX 需要目標(biāo)發(fā)行版 XX”的編譯錯(cuò)誤。4.2 MySQL建庫(kù)與連接參數(shù)配置數(shù)據(jù)庫(kù)安裝好之后用命令行或者Navicat執(zhí)行前面那一整段DDL腳本。建庫(kù)時(shí)一定要用 utf8mb4不是 utf8。utf8 在MySQL里最多支持3字節(jié)遇到特殊生僻字或emoji數(shù)據(jù)會(huì)報(bào)錯(cuò)utf8mb4 才是完整版UTF-8。如果建庫(kù)時(shí)用了默認(rèn)字符集后續(xù)中文亂碼問題會(huì)無休無止。連接參數(shù)里我推薦在 URL 后面固定帶四個(gè)參數(shù)?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf8allowPublicKeyRetrievaltrueuseSSLfalse 是因?yàn)楸镜亻_發(fā)沒必要走SSL加密能省掉證書相關(guān)的警告characterEncodingutf8 確保中文編碼正確serverTimezone 解決8.0版本時(shí)區(qū)報(bào)錯(cuò)allowPublicKeyRetrievaltrue 解決某些MySQL 8.0客戶端連接時(shí)出現(xiàn)的公鑰檢索錯(cuò)誤。JDBC連接的賬號(hào)密碼要和你本機(jī)一致不要照抄別人的這是運(yùn)行時(shí)最容易被忽略的配置點(diǎn)。4.3 IDEA導(dǎo)入項(xiàng)目和打包可運(yùn)行JAR導(dǎo)入項(xiàng)目時(shí)建議直接選擇 Open 項(xiàng)目根目錄然后右鍵項(xiàng)目 - Add Framework Support把 Maven 或普通工程結(jié)構(gòu)認(rèn)好。如果你沒有用Maven最簡(jiǎn)單的方式是把 mysql-connector-java 的 jar 包放到項(xiàng)目根目錄 lib 文件夾下然后把 lib 加入 Project Structure 的 Libraries 面板。這一步不加運(yùn)行時(shí)會(huì)報(bào) ClassNotFoundException。打包JAR文件的時(shí)候有一個(gè)大多數(shù)教程不會(huì)講清楚的坑直接 Build Artifacts 打出來的 JAR 運(yùn)行時(shí)會(huì)提示找不到數(shù)據(jù)庫(kù)驅(qū)動(dòng)因?yàn)?mysql-connector-java 沒有被打進(jìn)去。解決方式有兩種一個(gè)是用 Maven 的 assembly 或者 shade 插件打 fat jar另一個(gè)是自己在 MANIFEST.MF 里配置 Class-Path 指向外部 lib 目錄。我最推薦的方式是用 IDEA 的 Artifacts 配置把 lib 目錄作為輸出目錄的一部分操作路徑是File - Project Structure - Artifacts - 點(diǎn)加號(hào) - JAR - From modules with dependencies在 Create JAR from Modules 彈窗里選中主類 MainFrame下方列表直接勾選 Include in project build構(gòu)建完成后JAR 和 lib 會(huì)在同一個(gè)輸出目錄運(yùn)行時(shí)不要分開保持相對(duì)路徑。打包完雙擊能彈出登錄窗口就算成功了。5. 常見問題與排查技巧實(shí)錄5.1 中文亂碼登錄界面和數(shù)據(jù)庫(kù)內(nèi)容全是問號(hào)這個(gè)問題在課設(shè)里出現(xiàn)頻率極高基本可以排第一。表面現(xiàn)象是三種界面按鈕中文正常但數(shù)據(jù)庫(kù)接出來的中文是問號(hào)反過來數(shù)據(jù)庫(kù)里有中文界面顯示亂碼還有從控制臺(tái)輸出中文亂碼。這三類的解決思路完全不同。數(shù)據(jù)庫(kù)中文亂碼先查建庫(kù)語句是否指定了 utf8mb4再用SHOW CREATE TABLE fruit;查看表級(jí)字符集。如果表不是 utf8mb4執(zhí)行ALTER TABLE fruit CONVERT TO CHARACTER SET utf8mb4;。JDBC URL 里也要帶 characterEncodingutf8。界面亂碼則多數(shù)是 Swing 默認(rèn)字體不支持中文可以在啟動(dòng)類中設(shè)置全局字體Font font new Font(微軟雅黑, Font.PLAIN, 14); EnumerationObject keys UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key keys.nextElement(); Object value UIManager.get(key); if (value instanceof Font) { UIManager.put(key, font); } }控制臺(tái)亂碼通常是IDEA控制臺(tái)編碼問題在 Help - Edit Custom VM Options 里加一行-Dfile.encodingUTF-8重啟IDEA即可。網(wǎng)上說設(shè)置 IDE 文件編碼和模塊編碼也順手一起做設(shè)置完不要只看當(dāng)前頁面SQL 文件里如果有中文也必須確認(rèn)是 UTF-8 編碼保存。5.2 數(shù)據(jù)庫(kù)連接報(bào)錯(cuò)驅(qū)動(dòng)找不到、時(shí)區(qū)問題、連接被拒連接報(bào)錯(cuò)是最勸退新手的坑。我把常見情況整理成一張速查表報(bào)錯(cuò)信息原因分析處理方案ClassNotFoundException: com.mysql.cj.jdbc.Drivermysql-connector-java 的 jar 沒有引入檢查lib目錄是否存在jar包IDEA中確認(rèn)已加入LibrariesFailed to determine a suitable driver class驅(qū)動(dòng)類名寫錯(cuò)或版本匹配不對(duì)MySQL 8.x 用 com.mysql.cj.jdbc.DriverMySQL 5.x 用 com.mysql.jdbc.DriverThe server time zone value is unrecognizedURL 缺少 serverTimezone 參數(shù)URL追加 serverTimezoneAsia/ShanghaiAccess denied for user rootlocalhost用戶名密碼錯(cuò)誤或賬號(hào)無遠(yuǎn)程權(quán)限檢查數(shù)據(jù)庫(kù)賬號(hào)密碼本地連接建議直接用localhost不要用127.0.0.1以外的地址Communications link failureMySQL服務(wù)沒有啟動(dòng)或端口不是3306啟動(dòng)MySQL服務(wù)或執(zhí)行 netstat -anoPublic Key Retrieval is not allowedMySQL 8.0 的認(rèn)證插件問題URL追加 allowPublicKeyRetrievaltrue 并設(shè)置 useSSLfalse排查這列問題的基本思路就一句話先確認(rèn) MySQL 服務(wù)進(jìn)程活著再確認(rèn)賬號(hào)密碼正確再確認(rèn)驅(qū)動(dòng) jar 在 classpath 中最后確認(rèn) URL 參數(shù)完整。很多人第一反應(yīng)是代碼問題其實(shí)八成是MySQL服務(wù)沒啟動(dòng)或者密碼寫錯(cuò)。5.3 編譯版本不匹配和內(nèi)存溢出“java: 警告: 源發(fā)行版 17 需要目標(biāo)發(fā)行版 17”這個(gè)報(bào)錯(cuò)我在很多同學(xué)的電腦上見過。本質(zhì)是項(xiàng)目語言級(jí)別和JDK版本不一致。IDEA里打開 File - Project Structure - Modules把 Language level 和 SDK 改成一致然后在 Settings - Build Tools - Compiler - Java Compiler把 target bytecode version 也改成對(duì)應(yīng)版本三處全部對(duì)齊問題就解決。OutOfMemoryError 在課設(shè)項(xiàng)目里一般出現(xiàn)在大量數(shù)據(jù)導(dǎo)出或報(bào)表查詢時(shí)。比如你一次性把幾萬條銷售記錄加載到內(nèi)存里做統(tǒng)計(jì)或者往Excel導(dǎo)出時(shí)把全部數(shù)據(jù)堆在List里就很容易觸發(fā)。穩(wěn)妥做法有三種查詢時(shí)分頁或者限制條數(shù)比如 LIMIT 1000統(tǒng)計(jì)盡量交給SQL完成如果確實(shí)需要處理大數(shù)據(jù)在VM options里調(diào)大內(nèi)存-Xms128m -Xmx512m。我建議優(yōu)先優(yōu)化代碼調(diào)大內(nèi)存只是應(yīng)急方案而且面試時(shí)你不愿意說自己靠加內(nèi)存解決OOM吧。5.4 資源泄漏與SQL注入隱患面試官或者答辯老師經(jīng)常會(huì)問一個(gè)問題你的 JDBC 代碼里 Connection、Statement、ResultSet 有沒有正確關(guān)閉很多同學(xué)的代碼在 try 塊里執(zhí)行SQL在 finally 里只關(guān)了 ConnectionStatement 和 ResultSet 一直敞著短時(shí)間沒問題長(zhǎng)時(shí)間運(yùn)行就會(huì)把數(shù)據(jù)庫(kù)連接池或者M(jìn)ySQL的最大連接數(shù)耗盡。我建議封裝一個(gè)關(guān)閉工具方法用可變參數(shù)統(tǒng)一處理DBUtil.close(rs, stmt, conn);放在 finally 塊里調(diào)用不管前面的代碼報(bào)不報(bào)錯(cuò)資源都會(huì)釋放。這就是前面 DBUtil 代碼里那個(gè) close 方法的用途。關(guān)于 SQL 注入不管任何地方拼接SQL只要用戶輸入可能進(jìn)SQL語句一律用 PreparedStatement 的 ? 占位符不要用字符串拼接。這個(gè)習(xí)慣比任何安全框架都重要。水果名稱查詢功能最容易被拿來拼接寫成下面這樣就非常危險(xiǎn)String sql SELECT * FROM fruit WHERE variety LIKE % keyword %;用戶輸入一個(gè) OR 11就能把整張表查出來。要改成String sql SELECT * FROM fruit WHERE variety LIKE ?; preparedStatement.setString(1, % keyword %);這個(gè)問題在答辯時(shí)被問到的概率很高因?yàn)樗荍ava Web安全面試的高頻考題。寫進(jìn)去你就能在答不上其他技術(shù)問題的時(shí)候靠著這個(gè)細(xì)節(jié)扳回一城。6. 源碼擴(kuò)展思路從課設(shè)項(xiàng)目到簡(jiǎn)歷亮點(diǎn)如果你只想交作業(yè)上面內(nèi)容已經(jīng)夠用。但如果你希望這個(gè)項(xiàng)目在簡(jiǎn)歷上或考研復(fù)試?yán)锬苣玫贸鍪治以俳o幾個(gè)明確的優(yōu)化方向這些都是基于現(xiàn)有源碼的增量改造。第一加一個(gè)簡(jiǎn)單的圖形化庫(kù)存趨勢(shì)圖。Swing 自帶的 JFreeChart 庫(kù)可以生成柱狀圖和折線圖用銷售流水按周聚合的數(shù)據(jù)展示銷量趨勢(shì)整個(gè)系統(tǒng)的觀感會(huì)立刻上一個(gè)檔次。JFreeChart 的使用方式網(wǎng)上資料很多核心就三步創(chuàng)建數(shù)據(jù)集、創(chuàng)建圖表、放入面板。第二把配置文件從Java代碼里抽離。目前 DBUtil 里賬號(hào)密碼寫死在常量里你可以改成讀取 db.properties 文件的模式用一個(gè)靜態(tài)代碼塊加載配置文件。這個(gè)改動(dòng)很小但能體現(xiàn)“配置與代碼分離”的思想答辯老師會(huì)認(rèn)為你懂工程實(shí)踐。第三如果進(jìn)階方向是 Java Web就把Swing界面替換成 Servlet JSP 或者 Spring Boot Vue 的版本。底層 DAO、Service 那套代碼幾乎可以復(fù)用只需要把 UI 層換掉再加一層 Controller。這樣下來你等于擁有了同一個(gè)業(yè)務(wù)邏輯的兩個(gè)端簡(jiǎn)歷上寫“完成桌面端與Web端雙端系統(tǒng)開發(fā)”素材就更足了。第四做一下簡(jiǎn)單的低庫(kù)存短信或郵件提醒??梢杂肑avaMail發(fā)提醒郵件或者用第三方的短信接口不需要真的發(fā)把接口打好模擬觸發(fā)即可。這種“主動(dòng)提醒”功能在小項(xiàng)目里非常亮眼屬于典型的增值功能。我個(gè)人幫學(xué)弟學(xué)妹看課設(shè)源碼這幾年最深的感受是很多項(xiàng)目跑不起來不是代碼多難而是環(huán)境配置和版本匹配的問題占了八成跑起來之后真正拉開差距的往往是數(shù)據(jù)庫(kù)表設(shè)計(jì)和事務(wù)處理這些小細(xì)節(jié)。你把這個(gè)項(xiàng)目從頭到尾親手敲一遍把每張表、每個(gè)事務(wù)、每個(gè)資源的開關(guān)都搞清楚收獲遠(yuǎn)比網(wǎng)上下載一份能運(yùn)行的源碼大得多。照著上面的思路和代碼搭建起來之后把品種數(shù)據(jù)換成你自己熟悉的柑橘類再去調(diào)整一下查詢條件很快就能變成屬于你自己的完整項(xiàng)目。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜天堂啪啪| 午夜]香婷婷深深爱| 大香人妻| 色综合色色| 激情综合网 激情五月天| 大香焦A∨| 亚洲成人九九九| 91色五月| 丁香五月激情啪啪| 五月丁香六月婷婷综合免| 五月婷婷久草| 91Chinese在线| 激情综合色| 精品综合爱| 五月婷婷色| 国产人妻操逼| www九九| 少妇人妻人伦A片| 天天日天天日天天搞| av在线观看网站| 高清一区二区三区日本久| 毛片毛片毛片毛片| 五月丁香六月婷婷亚洲激情综合| 天天色综合天天| 97干在线免费| 久热精品免费视频4| 欧美啪啪9| 日本婷婷综合精品| 日韩婷婷五月| 大香伊人婷婷| av五月丁香| 五月丁香亚洲综合| WWW,五月| 中文字幕 中文字幕明步| 五月婷婷丁香瑟瑟视频| av不卡网站| 99久久久| 9色视频在线| 九热在线这里有精品6| 婷婷.com| 婷婷五月天综合小说网| 五月综合婷婷开心网| 激情综合区| 久久视频66| 五月天婷婷久草丁香| 婷婷成人基地| 裸体做A爰片毛片A片免费| 日日日日日| 久久99这里只有精品视频| 97精品综合久久| 4438成人电影| 久久网日本| 狠狠草网| 国产亚洲在线观看| sS丁香五月婷婷| 婷婷五月在线视频| 精品一二三区久久AAA片| 婷婷成人视频| 色五月丁香com| 色色亚洲| 欧美日韩99| 91狠狠色丁香婷婷综合久久精品| 久99视频| 色婷婷五月天亚洲| 午夜无码精品色综合久久| 天天想夜夜爽天天爽| 五月婷激情影院| 9 99免费视频| 高清无码.com| www.99热. com这里只有精品| 五月天色官网| 激情五月综合网最新 | 9 1超碰九色| 色色色婷婷五月天| 五月丁香网av| 丁香久久久| 久热只有这里精品| 情色婷婷五月天| 97人人操| 日本二级毛片二级毛片| 激情九九六月激情免费视频| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 亚洲亚洲人成综合网络| 97人妻碰碰碰久久| WWW.夜夜操.com| 亚洲婷婷月丁香五月| 欧美综合婷婷网| 色婷婷五月婷婷五月婷婷五月| 五月激情婷婷色| 五月天成人手机在线视频| 琪琪布丁香社区激情五月天| www狠狠com| 99五月香婷婷丁香在线视频| 欧美大香蕉视频| WWW,激情五月天,COM| 第二色AⅤ| 久久av电影| 天天舔天天摸视频| 涩五月婷婷| 九九成人电影婷婷| 欧美久久婷婷| 亚洲天码视频www蛋播视频| 色色色色热| 狠狠干在线| 26uuu最新地址| 精品国产乱码久久久久夜深人妻 | 综合久久高清| 激情网开心网| 天天日天天干天天操| 三级黄色大片视频| 狠狠搞五月天| 夜夜躁爽日日| 91综合视频丁香| 日本久久爽| 五月青青草综合| 婷婷五月激情六月| 97高清国语自产拍| 五月丁香啪啪网| 日韩成人精品一区久久久久| 另类视频丁香五月| 99在线免费视频| 伊人五月天在线| 亭亭玉月丁香| 色噜噜狠狠色综合成人99| 丁香婷婷射| 99玖玖在线视频| 成人国产欧美大片一区| 99r这里只有精品哦| 婷婷色正月| 亚洲日日日| 成人精品视频99在线观看免费 | 婷婷激情鹿城五月天| 五月婷婷综合丁香视频| 美女被操一区二区| 超碰久热| 第四色激情网| 欧美色图天堂网| 激情五月婷婷开心网| 超碰99在线| www久久久久久久| 99色这里| 免费无码毛片一区二区A片| 五月天婷婷AV| 五月丁香网站| 婷婷涩五月| 五月丁香在线观看| 亚洲av综合在线| 美妞av| 99爱视频| 中美日韩成人在线| 99久久极情精品一区| 亚洲婷婷激情综合激情999精品| 在线观看免费人成视频无码| 丁香五月综合福利视频导航| 亚洲a色| 蜜臀av粉嫩av懂色av| 1010日日无码| 99在线爽| 在线网黄| 成人av在线网址| www.操.com| 色五月丁香91| 99热在线播放| 亚洲婷婷激情综合激情999精品| 婷婷五月花.97| 九九热色视频| 在线播放人妻| 欧美人妻一区二区| wWW九九在线播放| 婷婷五月色| 99久高清视频| 伊人激情啪啪| 五月丁香亚洲校园欧美| 激情五月婷| 日韩三级片一区二区| 97五月天| 日本熟女视频一区二区| 97爱艹婷婷开心丁香激情综合| 99在线精品观看99| 欧美性爱丁香五月| 99久精品视频| 日本的α片xxxwww| 色操综合| 91操人| 精品成人久久久久久久_一二三四视| 99热在线观看精品| 天天草狠狠擦| 久久一品区| 97干综合网| 久久五月视频| 91呦呦呦| 一起草AV| 亚色网站小视频| 无人区码一码二码三码医生系列| 欧洲激情精品婷婷| 六月亚洲| 九九热在线99| 天堂伊人干| 婷婷五月花西瓜| 欧美三级级99久久| 五月天激情小说| 五月天激情视频五月天| 狠狠九九婷婷韩| 玖玖五月| 巴基斯坦粉嫩无码视频| 日本色99| 人人操婷婷| www.射伊蕉婷婷| 99er日韩| 超碰人人91| 99精彩视频| 婷婷五月天熟妇| 日本在线视频看se99| 国产精品久久..4399| 久久99激情| 99综合99| 久久全意婷婷| 伊人久久艹| 国内熟女黄色系列| 91九色在线| 深爱激情四射| 那里有AV网址| 99精品视频偷拍| 三人荫蒂添的好舒服A片| 日日操夜夜爽| 亚洲丁香五月在线观看| 激情综合4月| 日韩三级视频一区二区| 国产av一区二区三区| 色婷婷天堂| www·五月天| 国产伊人大香蕉| 久久总和99| 婷婷五月丁香婷婷| 情婷婷五月天在线| 久久永久网址| av九九| 亚洲综合碰| 99热这里都是精品| 色婷婷电影网| 国产欧洲欧洲精品久久| 色色丁香婷婷| 亚洲天堂啪啪| 综合AV在线| 欧美激情综合色丁香婷婷五月天 | 欧美日本一区二区三区| 先锋资源 996| 久久精彩综合视频| 婷婷性爱视频在线| 91久草五月天婷婷| 色婷婷亚洲在线观看| 国产乱子轮XXX农村| 99热在线观看精品| 久99久视频| 欧美黄色AA片哗啦啦啦| 另类小说激情五月天| 色区久久| www.99日本| 婷婷五月开心六月AV| 极品人妻XXXXOOOO| 色香蕉婷婷| 丰满人妻妇伦又伦精品国产| 国产视频色色色色色色色| 久久久精品人妻| 五月色婷| 丁香网站| 色噜噜狠狠狠狠色综合久欧美| 激情五月丁香五月| www.天天干| 99精品热| 大香蕉婷婷婷| 色婷婷综合成人| 一区二区三区XXXXXX| 91a片爽| 专区无日本视频高清8| 思思热99热| 九九热只有精品| 这里只有精品在线免费视频| 久久丁香五月| 99视频精品| 六月婷婷激情图片| 99精品热| 丁香五月激情啪啪啪啪| 91精品久久久久久久久| 丁香婷婷激情综合五月激情| 婷婷性爱无码视频| 色色色热| 欧美在线干| www.五月天婷婷| 亚洲九区| 超碰在线资源| 玖玖综合色| 深爱激情中文五月天av| 国产高清精品色| 婷婷五月丁香综合激情| 色色色无码| 九九香蕉网| 日本精品人妻无码77777| 六月五月天婷婷涩播在线| 婷婷在线五月综合| 丁香色婷婷| 亚洲综合网激情五月天| 色婷婷成人五月| 开心激情站| 99热8| 国产真人做爰视频免费| 91九色无码内射| 伊人久久99| 天天插综合在线| 激情五月第四色| 久久99这里只有精品视频| 老司机伊人| 9久精品视频| 亚洲乱码日产精品BD| 人妻免费网站| 天天爽天天日人人爱| 亚洲国产精品五月天| 好吊丝aV| 色五月婷婷亚洲| 性爱久久| 欧美日韩99| 先锋av性爱成人电影| 色综合五月天| 无语停婷丁香网| 在线成人网站| 爱草视频在线观看| 欧美影院婷婷| 888久久久| av久热| 五月婷婷婷自由综合| 伊人久久五月天| 亚洲中文字幕在线观看| 91狠狠色| 天天久综合| 乱精品一区字幕二区| 久久婷婷五月综合成人d啪| 婷婷五月大| 六月综合在线| 激情五月天久久| 如何安全看伊人婷婷| 噜噜色噜噜网| 婷婷五月情| 任你日热视频| 日本五月天婷婷丁香| 色色色欧美| 色情五月婷| 五月天电影网| 丁香五月亚洲综合丝袜| 精品福利911| 综合AV在线| 超碰国产AV| 丁香婷五月| 99免费在线视频| 大香蕉婷婷久久| 人。妻久久| 操B无码视频国语| 99热思思在线观看| 精品一二三区久久AAA片| 综合性爱网| 丁香六月婷婷综合欧美| 色很久综合| 亚洲aV写真天天综合网久久| 日韩三级视频一区二区| 色婷婷www| 亚洲AV无码电影| 丁香五月天精品| JAPANRCEP老熟妇乱子伦视频 | 久久久久久久久久久久久9| 五月丁香婷婷基地| 色色网站| 5月色亭亭视频| 丁香激情五月天| 色九月| 男女99免费视频| 婷婷五月天激情电影| 婷五月天| 超碰色色综合| 日本色综合| 精品人妻在线免费观看| 色色 亚洲| 性爱激情五月| 五月丁香六月色| 成年视频免费观看| 久久久天天啊| 噜噜噜狠狠色综合| 婷婷国产欧美97| 婷婷五月天AV在| 狠狠干在线视频| 亚洲另类在线观看| 九玖视频这里只有精品| 欧美性猛交 XXXX 乱大交| 五月丁香久久久日婷婷久久婷婷日 | 第四色婷婷日本| 香蕉综合在线| 五月天婷婷六月| 字幕网AV中文字幕| 狠狠色五月天| 五月天丁香啪啪综合| 99网| 色综合另类| 五月婷婷五月天| 久久五月丁香| 亚洲激情综合免费| 亚洲色综合| 俺去也婷婷| 天天五月情| 无码A片一区二区免费| 99九九综合久久九九| 亚洲夜五月| 亚洲日韩操B| 丁香六月婷婷综合缴| 五月婷色色| 99国产精品久久久久久久久久久| 91人人爽久久涩噜噜噜| 99er6免费视频热播| 欧美性猛交XXXX乱大交极品| 超碰国产在线观看| 天天日天天舔天天摸| 成人午夜天| 天天日天天草| 五月丁香999| 免费观看2018www黄色操逼网站| 成人在线不卡| 五月天激情AV| 在线观看五月婷婷网| 色色色色色色综合网| 99这里有精品视频| 久久99久久99精品免观看软件 | 久久综合热17c| 亚洲啪| 天天干天天操天天拍| 天天操天天草天天草天天| 婷婷丁香五月色偷偷| 色99色| 五月婷婷综合视频| 五月婷婷视频28| 欧美婷婷六月丁香综合色| 婷婷五月天涩涩| 91久久久久久| WWW,五月| 九热免费视频| 思思热精品在线视频| 丁香五月婷婷少妇| 六月丁香啪啪| 色99网| 91伦| 色www99| 色墦五月丁香| 欧美色五月| 丁香六月综合激情| 亚州色色色| 人人舔人人色人人高潮| 丁香五月 综合| 国产精品视频| 五月天婷综合| 人人爽欧美婷婷久久久五月丁香| 黄色AAAA韩国guochansanji| 亚洲九九99精品视频在线播放| 97色色色色色| 国产午夜精品一区二区| 婷婷伊人五月天| 日韩AV色色色| 亚洲激情五月丁香久久久久| 丁香五月综合图片在线观看| 欧美综合丁香网| 久久精品性爱视频,| 肏屄色播伊人97婷婷| 丁香婷婷五月人体| 99色视| 人人操碰| 婷婷之玖玖| 欧美色色日韩| 91chinese 在线| 色444综合网| 热99.com婷婷| 色99免费视频中文| 97色色婷婷五月天| 玖玖综合色| 伊人久久大香线蕉av最新| 五月婷婷丁香啪啪| 伊人久久婷婷| 激情五月激情综合网一级丸片 | 亚洲视频操| www亚洲无码| 日本三级色| 久久人五月| 嫩草视频观看| 91视频久久久| 9l视频自拍九色9l视频自拍九色9l社区 | xxx日本东京热| 79成人网| 色亚洲激情| 色色色综合网| 日日夜夜狠狠| 六月婷婷综合网2| 丁香五月伊人| 9久久久久| 五月丁香啪啪网| 婷婷激情五月天网站| 热99热| 亚洲色A| 精品无吗va视频免费观看| 九九热精品在线| AV成人在线播放| 九月激情网| 日本狠狠干| av大片在线| 丁香五月婷综合| 99在线精品视频| 99综合视频在线| 国际国外精品欧洲南美洲专区无码不卡| 国产在线另类五月婷婷| 天天拍天天操| 亚洲V国产V欧美V久久久久久| 91久女| 99热久草| 五月婷婷视频28| 操逼六区| 九月丁香久久网| 成人AV中文字幕| 人人干天天舔| 五月叮香啪| 亚洲av骚货| 韩日另类| 五月婷婷激情综合| 五月丁香欧美综合| 97色婷| 婷婷五月丁香激情图片 | 激情婷婷狠狠干| 在线观看中文字幕| 内射在线CHINESE| yirenjiqingshiping| 色播婷婷五月天| 色五月婷激情| 99热这里只有精品9| AV中文字幕夜夜操b天天摸bb | 色999;丁香五月| 99热综合在线观看| 色婷婷六月天| 五月丁香六月激情视频| 日本精品人妻无码77777| 色综合中文| 丁香婷婷五月综合影院| 色五月综合网| 中文无码婷婷| 色五月婷婷五月天| 7777久久亚洲中文字幕| 97涩涩丁香五月天| 我爱大香蕉| 91精品91久久久中77777久久玖玖九九 | 五月天社区婷婷丁香社区| 国产在线aaa片一区二区99| 91丨九色丨熟女| 五月婷婷精品无在线| 五月天丁香| 激情丁香九九五月综合网| 人人操人人爱丁香五月| 日本三级成人秘书精品片| 五月婷婷六月丁香首页| 丁香六月成人| 91操女| 亚洲五月综合色播| 亚洲精品又粗又大又爽A片| 九九操操| 色色色五月婷婷| 任你搞网站| 开心五月婷婷婷美女| 婷婷丁香无码专区| 丁香五月婷婷亚洲另类| 天天揷综合网| 色五月色综合| 超碰婷婷五月| 婷婷激情社区| 色情五月天导航| 丁香激情综合| 激情综合色婷婷啪啪六月天| 色五月av| 欧美日韩123| 欧美色九| 亚洲色五月| 久久久WWW| 综合色图区| 99热在线精品观看| 日韩抽插操逼| 五月Huangsewang| 婷婷日日天天| 婷婷五月丁香激情图片| 国产一二三四五六七八视频| 碰久久精品w| 99热中文字幕久久| 玖玖色资源| 亚洲婷婷91丁香| 婷婷99狠狠躁天天| 丁香六月综合激情| 天天肏天天爽夜夜爽| 欧美五月婷婷综合| 五月天色视频| 涩九九九九| 国产精品久久..4399| 狠狠干综合| 亚洲激情另类| 天天做天天爱天天玩夜夜爽| 婷婷五月天丁香成人社区| 9l视频自拍九色9l视频在线观看| 久久草大香蕉| 精品欧美一区二区三区久久久| 99热这里只有精品热| 婷婷激情综合色五月久久91| 97碰| 五月丁香色狠狠干大屄| 五月婷婷七月丁香| 狠狠干综合| 婷婷五月中文字幕国产| 国产av基地| 久草热在线视频| 深爱五月亚洲| 丁香五月激情棕合| 夜夜嗨一区二区三区直播内容 | 六月丁香啪啪| 免費亭亭成人| 2021日韩无码| 搡BBBB搡BBB搡18| 欧美色五月天| 丁香婷婷精品视频| 欧美69色| 五月激情综合网| 精品久久99码| 插插干干干色| 欧美五月停| 五月色婷婷在线观看| 草草色情综合网| 在线中文亚洲| 精品免费99| 超碰91在线| 色天堂婷婷| 色五月超碰| 天天射天天射一道本日本社区 | 婷婷亚洲日本| 成人片在线免费看| 欧美成人精品A片免费一区99| 五月丁花六月丁香综合| 成人羞羞啪啪 全 视频| 亚洲婷婷久久综合| 中文字幕丰满乱孑伦无码专区| www.五月婷婷久久.com| 日日.c| 色六月丁香婷婷狠狠干| 亚洲99综合| 婷婷五月欧美综合| 五月丁香大香蕉| 中文字幕激情综合| 99热在线免费| 天天射天天射一道本日本社区| 丝袜人妻| 99精品久久久久久久| 曰韩五月丁香色婷婷无码| 婷婷金品综合视频| 91操在线视频| 五月丁香六月天| 色九月激情综合网| 秋霞三级影视资源| 金桔一区二区ab地址| 久久综合色五月| 久久婷婷网址| 日本黄 色 片| 亚洲精品又粗又大又爽A片 | 久草五月| 99热思思| 日本色婷婷| 色五月婷婷色| 丁香色色网| 超碰不卡在线| 97干在线播放| 香蕉婷婷色五月| 可以直接看的av| 婷婷五月美女直播| 婷婷五月天成人小说| 色婷婷狠狠久久综合五月| 五月香蕉婷婷| 亚州视频九九99| 丁香五月大片| 久久机热这里只有 | 亚洲操人| 狠狠狠狠狠狠| 亚洲V国产V欧美V久久久久久| 色九九综合| 九艹在线| 色婷婷九月| www.超碰| 影音先锋女人AA鲁色资源| 久久久久久人妻| 五月天开心网| 色九四色| 久久99精品久久久久久青青AR| 丁香五月成人自拍| 成人午夜免费电影| 亚洲综合另类| 99自拍视频在线| 久久九九怡红院| 天天爽天天弄| 婷婷激情五月天在线| 久久久久久五月天| 午夜丁香综合婷婷| 香蕉综合网| 六月丁香五月婷婷| 果冻传媒A片一二三区| 国产真人做爰视频免费| 激情综合五月丁香六月婷婷| 国产4P视频精品五区| 操逼五月天| 亚洲综合视频网| 天天做天天爱天天日| 五月激情另类| 99热最新| 婷婷五月天成人| 激情五月天影院| 国产AV一区二区三区最新精品| 婷婷伊人综合| 亚洲第一成人无码A片| 玖玖伦理电影| 99国产视频网| 538在线精品| 九九热123| 大香蕉免费9| 天天色图| 青青草六月丁香| 天天日天天爽| 大地9中文在线观看免费高清| 91高潮喷水久久久久久久久| 婷婷五月天色色| 男人综合网| 丁香美女五月天婷婷| AV电影在线播放| 黄色AAAAAAA| 丁香五月婷婷激情小说| 色五月丁香伊人五月| 日韩啪啪视频| 亚洲精品白浆高清久久久久久| 1024国产在线| 色噜噜综合网| 精品久久艹| 久青操| 丁香五月天大香蕉啪啪| 色婷婷欧美| 五月丁香龟婷婷| 九九青草热| 婷婷香蕉精品| 久久综合这里只有精品1| 26uuu亚洲精品国产| 任你爽免费视频| 九久热| AV天堂淫乩| 欧洲亚洲免费视频9| 精品香蕉99久久久久网站| 国产ava| 婷婷色正月| 少妇AB又爽又紧无码网站| 亚洲综合视频网| 天天日,天天射,天天舔| 狠狠CAO日日穞夜夜穞AV| 久久网日本| 五月天综合激情网| 夜夜操加勒比| 日日干综合| 99精品久久| 国产成人在线不卡AV| 婷婷五月深爱五月| 欧美色图片88| 中文字幕丁香五月| 婷婷五月色| 狠狠色色| 五月天婷婷av| 丁香五月婷婷色情综合| 天天日综合| 亚洲一区二区 成人网站戴套| www.色窝| 中国丰满熟女A片免费观| 久久久久9999| 久久婷婷热| 色色色综合色| 婷婷色情网| 久超超碰| 外国碰视频网站97| 婷婷午夜激情| 婷香五月| 婷婷啪啪| 婷婷综合视频| 亚韩在线视频| 婷香五月| 人妻射精AV| 开心激情婷婷| 永久99免费视频网站| 99热超碰| 青青草蜜臀| 大香焦啪啪啪| 热思思| 丁香综合久久| 久久久无码精品成人A片小说| 91av视频在线观看最新网址| 色五月人妻| 激情五月婷婷视频一区二区三区| 色婷婷在线视频| 五月丁香六月婷婷成人| 狠狠香蕉| 噜综合| 99在线精品免费视频| 婷婷激情五月综合丁香社| 五月丁香六月停停停| 五月丁香六月婷婷网| 免费91久久精品| 婷婷五月草| 99爽视频| 激情综合色| 战争与艾拉电影免费观看| 午夜福利成人AV91| 另类精品视频在线观看| 色婷婷综合网站| 色色色综合网| 日日插日日干| 91丨九色丨熟女| 亚洲人妻av| 思思热久久爱| 激情人妻综合| 日本一级一级一级一级| 丁香五月激情鲁| 丁香五月人妻| 亚洲旡码| 狠狠干狠狠干狠狠干狠狠干| 五月婷婷丁香综合,亚洲天堂| 国产激情在线| 天堂AV三级| 182.t午在线观看| 十月色综合| 色色婷| 超碰只有精品在线| 天堂在线9| 狠狠爱综合| 99热99热在线观看| 亚色网站小视频| 五月激情综合婷婷| 色欲五月婷婷| 黄色AV日韩| 久久久久9久无码视频| 色色色婷| 五月激情基地| 伊人久久艹| www.婷婷五月.com| 日本丁香五月| 思思热精品在线| 五月色婷婷影视在线电影| 大香蕉人人网| 激情内射人妻1区2区3区| 欧美激情五月天| 五月丁香天天| 色99在线视频| 婷婷五月天基地| 99热这里精品| 狠狠色无码| 激情丁香婷婷| 色五月综合97| 亚洲天堂婷婷丁香| 色五月婷婷丁香五月| 婷婷五月另类网站| 亚洲五月六丁香激情| 日日操夜夜操不卡| 久久久网站| 色综合久久99色| 婷婷五月综合激情免费视频| 欧美五月丁香在线| 97sese婷婷| 亚洲精品一区中文字幕乱码| 婷婷丁香六月| 波多野结衣AV无码Porn| 五月天久久丁香| 丁香五月天天日| 久久九九网| 色婷婷狠狠久久YY| 极品人妻VIDEOSSS人妻| 久久婷婷成人综合色怡春院| 婷婷五月天小说| 久久久精品人妻录| 狠狠色综合777| 这里只有精彩小视频视频网站| 丁香六月婷婷社区| 夜色热久| 久久久久久久久月丁| 强壮的公次次弄得我高潮A片日本 | 影音先锋一区| 人人人va亚洲视频在线| 五月天婷婷在线观看精品男人| 婷婷在线视频| 色色五月天com| 人人干人人操外国| 色色色五月| 久久免费精彩视频| 欧美激情五月天| 精品久久99| 啪啪激情综合| 99色干| 免费啪啪亚州视频| 激情综合激情综合| 久久这里只精品| 激情五月,婷婷五月,丁香五月| 色婷婷操逼| 99∨VTV| 激情99在线视频| 97深爱伊人综合| 夜夜夜夜做天天天做无码视频| 99热国品免费| 久久色在线视频| 婷婷丁香午夜综合影视| 综合综合网| 久久爱婷婷| 六月丁香啪啪啪| 激情五月天视频| 色婷婷成人做爰A片免费看网站| 五月色情| 五月香蕉网| www.久久久久| 人妻肉射免费观看| 天天综合网在线| 国产精品成人AV在线| 激情四射五月天| 人妻人人操| 99热免费| 激情婷婷丁香| 777米奇影视第四色| 五月丁香六月激情| 色婷婷综合电影| 9久热免费视频99| 色色五月婷婷| 夜夜爽日日躁| 99爱视频免费| 五月婷婷激情综合| 性爱综合网| 国产成人精品123区免费视频 | 丁香五月天堂网| 操碰色一区就去操| 月色色综合婷婷网| 久9视频| 欧美色色色| 开心五月丁香婷婷| 99爱视频在线观看| 激情欧美五月丁香| 色狠狠色综合久久久绯色aⅴ影视| 99热伊人综合| 9久9久| 欧日韩成人| 国产超碰av| 久久婷婷色色| 天天爽夜夜爽夜夜爽精品| 婷婷色五月天综合网| 久色网五月| 日本啪啪网| AA片在线观看视频在线播放| 亚洲AV久久久久久久久久久久久久久久| 久久图色4| 蜜乳.comcom| 无码99| 江苏少妇性BBB搡BBB爽爽爽| 成人资源在线| 丁香六月AV| 亚洲最大激情无码| 538在线精品| 4399在线日本A片| 五月激情五月婷婷五月天在线| 夜夜爽天天干| 五月天激情网址| 五月天精品综合在线| 日韩aaa| 日韩精品一品二区三区的使用体验| 99精彩视频在线观看| 超碰人妻在线| 99久久视频| 日本社区五月天激情| 亚洲国产精品SUV| 人人操99| 影音先锋一区| 久久人五月| 激情六月婷| 久久caop| 婷婷五月综合欧美在线播放| 色色激情| 91精品国产99久久久久久天美| 99视频在线精品免费观看2| 无码AV免费精品一区二区三区| 色欲av伊人久久大香线蕉影院| 丁香六月婷婷综合| 久久五月婷综合网| 99久久精品视频女神1| 亚洲妇女熟BBW| 五月丁香久久综合| 婷婷伊人| 久久九九网| 色五月天丁香| 91无码视频| 日本在线视频播放91| 7777精品伊人久久久大香线蕉最新版| 99热99热不卡| 亚洲午夜国产成人电影VA国产欧…| 丁香桃色综合网| 99热在线观看| 色噜噜,噜噜色| 五月综合色| 日本色婷婷久久99精品91| 99亚洲天堂| 亚洲视频在线观看99| 深爱五月天| 伊人五月婷婷| 亚洲成av人影院| 色婷五月天亚洲| 国产黄大片在线观看画质优化 | 99综合色色色| 丁香婷婷中文字幕| 殴美97色| 久久人人妻| 秋霞日本免费毛片A片| 激情中文在线| 综合久久9| 夜夜爱网站| 五月婷婷久久开心网| 免费看欧美成人A片无码| 激情五月丁香在线观看直播| 日日操夜夜擼| 99在线亚洲| 五月天另类图片区99| 色综合久久88色综合天天99| 伊人久久婷婷| 99精品国产在热久久| 亚洲 小说 欧美 激情 另类| 欧美日韩色色| 99只有这里有精品在线视频| 伊人激情网| 日日日影院| 婷婷中文网站| 色五月成人| 都市激情蜜桃婷婷五月天| 噼里啪啦完整版中文在线观看 | 婷婷激情社区| 成人一级片| 五月婷婷综合在线| 五月花丁香婷婷| 婷婷六月综合| 超碰国产在线| 成人五月天视频播放| 日韩成人电影在线播放| 色5月婷婷| 日韩操| www久久久久久久97| 最近中文字幕大全免费版在线| 日本五月视频| 丁香五月另类色婷婷麻豆| 在线理论片| 天天干一干| 电影蜘蛛女| 人人草碰| 婷婷色导航| 伊人五月天在线| 亚洲视频a| 91主播在线| 99热免费在线| 欧美啄木乌丝袜人妻系列| 亚洲AV成人精品日韩在线播放| .青娱乐天天操B| 大香蕉99热| 婷婷开心综合人妻小说网址| 玖玖99免费视频| 久久久久久五月天| 久久久97| 开心五月天激情网站| 蜜臀丁香黄色婷婷五月天| 亚洲正能量欧美| 六月婷婷中文字幕| se99视频| 激情五月激情综合网一级丸片| 超碰在线94| 夜夜穞天天穞狠狠穞AV美女按摩| 天天日天天干天天操| 婷婷大美在线| 玖玖在线| 亚洲中文AV| 久草五月| 亚洲av成人在线| 婷婷射婷婷舔| 99综合婷婷五月| 51成人| 日本久久极品| 免费无码毛片一区二区A片| 91色色色18| 婷婷王月天影院| 五月亚洲激情| 五月香婷婷| www.婷婷,com| 99精彩视频在线观看| 免费无码毛片一区二区A片| 生活片五区| 久久激情五月婷婷| 国产成人va在线| site:wpjngj.com| 91人人爽狠狠狠| 亚洲精品成人片在线播| 色九九中文字幕| 国产成人精品一区二三区熟女在线| 久九色| 无码髙清| 六月婷婷五月天| 成人超碰Av| 五月中旬婷婷丁香六| 丁香五月天人体| 99久久精彩视频。| 婷婷射丁香| 91九色精品| 日本三级网址| 偷偷操九九| 伊人大香蕉毛片| 五月丁小婷婷激情四射| 丁香六月婷婷久久综合| 五月丁香婷婷综合网| 无码激情| 91人人操.COM| 九九AV在线| 色综合久久44| 99激情网| 日日噜噜夜夜狠狠久久丁香六月| 色情成人五月天| 九九这里有精品| 99热66| 久久五月婷婷丁香| 伊人五月综合网| 激情人妻综合| 99热爱爱干干日| 91婷婷在线| 婷婷久久大香蕉| 五月色亚洲| 久久婷五月天| 久久99国产综合精品免费| 国产亚洲精品AAAAAAA片| 拍真实国产伦偷精品| 国产精品99久久久久久久女警| 中文字幕在线免费看线人| 欧美精品在线观看| 伊人喵咪a V| 亚洲成人av在线观看| 丁香花操逼| 欧美日比视频| AV九九| 色97综合婷婷天天色| 成人狠狠成人狠狠成人狠狠成人狠狠| 色噜综| 欧美婷婷综合| 人人操91| 九九色影院| 丁香网五月天| 婷婷丁香综合在线| 91狠狠色色丁香婷婷综合久久| 亚洲av网站| 色婷婷基地| 欧美熟女99| 激情五月综合六月丁香婷婷狠狠干| 激情亚洲五月| 丁香五月成人av| 九九热黄色| 欧亚成人A片一区二区| 91色色色视频| 26uuu.| 五月天啪啪网| 狠爱婷色| 337p大胆噜噜噜噜噜91Av| 激情深愛五月視頻| 九九热视频免费| 色婷婷88| 深爱五月天| 九九激情| 激情五月婷婷综合| 色情激情五月| WWW.17C亚洲精品| 91超级碰碰| www.婷婷五月天,com| 成片免费播放| 色五月色五天色情网| 午夜九九九九九九九九九九九九九| 91色色色| 性爱五月婷婷| 六月丁香成人| 五月丁香婷婷成人网| 久热这里只有精品99re | 操操操97| 久草视频一,二三四| WWW五月天| 色爱综合网| 亚洲精品又粗又大又爽A片| 色五月婷婷1| 色欲五月天| 久操福利| 狠狠婷婷综合| 婷婷五月丁香五月| av操一操| 久久99久久99精品免视看婷婷| 热婷婷在线视频| 操笔无码| 五月天婷婷基地综合网| 激情AV网| 丁香五月婷婷狠狠色| 国产综合网在线| 99热在线观看| 九九久久五月天| 99热亚洲精品| 99热综合| 久热一本| 色丁香五月| 最近免费中文字幕大全高清大全1| 六月丁香综合| 婷婷.com| 91男同视频| 人人干天天舔| 大香蕉久热| 美女爆乳18禁www久久久久久| 狠狠色丁香综合| 亚洲婷婷丁香| 99资源人人| 伊人狠狠操| 天天日天天插| 操一区| 久99久在线观看| 96色婷婷| WWW.99热| 精品亚洲国产成AV人片传媒| 永久的网站AAAA| 五月婷婷五月天| 激情婷婷九月| 丁香狠狠色婷婷久久无码视频| 中国丰满熟女A片免费观| 五月丁香A片| 亚洲激情综合网| 亚洲成人网站在线| 婷婷色五月在线视频| 伊人大香蕉爱聚| 五月天久久成人| 白人荫道BBWBBB大荫道| 婷婷色色狠狠| 99热这里全都是精品| 99自拍视频网站| 开心五月婷婷| 欧美人人女女精品综合五月天| 黄色激情五月天| 久久婷婷网址| 99亚洲色色| 色五月美女| 久色欧美| 9色免费网| 狠狠激情五月天| 碰碰碰碰碰99| 久久婷婷五月天综合| 啪啪日热| 久久色五月天综合网| 91九九热| 天天摸天天做天天爱天天爽| 操比激情五月| 色亭亭五月天丁香综合AV - 百度 - 百度| 婷婷色资源| 婷婷性爱五月天| 2015WWW永久免费观看播放| 日本欧美成人片AAAA| 欧美三日本三级少妇三99| 丁香五月成人社区| 色色99|