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

ARTICLE DETAIL

資訊詳情

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

JavaWeb健身房管理系統(tǒng):從源碼部署到問題排查全指南

JavaWeb健身房管理系統(tǒng):從源碼部署到問題排查全指南 簡(jiǎn)介一套基于JavaWeb實(shí)現(xiàn)的健身房管理系統(tǒng)畢業(yè)設(shè)計(jì)源碼面向計(jì)算機(jī)相關(guān)專業(yè)學(xué)生和Java開發(fā)者可作為畢業(yè)設(shè)計(jì)、課程設(shè)計(jì)或期末大作業(yè)的完整參考方案。壓縮包共274個(gè)文件涵蓋48個(gè)Java核心邏輯文件、19個(gè)JSP頁(yè)面及18個(gè)CSS樣式同時(shí)包含JavaScript腳本、gif演示動(dòng)圖、SQL數(shù)據(jù)庫(kù)腳本等資源總量2.72MB整體結(jié)構(gòu)清晰便于快速導(dǎo)入運(yùn)行。目前已有116人瀏覽學(xué)習(xí)源碼經(jīng)嚴(yán)格調(diào)試并獲95分以上評(píng)審成績(jī)確??蛇\(yùn)行。下載后可獲得完整項(xiàng)目源碼、數(shù)據(jù)庫(kù)腳本以及各頁(yè)面操作錄屏既能用于理解健身房會(huì)員管理、課程預(yù)約、器材管理等模塊的實(shí)現(xiàn)思路也能直接作為畢設(shè)答辯與功能演示的基礎(chǔ)工程。1. “基于JavaWeb實(shí)現(xiàn)的健身房管理系統(tǒng)”能跑起來才算數(shù)先理解它在解決什么問題“基于JavaWeb實(shí)現(xiàn)的健身房管理系統(tǒng)”在畢業(yè)設(shè)計(jì)里屬于出場(chǎng)率極高但最能保底的一類選題。它把JavaWeb課程幾個(gè)核心考點(diǎn)全占了JSP/Servlet做頁(yè)面交互、JDBC連MySQL數(shù)據(jù)庫(kù)做增刪改查、三層架構(gòu)承載會(huì)員辦卡、課程預(yù)約、教練排班、到期續(xù)費(fèi)提醒這些真實(shí)業(yè)務(wù)。對(duì)準(zhǔn)備答辯的人來說真正難的從來不是“看懂代碼”而是打開壓縮包之后讓源碼和數(shù)據(jù)庫(kù)在十分鐘內(nèi)從自己電腦上跑起來。這篇文章就按這個(gè)順序講壓縮包里先看什么、數(shù)據(jù)庫(kù)表怎么建模、環(huán)境和數(shù)據(jù)庫(kù)連接池怎么配、業(yè)務(wù)代碼怎么改、運(yùn)行時(shí)五個(gè)高頻坑在哪。適合正在做JavaWeb課程設(shè)計(jì)、Java課程設(shè)計(jì)案例源碼或畢業(yè)設(shè)計(jì)的同學(xué)也適合想用一個(gè)完整案例把業(yè)務(wù)邏輯真正吃透的初學(xué)者。2. 先拆包再寫代碼JavaWeb健身房管理系統(tǒng)的文件結(jié)構(gòu)、三層架構(gòu)與數(shù)據(jù)庫(kù)建模健身房管理系統(tǒng)這類源碼包最怕一解壓就盲目點(diǎn)“運(yùn)行”。很多老工程不是Maven標(biāo)準(zhǔn)結(jié)構(gòu)而是用IDEA的Java EE向?qū)傻钠胀╓eb工程部署方式和源碼存放路徑跟教科書示例不太一樣。我建議按下面的順序拆能少走一半彎路。2.1 壓縮包里通常有哪些文件先分清源碼目錄、數(shù)據(jù)庫(kù)腳本和說明文檔打開zip后大概率會(huì)看到四類東西。別急著點(diǎn)開任何代碼先按表格里的檢查點(diǎn)過一遍。路徑/文件作用動(dòng)手前確認(rèn)點(diǎn)src 或 src/main/java存放Servlet、Service、DAO、實(shí)體類看包名有沒有分層找JDBC工具類在哪WebContent / web / src/main/webappJSP頁(yè)面、CSS、JS、圖片看login.jsp和index.jsp確認(rèn)登錄入口.sql 文件 / database目錄建庫(kù)建表腳本與測(cè)試數(shù)據(jù)看建表語句有沒有DROP TABLE和INSERT說明文檔/配置文檔環(huán)境版本、部署步驟確認(rèn)JDK/Tomcat/MySQL版本要求如果工程帶pom.xml說明作者把工程改成了Maven結(jié)構(gòu)依賴統(tǒng)一依賴maven管理。如果沒有pom.xml你通常會(huì)在WEB-INF/lib下看到mysql-connector-java.jar這類依賴。這里最容易踩坑的是“源碼放對(duì)了但依賴少一個(gè)jar”后文第5章專門講。數(shù)據(jù)庫(kù)腳本有的叫g(shù)ym.sql有的叫fitness_manager.sql打開先看前三行確認(rèn)數(shù)據(jù)庫(kù)名、字符集以及表名大小寫。絕大多數(shù)畢設(shè)工程用MySQL“基于JavaWeb實(shí)現(xiàn)的健身房管理系統(tǒng)”里的“數(shù)據(jù)庫(kù)”基本就是指MySQL腳本按MySQL來準(zhǔn)備環(huán)境不會(huì)錯(cuò)。2.2 三層架構(gòu)與MVC為什么JavaWeb項(xiàng)目要把控制器、業(yè)務(wù)、DAO分開健身房管理系統(tǒng)的代碼好不好改取決于它有沒有把三層架構(gòu)分開。常見的分層如下視圖層JSP頁(yè)面。負(fù)責(zé)展示和收集表單頁(yè)面里盡量不寫Java業(yè)務(wù)代碼??刂破鲗覵ervlet。負(fù)責(zé)接收請(qǐng)求、調(diào)用Service方法、跳轉(zhuǎn)頁(yè)面。業(yè)務(wù)層Service。負(fù)責(zé)辦卡、預(yù)約、續(xù)費(fèi)提醒這類業(yè)務(wù)規(guī)則事務(wù)通常寫在這一層。數(shù)據(jù)訪問層DAO JDBC。負(fù)責(zé)數(shù)據(jù)庫(kù)增刪改查只談數(shù)據(jù)不談業(yè)務(wù)。如果工程里一個(gè)Servlet把查詢和頁(yè)面輸出全干了系統(tǒng)也能運(yùn)行但你要加一個(gè)“會(huì)員到期自動(dòng)提醒”就會(huì)很痛苦因?yàn)槟悴恢罃?shù)據(jù)從哪來、該改哪里。MVC和三層架構(gòu)不是同一個(gè)概念但在JavaWeb里經(jīng)常一起出現(xiàn)三層架構(gòu)管職責(zé)劃分MVC管頁(yè)面交互方式。JSP充當(dāng)ViewServlet充當(dāng)ControllerModel由Service、DAO和實(shí)體類共同組成。啟動(dòng)項(xiàng)目前建議先看兩個(gè)入口會(huì)員管理的Servlet和它的DAO這是整條鏈路的骨架。提示如果看到JSP里直接寫了JDBC代碼說明工程沒有分層。能跑但改起來風(fēng)險(xiǎn)高答辯時(shí)也容易被追問“為什么不分層”。建議至少把數(shù)據(jù)庫(kù)訪問抽到一個(gè)工具類里否則后續(xù)改造的每一處都可能是雷。2.3 數(shù)據(jù)庫(kù)表怎么建模會(huì)員卡、課程預(yù)約與教練排班的表結(jié)構(gòu)健身房管理系統(tǒng)的核心不是頁(yè)面是數(shù)據(jù)庫(kù)設(shè)計(jì)。常見的表至少有這些會(huì)員表、員工表/教練表、課程表、預(yù)約記錄表、卡券訂單表。下面是簡(jiǎn)化版表結(jié)構(gòu)很多畢設(shè)工程的核心表就長(zhǎng)這樣-- 會(huì)員表存卡種和有效期 CREATE TABLE member ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE COMMENT 登錄名, phone VARCHAR(20), card_type VARCHAR(20) COMMENT 月卡/季卡/年卡, card_start DATE NOT NULL, card_end DATE NOT NULL, status TINYINT DEFAULT 1 COMMENT 1正常 0停用, create_time DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 課程表 CREATE TABLE course ( id INT PRIMARY KEY AUTO_INCREMENT, course_name VARCHAR(100) NOT NULL, coach_name VARCHAR(50), max_num INT DEFAULT 10 COMMENT 最大預(yù)約人數(shù), remain INT DEFAULT 10 COMMENT 剩余名額, course_time DATETIME ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 預(yù)約記錄表 CREATE TABLE booking ( id INT PRIMARY KEY AUTO_INCREMENT, course_id INT NOT NULL, member_id INT NOT NULL, booking_time DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_course_member (course_id, member_id), CONSTRAINT fk_booking_course FOREIGN KEY (course_id) REFERENCES course(id), CONSTRAINT fk_booking_member FOREIGN KEY (member_id) REFERENCES member(id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;這段SQL里有幾個(gè)關(guān)鍵參數(shù)值得注意。ENGINEInnoDB必須保留因?yàn)橐С质聞?wù)課程預(yù)約扣減名額和插入預(yù)約記錄得在同一個(gè)事務(wù)里完成。CHARSETutf8mb4解決中文和特殊符號(hào)存儲(chǔ)問題老工程里常見的utf8在MySQL 8下已經(jīng)不夠用。card_start和card_end選DATE而不是DATETIME因?yàn)檗k卡只關(guān)心日期不關(guān)心時(shí)刻DATE類型還能直接配合DATEDIFF做到期提醒。UNIQUE KEY uk_course_member是防重復(fù)預(yù)約的數(shù)據(jù)庫(kù)層保障后面第4章的課程預(yù)約事務(wù)會(huì)用到它。如果你的壓縮包里數(shù)據(jù)庫(kù)腳本沒有這些約束建議在理解表關(guān)系后手動(dòng)補(bǔ)上這是相冊(cè)管理系統(tǒng)最值得留的一層保險(xiǎn)。3. 把源碼和數(shù)據(jù)庫(kù)跑起來JDK、Tomcat、MySQL和IDEA的完整復(fù)位很多老JavaWeb項(xiàng)目跑不起來不是代碼問題是環(huán)境版本錯(cuò)位。尤其是JDK、Tomcat、MySQL三方版本互相不兼容時(shí)日志里全是ClassNotFound和Connection refused你根本分不清是配置錯(cuò)還是依賴缺。這一章給出一套最穩(wěn)的組合和復(fù)現(xiàn)步驟。3.1 環(huán)境選型JDK 1.8、Tomcat 8.5、MySQL 5.7為什么最省事這里直接給參數(shù)對(duì)比照著選能省下大量排錯(cuò)時(shí)間。組件推薦版本備選踩坑點(diǎn)JDK1.8Java 811老工程編譯級(jí)別如果是1.8用JDK 11要改Project Structure和Language levelTomcat8.59.0Tomcat 10起包名從javax改成jakarta老JavaWeb代碼啟動(dòng)直接報(bào)ClassNotFoundExceptionMySQL5.78.0用MySQL 8時(shí)驅(qū)動(dòng)版本要跟著換URL還要加serverTimezone參數(shù)IDEA2020.3及以上社區(qū)版社區(qū)版需要插件或使用外部Tomcat專業(yè)版自帶Tomcat集成為什么首選Java 8因?yàn)榻^大多數(shù)JavaWeb畢設(shè)源碼都是當(dāng)年用JDK 8寫的字節(jié)碼版本和IDEA默認(rèn)編譯級(jí)別能對(duì)上。JDK 11能跑但老項(xiàng)目里如果有JAXB相關(guān)依賴會(huì)缺包屬于自找麻煩。Tomcat 8.5兼容javax.*包Servlet 3.1規(guī)范是這套技術(shù)棧的舒適區(qū)。MySQL 5.7與老版mysql-connector-java的配合最沒有幺蛾子只要數(shù)據(jù)庫(kù)腳本本身沒有用到MySQL 8才有的語法就能直接導(dǎo)。如果你手里只有MySQL 8.0驅(qū)動(dòng)務(wù)必?fù)Q成8.0.xURL里加上serverTimezoneAsia/Shanghai否則第5章會(huì)專門講這個(gè)坑。3.2 導(dǎo)入數(shù)據(jù)庫(kù)用兩行命令把SQL腳本灌進(jìn)MySQL拿到gym.sql之類腳本后我一般不用Navicat的導(dǎo)入按鈕先用命令行導(dǎo)入。原因是命令行能直接看到報(bào)錯(cuò)圖形工具經(jīng)常把錯(cuò)誤吞到一個(gè)日志文件里反而增加定位成本。# 第一步創(chuàng)建數(shù)據(jù)庫(kù)指定utf8mb4字符集 mysql -uroot -p -e CREATE DATABASE IF NOT EXISTS gym_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 第二步把SQL腳本灌進(jìn)gym_db mysql -uroot -p -D gym_db gym.sql參數(shù)說明-u指定用戶名-p讓MySQL提示輸入密碼-e直接執(zhí)行后面的SQL語句。-D表示選擇當(dāng)前數(shù)據(jù)庫(kù)等價(jià)于USE gym_db。是shell重定向把文件內(nèi)容作為mysql命令的輸入。如果腳本第一行已經(jīng)有CREATE DATABASE和USE語句第二步可以簡(jiǎn)化成mysql -uroot -p gym.sql省得指定-D。導(dǎo)入完成后用mysql -uroot -p -D gym_db -e SHOW TABLES;檢查表是否齊全數(shù)一下表數(shù)量跟說明文檔對(duì)得上再進(jìn)入下一步。注意SQL文件路徑如果包含空格或中文建議把文件先移到D:/gym.sql這類簡(jiǎn)單路徑否則某些Windows終端會(huì)把路徑截?cái)鄬?dǎo)致導(dǎo)入失敗。3.3 修改數(shù)據(jù)源與數(shù)據(jù)庫(kù)連接池db.properties里每個(gè)參數(shù)都有用傳統(tǒng)的JavaWeb工程通常用一個(gè)db.properties或jdbc.properties保存數(shù)據(jù)庫(kù)配置再用一個(gè)工具類讀取。下面是最常見的內(nèi)容jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/gym_db?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai jdbc.usernameroot jdbc.password123456 jdbc.initialSize5 jdbc.maxActive20逐個(gè)說參數(shù)。jdbc.driver對(duì)應(yīng)MySQL驅(qū)動(dòng)的類名5.x版本用com.mysql.jdbc.Driver8.x版本用com.mysql.cj.jdbc.Driver寫錯(cuò)啟動(dòng)就報(bào)ClassNotFoundException。jdbc.url里的useUnicodetruecharacterEncodingutf8是解決中文亂碼的關(guān)鍵useSSLfalse是關(guān)閉SSL握手否則MySQL 8會(huì)默認(rèn)嘗試SSL導(dǎo)致連接變慢。serverTimezoneAsia/Shanghai是MySQL 8.0以上版本必須加的時(shí)區(qū)參數(shù)。最后的initialSize和maxActive是連接池初始連接數(shù)和最大連接數(shù)沒有連接池的工程這兩個(gè)參數(shù)不會(huì)出現(xiàn)。如果項(xiàng)目里用的是Druid或者commons-dbcp的連接池工具類的初始化方式不同但properties里這幾個(gè)值一般都要保留。配套的JDBC工具類常見寫法是public class DbUtil { private static final Properties PROPS new Properties(); static { try (InputStream in DbUtil.class.getClassLoader() .getResourceAsStream(db.properties)) { PROPS.load(in); Class.forName(PROPS.getProperty(jdbc.driver)); } catch (Exception e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { // 每次調(diào)用從DriverManager拿新連接適合demo生產(chǎn)建議改用連接池 return DriverManager.getConnection( PROPS.getProperty(jdbc.url), PROPS.getProperty(jdbc.username), PROPS.getProperty(jdbc.password)); } }這段代碼的核心邏輯在靜態(tài)代碼塊里加載properties文件、注冊(cè)驅(qū)動(dòng)保證整個(gè)應(yīng)用只初始化一次。getResourceAsStream(db.properties)從classpath根目錄找文件所以db.properties要放在src目錄或resources目錄下而不是WEB-INF里面。代碼里注釋也寫了每次DriverManager.getConnection在并發(fā)高時(shí)是性能瓶頸畢設(shè)如果被問到“怎么優(yōu)化”答案就是換Druid或C3P0連接池把getConnection改成從池里借連接。3.4 在IDEA里配置Tomcat并部署JavaWeb工程這是“idea運(yùn)行javaweb項(xiàng)目配置”的熱搜問題也是最容易卡殼的一步。老工程部署步驟相對(duì)固定打開IDEA用File - Open直接選中解壓后的工程目錄等待索引完成。確認(rèn)Project Structure里的SDK是1.8Language level是8。如果工程不是Maven項(xiàng)目還需要在Project Structure - Modules - Dependencies里把WEB-INF/lib下的jar全部加入。新建Tomcat運(yùn)行配置Run - Edit Configurations - - Tomcat Server - Local。如果IDEA里沒有Tomcat選項(xiàng)進(jìn)入Settings - Build, Execution, Deployment - Application Servers點(diǎn)把本地的Tomcat安裝目錄指定進(jìn)去。在Deployment標(biāo)簽頁(yè)點(diǎn) - Artifact選項(xiàng)目名:war exploded。這里建議用war exploded改完JSP不用重新打包刷新頁(yè)面就能看到變化。把Server標(biāo)簽頁(yè)里的HTTP port改成8080或者改成一個(gè)不容易沖突的端口。點(diǎn)擊運(yùn)行瀏覽器訪問http://localhost:8080/項(xiàng)目名/login.jsp。配置完成后不要急著點(diǎn)運(yùn)行先單獨(dú)跑一下連接檢查把數(shù)據(jù)庫(kù)配置錯(cuò)誤和Tomcat部署問題分開日志里才不會(huì)什么都混雜在一起public class CheckDb { public static void main(String[] args) { // 只驗(yàn)證數(shù)據(jù)庫(kù)連通性不啟動(dòng)Tomcat try (Connection conn DbUtil.getConnection(); Statement st conn.createStatement()) { ResultSet rs st.executeQuery(SELECT COUNT(*) AS total FROM member); rs.next(); System.out.println(member count rs.getInt(total)); } catch (Exception e) { // 如果這里報(bào)錯(cuò)先檢查db.properties再檢查MySQL服務(wù)是否啟動(dòng) e.printStackTrace(); } } }這個(gè)類的價(jià)值是把“數(shù)據(jù)庫(kù)連不上”和“項(xiàng)目部署不上”兩個(gè)變量分離開。運(yùn)行它如果能打出member count 0說明JDBC、驅(qū)動(dòng)、連接URL、數(shù)據(jù)庫(kù)腳本全都沒問題問題只可能出在Tomcat側(cè)。如果它報(bào)錯(cuò)就先別碰Tomcat回頭查數(shù)據(jù)源配置。這個(gè)習(xí)慣能幫你把運(yùn)行JavaWeb項(xiàng)目時(shí)的黑匣子至少拆成兩塊。4. 業(yè)務(wù)模塊動(dòng)手改造從會(huì)員到期提醒到課程預(yù)約事務(wù)環(huán)境跑通只是開始畢設(shè)答辯和實(shí)際維護(hù)真正看重的是業(yè)務(wù)代碼。這一章挑健身房管理系統(tǒng)里三個(gè)最常被問到的業(yè)務(wù)點(diǎn)來動(dòng)手改到期提醒、課程預(yù)約搶名額、按月統(tǒng)計(jì)收入。4.1 會(huì)員到期提醒日期函數(shù)與PreparedStatement配合會(huì)員模塊除了增刪改查最常見的業(yè)務(wù)是“查出一周內(nèi)到期的會(huì)員”。這個(gè)功能用SQL的日期函數(shù)最省事SELECT id, username, phone, card_type, card_end FROM member WHERE status 1 AND card_end BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY) ORDER BY card_end ASC;CURDATE()返回當(dāng)前日期INTERVAL 7 DAY表示7天區(qū)間。BETWEEN配合DATE_ADD可以查出從今天開始到未來7天內(nèi)到期的會(huì)員嚴(yán)格意義上是8天窗口今天到第7天。如果你只想要未來7天可以把區(qū)間改成 CURDATE() AND card_end DATE_ADD(CURDATE(), INTERVAL 7 DAY)。在Java代碼里通常不會(huì)把7寫死在SQL里而是用占位符public ListMember listExpiringMembers(int days) throws SQLException { // 用占位符?代替天數(shù)避免拼接SQL導(dǎo)致注入風(fēng)險(xiǎn) String sql SELECT id, username, phone, card_end FROM member WHERE status 1 AND card_end BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL ? DAY); ListMember list new ArrayList(); try (Connection conn DbUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setInt(1, days); // 參數(shù)索引從1開始 try (ResultSet rs ps.executeQuery()) { while (rs.next()) { Member m new Member(); m.setId(rs.getInt(id)); m.setUsername(rs.getString(username)); m.setPhone(rs.getString(phone)); m.setCardEnd(rs.getDate(card_end)); list.add(m); } } } return list; }這里用PreparedStatement而不是Statement有兩個(gè)原因一是不用手動(dòng)拼SQL避免會(huì)員名字里的單引號(hào)把SQL弄壞二是數(shù)據(jù)庫(kù)可以復(fù)用執(zhí)行計(jì)劃循環(huán)調(diào)用多條SQL時(shí)性能更好。調(diào)用時(shí)傳入7由Service層字段判斷是“一周內(nèi)”還是“三天內(nèi)”。如果你希望提醒更準(zhǔn)確可以把DATE_ADD的間隔改成DATEDIFF(card_end, CURDATE()) 7這是很多后掛的報(bào)表SQL里常見的寫法二者效果等價(jià)。4.2 課程預(yù)約防超賣事務(wù)與唯一索引一起上健身房課程預(yù)約最容易出的問題是一個(gè)熱門課被重復(fù)預(yù)約或超員。很多人只做了前端不可點(diǎn)擊就沒管后端實(shí)際上并發(fā)場(chǎng)景下兩個(gè)請(qǐng)求都能通過檢查導(dǎo)致超賣。數(shù)據(jù)庫(kù)層已經(jīng)加了UNIQUE KEY uk_course_memberJava這邊還要把“扣名額”和“插入預(yù)約記錄”放進(jìn)同一個(gè)事務(wù)public boolean bookCourse(int courseId, int memberId) throws SQLException { Connection conn DbUtil.getConnection(); PreparedStatement deduct null; PreparedStatement insert null; try { conn.setAutoCommit(false); // 開啟事務(wù) // 先扣減剩余名額只影響remain0的行返回0說明沒名額了 String deductSql UPDATE course SET remain remain - 1 WHERE id ? AND remain 0; deduct conn.prepareStatement(deductSql); deduct.setInt(1, courseId); int rows deduct.executeUpdate(); if (rows 0) { conn.rollback(); return false; } // 再插入預(yù)約記錄唯一索引會(huì)在重復(fù)預(yù)約時(shí)拋異常觸發(fā)回滾 String insertSql INSERT INTO booking(course_id, member_id) VALUES(?, ?); insert conn.prepareStatement(insertSql); insert.setInt(1, courseId); insert.setInt(2, memberId); insert.executeUpdate(); conn.commit(); return true; } catch (SQLException e) { conn.rollback(); // 回滾已扣減的剩余名額 throw e; } finally { if (insert ! null) insert.close(); if (deduct ! null) deduct.close(); conn.setAutoCommit(true); conn.close(); } }這段代碼的次序是有講究的。先執(zhí)行UPDATE扣減并且?guī)螦ND remain 0讓數(shù)據(jù)庫(kù)自己判斷剩余名額避免“先SELECT再UPDATE”的競(jìng)態(tài)窗口。executeUpdate返回影響行數(shù)0就說明當(dāng)前沒有余量。插入預(yù)約記錄時(shí)如果同一人重復(fù)預(yù)約UNIQUE KEY會(huì)拋出重復(fù)鍵異常進(jìn)入rollback()把剛才扣掉的名額還回來。最后finally里把a(bǔ)utoCommit設(shè)回true并關(guān)閉連接不然連接歸還到連接池后可能殘留事務(wù)狀態(tài)。提示如果你看到的源碼是先查再看即先SELECT確認(rèn)名額再INSERT這在并發(fā)下會(huì)翻車。兩個(gè)請(qǐng)求同時(shí)通過SELECT都看到remain1然后兩個(gè)都執(zhí)行INSERT最終實(shí)際超約。務(wù)必改成“UPDATE條件里帶剩余名額判斷”。4.3 收入月報(bào)GROUP BY配合日期格式化統(tǒng)計(jì)營(yíng)業(yè)額健身房管理系統(tǒng)的后臺(tái)通常有一個(gè)“經(jīng)營(yíng)報(bào)表”統(tǒng)計(jì)每月賣卡和課程收入。核心SQL很經(jīng)典SELECT DATE_FORMAT(create_time, %Y-%m) AS month, COUNT(*) AS order_count, SUM(pay_amount) AS total_income FROM card_order WHERE pay_status 1 GROUP BY DATE_FORMAT(create_time, %Y-%m) ORDER BY month DESC;DATE_FORMAT(create_time, %Y-%m)把2025-03-15 10:30:00格式化成2025-03這樣GROUP BY就能把同月訂單聚合到一起。%Y是四位年份%m是兩位月份。如果寫成%y-%m年份會(huì)變成25和月份組合后排序就會(huì)錯(cuò)亂。SUM(pay_amount)統(tǒng)計(jì)已支付訂單的金額總和數(shù)據(jù)來自卡券訂單表。ORDER BY month DESC讓最新的月份排在最前面。這段SQL的參數(shù)變化點(diǎn)主要是統(tǒng)計(jì)粒度如果想看日?qǐng)?bào)把%Y-%m改成%Y-%m-%d想看按教練維度的業(yè)務(wù)量把DATE_FORMAT(create_time, %Y-%m)換成coach_name。畢設(shè)答辯時(shí)面試官大概率會(huì)問“如果數(shù)據(jù)量大怎么優(yōu)化”可以先答“給create_time建索引”再看是否需要按年份做分表或匯總表。實(shí)際工程很少直接在業(yè)務(wù)表上跑這種聚合統(tǒng)計(jì)而是定時(shí)任務(wù)把日?qǐng)?bào)寫進(jìn)統(tǒng)計(jì)表但畢設(shè)階段用這條SQL已經(jīng)足夠說明你懂?dāng)?shù)據(jù)庫(kù)分組和聚合。5. 常見問題排查五個(gè)從亂碼到端口占用的真坑這一章里的每一條都是真實(shí)跑項(xiàng)目時(shí)反復(fù)遇到的按照“現(xiàn)象、原因、解決”來寫遇到問題直接對(duì)號(hào)入座。5.1 導(dǎo)入SQL后頁(yè)面和數(shù)據(jù)庫(kù)全是中文亂碼現(xiàn)象登錄頁(yè)面能打開但頁(yè)面上會(huì)員姓名顯示成???或者數(shù)據(jù)庫(kù)里查出來是中文字符網(wǎng)頁(yè)上卻是亂碼。這個(gè)場(chǎng)景在Windows下極其常見幾乎每個(gè)用MySQL的人都撞過。原因字符集三個(gè)環(huán)節(jié)沒對(duì)齊。數(shù)據(jù)庫(kù)創(chuàng)建時(shí)用了默認(rèn)latin1或utf8JDBC連接URL沒帶characterEncodingutf8JSP頁(yè)面本身的pageEncoding也不是UTF-8。三處只要有一處不一致中文就會(huì)在寫入或讀取時(shí)變成亂碼。解決按順序檢查。第一步確認(rèn)數(shù)據(jù)庫(kù)是utf8mb4ALTER DATABASE gym_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;。第二步檢查db.properties里連接URL是否帶了useUnicodetruecharacterEncodingutf8沒有就補(bǔ)上。第三步確認(rèn)JSP文件頭有% page contentTypetext/html;charsetUTF-8 pageEncodingUTF-8 %。如果還是亂碼把IDEA右下角的文件編碼也切到UTF-8有的老工程源碼文件本身是GBK編碼讀取時(shí)按UTF-8解碼就亂這是IDE層面的坑和運(yùn)行環(huán)境無關(guān)。修復(fù)順序按數(shù)據(jù)庫(kù)、連接、頁(yè)面依次做別跳到中間瞎改不然越改越亂。5.2 Tomcat啟動(dòng)報(bào)ClassNotFoundException: javax.servlet.xxx現(xiàn)象把工程部署到Tomcat后啟動(dòng)日志里第一段異常就是ClassNotFoundException: javax.servlet.ServletException或者java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet。很多人第一反應(yīng)是缺jar往WEB-INF/lib里塞servlet-api.jar結(jié)果越塞越亂。原因新下載的Tomcat 10.x把命名空間從javax.*改成了jakarta.*老JavaWeb代碼里的javax.servlet包路徑完全找不到了。這不是缺依賴是Tomcat版本和Servlet規(guī)范不匹配往lib里塞舊jar也不能生效因?yàn)門omcat自己加載的servlet-api和lib里的jar沖突。解決換成Tomcat 8.5或9.0這是老畢設(shè)項(xiàng)目最兼容的容器。如果不想換就得把項(xiàng)目里所有import javax.servlet改成import jakarta.servlet還要把JSP的依賴也同步換掉工作量不小。所以我建議初始環(huán)境選型時(shí)直接鎖定Tomcat 8.5避免這個(gè)版本沖突。評(píng)論區(qū)里常見“Tomcat 9能跑嗎”的疑問答案是可以但要用支持Servlet 4.0規(guī)范的那版包名仍是javax。5.3 啟動(dòng)時(shí)Communications link failureMySQL 8的時(shí)區(qū)與SSL現(xiàn)象運(yùn)行連接檢查或啟動(dòng)Tomcat時(shí)日志報(bào)Communications link failure末尾帶The last packet successfully received from the server was ...。有時(shí)候連接前幾次成功過幾分鐘就斷。原因最常見的是MySQL 8.0默認(rèn)開啟了useSSLtrue而驅(qū)動(dòng)版本沒跟上其次是MySQL 8要求URL顯式指定時(shí)區(qū)不指定就用服務(wù)器默認(rèn)時(shí)區(qū)如果服務(wù)器時(shí)區(qū)是UTC客戶端和數(shù)據(jù)庫(kù)端時(shí)間就會(huì)出現(xiàn)偏移甚至直接拒絕連接。另一個(gè)可能是mysql-connector-java的版本還是5.1.x連不上MySQL 8的認(rèn)證插件。解決在JDBC URL上補(bǔ)參數(shù)?useSSLfalseserverTimezoneAsia/Shanghai。驅(qū)動(dòng)版本換成mysql-connector-java-8.0.x.jar。如果用的還是DriverManager啟動(dòng)時(shí)確保MySQL服務(wù)是開啟狀態(tài)Windows下看服務(wù)列表里的MySQLmacOS或Linux下用systemctl status mysql確認(rèn)。這里有一個(gè)排查技巧先用Navicat或命令行連一次同一個(gè)數(shù)據(jù)庫(kù)如果能連上但Java連不上問題一定在URL或驅(qū)動(dòng)版本如果命令行也連不上是MySQL服務(wù)或賬號(hào)權(quán)限問題別在Java代碼里浪費(fèi)時(shí)間。這條經(jīng)驗(yàn)我反復(fù)用過Java側(cè)的連接報(bào)錯(cuò)十有八九是配置和版本問題而不是網(wǎng)絡(luò)問題。5.4 8080端口被占用Tomcat起不來的真兇現(xiàn)象IDEA運(yùn)行Tomcat時(shí)日志出現(xiàn)Address already in use: JVM_Bind或者瀏覽器訪問8080打開的是別的頁(yè)面。這個(gè)場(chǎng)景在公司和學(xué)校機(jī)房特別多因?yàn)槠渌?wù)或之前IDE殘留的Tomcat實(shí)例還沒釋放端口。原因本機(jī)已經(jīng)有進(jìn)程監(jiān)聽8080端口。常見占用成功的情況包括另一個(gè)Tomcat實(shí)例還在后臺(tái)運(yùn)行、占用端口的程序、以及Windows下經(jīng)常見到的javaw.exe僵尸進(jìn)程。解決先確認(rèn)誰占用了端口。Windows下在命令行執(zhí)行netstat -ano | findstr 8080看到監(jiān)聽PID后用tasklist | findstr PID查是哪個(gè)進(jìn)程如果是遺留的javaw.exe直接taskkill /F /PID PID結(jié)束掉。如果不想動(dòng)進(jìn)程就改Tomcat端口。注意改端口要?jiǎng)觕onf/server.xml里的三處Server port8005 shutdownSHUTDOWN、Connector port8080、Connector port8009。只改8080不動(dòng)其他兩處也會(huì)出現(xiàn)“Tomcat能起但停不掉”的情況。IDEA里還容易忽略的一處是如果配置了Tomcat Server LocalServer標(biāo)簽頁(yè)的HTTP port和JMX port是兩個(gè)不同端口JMX端口沖突也會(huì)報(bào)錯(cuò)但報(bào)錯(cuò)信息里不會(huì)直接寫8080。遇到端口相關(guān)異常優(yōu)先看完整堆棧區(qū)分是Connector端口還是JMX端口。5.5 導(dǎo)出war包后JSP頁(yè)面打不開或樣式全丟現(xiàn)象在IDEA里運(yùn)行一切正常但導(dǎo)出war包再部署到另一臺(tái)Tomcat后登錄頁(yè)能顯示HTML但CSS和圖片全丟了或者點(diǎn)擊菜單直接404。這是一個(gè)很經(jīng)典的“打包即翻車”場(chǎng)景。原因IDEA的Artifacts配置里war包只打包了編譯后的class和部分web資源WEB-INF/lib下的第三方j(luò)ar沒有被打進(jìn)war。JSP文件如果沒放在web目錄下也會(huì)漏掉。靜態(tài)資源CSS、JS和圖片丟失通常是目錄引用問題JSP里用了/image/logo.png這種絕對(duì)路徑而部署后項(xiàng)目上下文路徑變成了/項(xiàng)目名/image/logo.png路徑自然就404了。解決在IDEA里打開Project Structure - Artifacts選中當(dāng)前的war exploded配置在Output Layout標(biāo)簽頁(yè)檢查WEB-INF/lib下是否有所有依賴jar。沒有的話右鍵Available Elements里的jar選擇Put into WEB-INF/lib。同時(shí)把web資源目錄完整加入artifact。路徑問題方面JSP里引用靜態(tài)資源建議用${pageContext.request.contextPath}/image/logo.png或者用base標(biāo)簽統(tǒng)一前綴。如果你打算把war部署到Linux服務(wù)器的Tomcat這些細(xì)節(jié)比代碼本身更容易讓你在演示當(dāng)天翻車。6. 給健身房管理系統(tǒng)加一個(gè)數(shù)據(jù)快照答辯演示前的回滾技巧所有改造和排錯(cuò)做完之后最后補(bǔ)一個(gè)我自己的習(xí)慣給這個(gè)系統(tǒng)做一個(gè)數(shù)據(jù)快照腳本。健身房管理系統(tǒng)里有會(huì)員、訂單、預(yù)約記錄演示之前你永遠(yuǎn)不知道評(píng)委或自己會(huì)不會(huì)手滑刪掉數(shù)據(jù)數(shù)據(jù)和代碼分開治理才能讓演示環(huán)境隨時(shí)重新來過。#!/bin/bash # 備份按日期生成SQL文件當(dāng)作后悔藥 mysqldump -uroot -p gym_db backup_$(date %Y%m%d_%H%M%S).sql # 恢復(fù)先刪庫(kù)再建庫(kù)避免舊數(shù)據(jù)殘留 mysql -uroot -p -e DROP DATABASE IF EXISTS gym_db; CREATE DATABASE gym_db DEFAULT CHARACTER SET utf8mb4; mysql -uroot -p -D gym_db backup_20250315_100000.sqlmysqldump的參數(shù)和mysql命令類似-u、-p指定賬號(hào)密碼后面跟庫(kù)名。備份文件名用date %Y%m%d_%H%M%S生成時(shí)間戳避免覆蓋上一次備份?;謴?fù)腳本里DROP DATABASE必須謹(jǐn)慎但演示環(huán)境里這是最快回到初始狀態(tài)的方式。如果你不想每次輸入密碼可以在命令里寫-p123456注意這種寫法不會(huì)隱藏密碼shell的history里會(huì)留下明文自己本機(jī)用可以演示機(jī)不建議。建議在正式答辯或匯報(bào)前跑一次完整恢復(fù)然后按照“會(huì)員辦卡 - 預(yù)約課程 - 查詢?nèi)請(qǐng)?bào)”的主流程走一遍。這套系統(tǒng)的表不多五張表以內(nèi)的工程手動(dòng)重置也麻煩腳本化以后恢復(fù)數(shù)據(jù)從十分鐘壓縮到十幾秒。我第一次帶人用這個(gè)工程時(shí)演示前直接在真實(shí)數(shù)據(jù)上改卡號(hào)把一條會(huì)員記錄改壞了又忘記錄原來的值最后只能重新導(dǎo)庫(kù)。從那以后我養(yǎng)成了每次演示前強(qiáng)制備份的習(xí)慣不管系統(tǒng)多簡(jiǎn)單先備份再動(dòng)手。希望這篇從拆包到排錯(cuò)的筆記能幫你在JavaWeb健身房管理系統(tǒng)這條路上少踩幾個(gè)坑也祝你的項(xiàng)目一次跑通。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99高级会所久久| 五月丁香婷婷综合| 色久九| 99ER热精品视频| 五月花综合网| 91精品激情9| 五月天婷婷久色| 91久久99久久91熟女精品| 婷婷丁香五另类网站| 超碰a女人的天堂| 91成人看片| 色婷婷六月天在线| 九草性爱| 久久综合激情| sewuyue第四色| 人妻丰满精品一区二区A片| caopeng超碰| 激情婷婷| 国产26uuu| 男人視頻站| 色噜噜五月天| 亚洲综合色网站| 99国产精品白浆在线观看免费| 色亚洲婷婷| 日韩在线看AV| 狠狠色五月| www。五月天激情| 色啪网| 日日操,日日爽| 亚洲春色奇米影视| 久久久久久久久99精品| 成人五月天在线视频在线观看 | 婷婷五月激情丁香| 色婷婷a三区麻| 9久热在线精品| 五月婷婷,狠狠操| 91美女被操| 思思久久99| 99在线免费视| 丁香五月停停基地| 国产精产国品一二三在观看| 久久影视婷婷五月| 四色永久成人网站| 欧美人妻一区二区| 久热这里有精品视频| 天堂婷婷综合| 久久丝袜婷婷| 色性日本| w婷婷五月婷婷w| 丁香婷婷久久 | 疯狂做受XXXX高潮A片动画| 五月欧美色色五月| 五月色网| 无码一区二区三区四区五区91c| 中文字幕成人影视| 99热这里有精品24| 五月激情婷婷国产精品久久久久久| 婷婷99狠狠躁天天躁| 婷婷五月天人妻| 五月婷婷丁香啪啪| 五月婷婷丁香日韩在线| 日韩另类| 狠狠狠狠狠干| Www,五月天| 久久久妻人人人| #NAME?| 99综合网| 91精品综合久久久久久五月丁香| 精品人妻在线| 99热九九热| 婷婷色导航| 九九久久9 9在线观看| 婷婷色啪| 婷婷免费视频| 五月天影院| 99综合视频一体| 99久久婷婷精品视频| 九九99香蕉在线视频播放| 激情婷婷五月亚洲| 色五月成人| 亚州第一黄网| 五月婷婷爽爽爽| 9l视频自拍九色9l视频自拍九色9l社区 | 色九月婷婷丁香| 亚洲综合激情五月久久| 丁香婷婷色五月| 色综合久久五月| 亚洲天堂青草| 免费碰碰视频久| 97 A I色色| 亚洲综合五月天综合| 久久在线大香蕉| 伊人婷婷福利网| 99色色| 天天操天天插| www.sezonghe| 五月丁香六月激情综合在线| 欧美激情xxxXX| 99免费热视频在线| 丁香五月婷婷av| 亚洲AV成人无码精品| 一区二区三区视频| 91视频精品99| 在线网黄| 97在线碰| 97综合在线| 婷婷丁香小说| 激情网婷婷五月天| www.日韩国产| 婷婷五月天成人| 激情婷婷另类| 丁香六月亚洲综合| 婷婷五点亚洲| 中文字幕乱轮| 五月丁香六月婷婷在线观看| 亚洲精品永久久久久久| 久久99精品久久久久久三级| 91无码视频| www五月| 色播激情五月天| 99热视精品| 五月综合在线婷婷图片| 99爱视频免费看| 丁香五月天BBw| 婷婷丁香成人网址| 亚洲天堂aaa| 26uuu另类亚洲欧美日本一| 狠狠干 狠狠操| 婷婷丁香五月激情中文字幕版| 人人操Av| 丁香六月五月婷婷| 五月综合激情| 婷婷五月天基地| 亚洲国产99| 五月丁香综合啪啪| 亚洲精品一二三| 丁香婷婷天堂| 99少妇精品| 色原狠狠综合| 91九色精品熟女内射| 久久婷婷五月天| 中文字幕在线免费观看视频| 亚洲热综合网在线观看| 天天综合网站| 九九婷婷网五月天| 婷婷 月 丁香| 五月天丁香成人社| 99热精品在线观看| 九九爱精品网站| 激情国产综合| WWW,色五月| 五月丁香va| 亚洲成人乱码av网站| 婷婷五亚洲| 蜘蛛女侠2003满天星免费观看| 色噜噜狠狠色综合日日| 激情六月婷婷| 在线看AV| 99熟女| 99er免费在线观看| 开心激情网五月天| 91一起操| 欧美毛卡| 日本www五月婷婷| 婷婷五月天亚洲图片| 狠狠干综合网| 狠狠色色| 91日韩美女被插视频| www.久久99| 婷婷五月俺要去| 五月婷六月丁香| 99热在这里只有精品| 激情文学久久| 激情婷婷五月社区| 思思视频久久| 丁香桃色网| 涩五月婷婷| 欧美性爱5月天天天看| 九色91国产| 996精品热视频| 色香欲综合| 九九热免费观看视频| 亚洲综合激| 亚亚州久久高潮| 啪啪一区| 九九Y精品热播| 91日本在线观看| 五月丁香伊人网| 黄网免费观看| 亚洲第一精品网站| 91ncom.色| 激情婷婷。| 亚洲区,视频区,视频区免费| 色色色色综合| 激情综合丁香六| 中文字幕精品在线观看| SS丁香五月婷婷| 色色免费网站| 91综合色噜噜| 激情亚洲色图片丁香综合| 色色色色色色网| 丁香六月综合激情| 丁香六月婷婷综合激情欧美| 青草五月天| 北京熟妇搡BBBB搡BBBB| 激情综合色婷婷啪啪五月天| 激情综合网色播五月| 五月婷丁香花| 99免费热视频在线| 五月婷婷精品| 变态 另类 在线| 久久婷婷网| 丁香五月在线观看综合| 激情五月综合| 97色色综合| 丁香五月1页| 67久久| 人妻激情综合| 五月天播播中文字幕| 日本色色图| 五月婷婷黄网站大全| 久久九色| 色婷操逼| 中文色婷婷| 天天碰天天插天天操| www九九| 婷婷五月天中文字幕| 亚洲综合网区| 久久精品性爱视频,| 99热只有精品在线| 国内精品免费一区二区2009| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 婷婷 久综合| 久久五月天丁香| 91操操| 婷婷伊人| 色情婷婷| 丁香六月婷婷| 另类视频五月天| 99热资源在线| 五月激情小说| 九九99九九99偷拍视频免费看| 婷婷99狠狠躁天天躁| 俺去也五月天婷婷| 丁香五月天综合| 五月丁香久久综合| 国产Va视频| 婷婷无码视频| 婷婷精品视频| 日日夜夜干| 丁香五月婷婷狠狠色| 日韩啪| 九九色院| 粉嫩av懂色av蜜臀av熟妇| 99热 在线播放| 99er热精品视频| 天天日日| www.minyis.com【JT】实力收量可预付QQ2101460746 | av大片在线| 九九99视频精品| 亚洲综合婷婷| 天干干夜夜操| 91人人爱| 久草热在线视频| 婷婷五月综合色中文字幕| 欧州色色| 色五月天丁香婷婷| 丁香六月婷婷| 99九九视屏| 婷婷五月天桃花网| 九九热99热| 伊人热婷婷| 日狠狠| 9999三级片| 亚洲成人超碰| 丁香五月婷婷啪啪| 五月色丁香婷婷中文字幕| 中文字幕精品无码一区二区| 激情网婷婷婷| 另类激情五| 色欲丁香| 综合在线丁香五月| se.久久视频在线观看| 天天舔天天摸| 丁香五月综合高清在线| 熟女人妻视频| 99视频只有精品| 日熟女| 99ri国产| 玖操97| 一本狠婷婷综合| 婷婷五月天综合AV| 丁香五月婷婷狠狠色| 五月激情综合网| 色青五月天| 丁香视频| www.色综合| 丁香六月视频| 涩涩婷婷五月| 久久激情视频| 婷婷五月丁香手机在线视频| 色色婷婷丁香| 五月婷婷电影院| 免费观看的婷婷五月视频在线| 激情99热| 丁香五月婷婷操逼| 婷婷中文字幕网站| 性做久久久久久久免费看| 人妻久久久久久久久妻久久久久久久久| 亚洲综合丁香五月天| 97人人干视频| 亚洲色色色色色| 中文字幕性爱丰满| 丁香五月天婷婷中文字幕| 六月婷婷av| 色噜噜综合网| 日本91在线播放| 五月婷婷开心色伊人| 色婷网| 99色视频| 人妻丰满精品一区二区A片| 五月婷婷色欲| 偷偷操99| 1769在线观看欧美国产| 免费看欧美成人A片无码| 26uuu成人网| 99这里有精品视频| 婷婷五月丁香五月| 五月丁香免费看| 激情图片五月天| 免费看欧美成人A片无码| 婷婷开心六月| 99综合久久| 激情五月天色婷婷综合| 亚洲乱码日产精品BD| 五月天啪啪视频| AV国产有码| 久久99精品日本| 国外亚洲成AV人片在线观看| 亚洲性爱电影| 秋霞三及片| 久久99精品视频| 春色激情| 粉嫩AV久久一区二区三区| www.99热| 四色AVwww| 六月丁香五月激情亚洲AV| 婷婷五月丁香人妻无码高清| 日韩AV无码影片| 婷婷综合网站| 狠狠狠狠狠狠| 九色色| 九九色逼| 99精品久久久久| 亚洲岛国电影| 办公室少妇激情呻吟A片在线观看 白人荫道BBWBBB大荫道 | 青草热视频这里只有精品| 在线观看的av| 五月丁香婷婷啪啪综合| 久久99免费视频网站| 婷婷丁香熟妇综合网| 欧美日韩成人在线网| avh片在线观看| 丁香五月婷久久| 狠狠草狠狠草| 五月草影视| www..com色爱| 人妻系列久久久久久久久久久| 丁香五月影视| 4399在线观看免费高清黄色视频| 微拍92| 亚洲国产精品二二三三区| 色五月丁香五月| 五月天成人小说| 美国天天日天天操| 丰满人妻一区三区三区| 天堂婷婷五月色| 成人国产综合| 丁香婷婷黄网站| 99久免费视频| 亚州色综合| 欧洲综合一区| 99热超碰人| 欧美成人AAA片一区国产精品| 激情五月天丁香| 91要啪| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 六月婷久久| 情趣视频66| 91小黄书网址在线观看| 狠狠干五码| 色黑鬼导航| 久久er这里只有精品| 婷婷月综合| 五月丁香综合影院| 夜夜爱影院| 大香蕉 伊人夜| 无码动漫AV| 草草色情综合网| 搡BBBB搡BBB搡18 | 刘玥av在线| 国产精品久久久久久喷浆| 欧美色婷婷| 能看的AV| 九九视频在线观看视频6 | www激情网| 五月天播播综合| 婷婷五月天美女| 天天综合情| 另类天堂| 激情5月婷婷狠狠干| 另类色视频| www色婷婷久久综合久色| 99视频地址| 97丁香花五月天激情小说| 【乱子伦】黄色| 久思思久视频| 色婷婷色情| 五月天久久www| 五月六月激情| 永久免费一区二区三区| 丁香啪啪| 国产69久久久欧美黑人A片| 国产人妻777人伦精品HD| 欧美大片免费观看| 任你爽在线视频| 日韩精品VIP| 人人干女人| 99热热这里只精品996小说| 久9久9久9久9久9久9| 大香蕉av在线| 丁香五月丁香伊人| 色色色综合色| 九九精品热| 农村熟妇高潮精品A片| 婷婷五月天国产传媒| 色婷婷aV四虎| 五月丁香另类图片| 南京搡BBBB搡BBBB| 夜夜天天久久婷婷| 久热这里只有精品6| 婷婷五月天激情电影| 九色婷婷| av操B网站| 亚洲啪啪自拍| www久久99| 丁香五月婷婷六月婷| 天天色天天舔天天爱天天爽| 九九热在线观看6| 老司机午夜福利视频金瓶梅| 五月丁香六月婷婷无码| 久久视频这里有精品99| 丁香六月婷婷久久综合| 99碰碰。| 久久98| 五月婷人妻| 五月成人综合| 丁香五月天激情视频| 成人做爰A片免费看网站找不到了| 68热超碰在线| 玖玖国产视频一区| 人人干Av| 综合久久99| 婷婷五月在线观看| 激情文学 综合 九月| 日本色婷婷| 桔色成人官方网站| 亚洲激情综合网| 久久99网站| 九月色婷婷综合亚洲| 九九久久五月天综合伊人| 激情五月天婷婷免费观看| 综合伊人狠狠| 99精品偷自拍| www999日韩精品| www.com操| 婷婷成人AV| 乱岳熟女50岁| 91操在线视频| 色婷婷五月中文字幕在线dvd| 大香蕉520| 国产亚洲成AV人片在线观黄桃| 97极品在线| 狠狠色狠狠鲁| 开心激情网五月天| 超碰在线综合| 婷婷色情小说| www.91久久| 色色网91| 激情网五月婷婷| 无码99| 91精品国产综合久久蜜芽解析速度| 五月天婷婷六月激情网| 欧美性猛交99久久久99| 五月婷久久综合| 久久aaa| 日本色久| 99热999| 日本色色色色色色色色一色二色| 丁香五月天啪啪| 日日爽夜夜爽| 伊综合蕉| 色五月丁香在线| 欧美精品999| 国内久久亭亭| 午夜五月天| 青草视频在线观看视频| www.婷婷网| 99精品视频偷拍| 97超碰色| 五月天激情啪啪| 五月婷婷激情网| 色九月婷婷综合| 丁香六月欧美| 婷婷婷婷婷婷婷婷婷婷丁香| 五月天自拍网| 五月婷婷六月激情| 99人妻碰碰碰久久久久禁片| 五月天激情小说网| AⅤ网站在线看| 丁香五月aV| 免费观看的av| 99热网址| 伊人婷婷综合| 欧美毛卡| 丁香五月中文字幕色播| 区啪精品| 丁香五月婷婷在线观看| 五月丁香久久激情综合| 色爱终和网| 538在线精品| 99在线公开视频| 婷婷 伊人 久久| 超碰99成人在线| 无码人妻一区二区三区免费九色| 丁香五月花影院| 九九爱这里只有精品| 久草A片| 久久久精品AV| 中文无码婷婷| 五月丁香综合啪啪| 99亚洲视频| 综合久| 婷婷午夜丁香| 色色色综合网| 狠狠干婷婷| 丁香五月天激情网址| 五月丁香成人网| 思思热闹这里只有精品| 亚州色色色| 9+1视频网址| 99视频久久免费视频| 丁香五月色| 色色成人網| 色婷婷99| 婷婷成人综合五月| 天天肏天天肏| 超碰在线综合| 五月丁香香蕉| 人妻久久久| 亚洲天天免费| 亚洲精品**不卡在线播he| 天天爱夜夜爽| 夜色综合网| 91碰碰视频| 免费观看亚洲AV片| 高清无码网址| 99精品视频在线| 国产精女同一区二区三区久| www夜夜| 日韩99视频| 五月综合无码| 丁香五月AV综合激情| 婷婷狠狠综合网入口| 色婷婷狠狠18| 激情综合区| 五月丁香激情综合网| 日本婷婷综合精品| 日本丰满久久| 日日噜噜夜夜狠狠久久丁香六月| 最新激情五月天| www.99riav99| 五月天开心婷婷激情网站| 91色在线| www.99色| 丁香久久| 99久久精| 新激情五月天| 九色视频91疯狂| 色六月天天激情综合网| 99久久超级| 色五月超碰| 久久欧洲久久| 91国产精品视频播放| 婷婷五月综激情| 亚洲va日| 亚洲AV无码电影| 色五月琪琪| 久久综合五月天激情小说网站| 丁香五月婷婷六月| 91丨九色丨大屁股| 琪琪色网址| 9 1超碰九色| 激情校园 亚洲| 色吊操色妞| 91中文在线| 只有久久精品免费| 99热在线精品观看| 黄色片avv| 91干在线| 日日操,夜夜撸| 综合色色网| 我淫我色婷婷五月天激情四射| 色色99| 夜夜天天久久婷婷| 成人电影AV在线观看| 国产乱妇无乱码大黄AA片| 97五月天| 欧美另类五月激情| 大香蕉人在线65| 狠狠精品干练久久久无码中文字幕 | 99久久婷婷综合| 99久久久久| 天天狠狠色| 色婷婷婷婷| 色婷婷在线电影| 9久热在线视频精品| 91啪级电影| 色停停香蕉视频| 9l视频自拍九色9l黑人| 亚洲AV成人在线| 5月丁香啪啪啪| 亚洲午夜精品久久久久久人妖| 色欧美日| 人与禽A片啪啪| 欧美色色色色色色色| 五月丁香六月婷婷的女人| 亚洲视频a| 久久99精品久久久久子伦| 久久久av久av久片一区二区| 日韩九九| 亚洲熟女色| 思思热高清在线观看| 精品婷婷五月视| 99这里只有精品|v| 性天堂久久| 久热这里只有精品66| 五月丁香亚洲校园欧美| 日本三级网址| 欧美日韩日韩成人| 久久五月婷天天干| 国外亚洲成AV人片在线观看| 天天操天天干天天日| 午夜九九九九九九九九九九九九九| 三级大香蕉网| 五月的丁香六月的婷婷| 99在线精品视频观看免费下载| 婷婷激情九月| Caop在线| 久久五月天免费网站| 26uuu成人网| 99精品偷自拍| 99热这里只有精品8| 啪啪综合网| 五月天操逼网| 亚洲婷婷五月天激情| www.俺去也com| 99在线观看视频精品| 99精品无码视频| 色色五月婷| 婷婷丁香激情综合色情| 国产白丝在线一区| 久久久jd| 色一情一乱一乱一区91| www,com,五月色色| 超碰人人99| 九九 激情 网| 色播五月综合网| 六月婷婷视频| 九九综合网色全集 | 青青草日本亚洲| 午夜精品777| 人妻操逼| 人人摸人人射| 天天艹夜夜爽| 丁香五月天精品| 婷婷丁香基地在线| 这里只有精品视频在线观看免费| 五月丁香久久网| 色五月婷婷天天干| 久久五月婷综合网| www,五月丁,com| 日本天天综合| 肏日网在线看| 九九精品系列| 久久婷综合网| 伊人婷婷综合| 大香蕉520| 思思热思在线精品视频| 很很干在线视频| 六月丁香婷婷六月激情综合| 色五月首页| 人人操五月天| 9999久久久久| 六月丁香五月婷婷| 91色呦哟| 99热www| www.91av.com| 亚洲精品中文字幕成人片| 黑人无码一区| 亚洲综合视频天天精品| 五月天婷婷色小说| 另类激情五月| 亭亭玉月丁香| 狠狠爱综合网| 人妻熟女一区二区AV| 狠狠干.com| 性av| 婷婷丁香社区| 九月丁香| 久久思思热视频| 婷婷五月色天| 色噜噜狠狠色综无码久久合欧美| 超喷97免费在线视频| 日本韩国视频在线观看社区免费的9| 五月丁香人妻| 婷婷在线播放av| 在线A色| 丁香五月六月综合激情| 丁香婷婷大香蕉| 青柠影视免费高清电视剧| 婷婷丁香五月综合久久| 人人操日| 欧美激情2025| 国产成人AV在线播放| 久久思思热| 综合激情九月婷婷,激情综合婷婷中文字 | 国产在线aaa片一区二区99| 九九视频在线观看视频6| 综合激情专区| 五月丁了香蕉综合| 开心网五月色婷婷| 99热官网| www91久久| site:901-07.com| 欧美婷婷五月| 狠狠色色| 婷婷久久爱| 五月天激情综合网俺也去| 激情久久综合网| www.91九色| 五月四色激情| 人人摸人人操人人爽| 丁香五月天激情综合网| 伊人久久婷| 婷婷99| 五月丁香啪综合| 国产婷婷色综合AV蜜臀AV| 五月婷婷九| 五月天激情小说电影| 色五月成人| 北京熟妇搡BBBB搡BBBB| 丁香五月网| 色高清无码视频| 另类激情五月| 亚洲综合碰| 亚洲中文无码成人| 在线天堂9| 大香蕉在线99热| 欧美精品A片一区在线观看| 丁香五月瑟瑟| 99玖玖免费视频| 啪啪啪丁香五月| 99re99热| 五月婷精品| Caoporn公开| 五月6香色婷婷视频| 激情五月婷婷五月丁香五月开心五月| 五月婷色| 婷婷色色五月天| 五月婷在线观看| 国产99久| 99热这里有精品6| 九九九九毛片| 9 1在线视频| 5月婷婷性视频| 另类小说五月天| 国产操B视频| 久久久免费精彩视频| 国产精品第一国产精品| 这里只有精品热| AV电影在线播放| 久久天堂精品| 五月天婷婷在线AN| 天天躁日日躁狠狠躁日日躁2022年5月9日| 五月婷婷丁香成人网| 日本在线99| 日都一级A片| 五月丁香六月婷婷免费视频| 日本久久高清| 日本一级一片免费视频 | 狼人婷婷久久| 久草五月天| 97超级碰人人| 欧美综合丁香网| 久久99综合| 玖玖国产视频一区| 91精品91久久久中77777| 亚洲色图五月丁香| 国产精品爽爽久久久久久| 热99热久| 色色色色色色色色网站| 大香蕉久久视频久久视频| 色色色777| 久机视频这只有精品| 久久久婷婷五月亚洲97号色| 99热免费| 伊人9在线| 六月婷婷久久| 另类激情码| 26.uuu丁香五月婷婷| 日本在线视频看se99| 久久婷婷成人综合色怡春院| 五月丁香综合色婷婷| 我要看激情五月天| 欧美A级成人婬片免费看理论| 五月婷婷和六月| 亚洲精品久久久久久久久久飞鱼| 青青操avbb| 亚洲乱码日产精品BD| 五月天另类综合网| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 狠狠色丁香久久久婷| 国产激情综合五月久久| 国产亚洲99久久精品| 九九干视频| 天天综合网91| 久久99综合| 久热这里这里有精品| 六月婷婷综合| 新五月天婷婷激情电影| 伊久大香蕉| 天天天操天天天日| 免费成人网在线观看| 五月天婷婷网站888| 色婷婷五月色| 99热精品在线观看| 激情六月丁香综合| 日本精品人妻无码77777| 亚洲人人操BD| 色97啪啪| 日本三级黄色大片| 五月丁香婷婷无码中文| 538在线精品| 欧美成人精品老美女噜噜噜| 婷婷欧美激情| 91久久99久久91熟女精品| 久久五月天合网| 国产真实乱对白精彩| 婷婷五月色網站| 伊人9在线| 五月婷婷激情综合| 六月色五月天天婷婷| 4399精品一区二区| 99亚洲视频| 五月丁香婷中文| 日日夜夜天天| 这里只有九九精品| 金品在线视频99| 久色网| 熟女五月天久久综合| 五月久久丁香| 任你爽精品免费视频6| 久久99久久99精品免视看婷婷| 国产精品久久久久久久久久 | 色婷婷情片| 黄色AV日韩| 亚洲 无码 中文字幕 中出| 婷婷五月娱乐在线| 99超级碰免费视频| 五月丁香好婷婷姑娘综合网| 99热www| 婷婷伊人| 99国产这里只有精品| 人妻视频在线| 日本视频不卡123区| 成年人丁香五月| 色五月开心婷婷| 大香蕉福利导航| 国产精品社区| 婷婷综合成人五月天| 99亚洲精美视频在线观看| 狠狠干综合| 六月合五月婷| 激情婷婷| 久久精品日| 五月激情站| 久草五月天| 九九热99re8热免费观看| 九九色黄色| 综合网色| 六月婷婷亚洲| 97香蕉碰碰人妻国产欧美| 99超超碰| 日韩成人AV在线| 久久五月六月| 久久九精品| 99精品亚洲| 五月天亚洲色| 啊V视频在线观看| 丁香五月色激情| 久久久婷婷| 五月天狠狠网| 99热在线免费观看精品| 猫咪伊人久久| 激情九月婷婷九月| 99精品在线| 天天爱天天做天天| 热久久66| 久久xxxx| 综合一区二区三区| 丁香婷婷老熟女综合网| 日日色综合| 五月天com| 久久成人天| 色婷婷电影| 日韩在线观看亚洲| 99热这里只有精| 伊人婷婷色| 九九热视频免费| 天天性视频| 色久影院| 久热视频97AV在线观看| 国产SUV精品一区二区6| caop在线视频| 天天干天天操天天爽| 亚洲看av的网站| 五月丁香久久网| 色婷婷偷拍| 久久丁香九| 亚洲国产精品VA在线看黑人| 五月婷婷综合视频| 欧美色九| 日本色爽| 免费视频这里只有精品| 狠狠色丁香99| 久久欧洲久久| 狠狠色丁香| 激情九色| 97超级操操| 草榴成人影片| 久久久天堂国产精品女人| 天天天天天天操| 九九碰九九爱97超| 欧美狠狠色| 六月婷婷久久| 天天综合插插| 成年AAAA色情| 秋霞午夜理论| 99日本精品视频热| 99操逼视频| 国产婷婷综合在线免费视频| 97自拍99| 综合网网欲色| 激情婷婷视频在线| 色吊操色妞| www99精品在线观看| 亚洲无AV在线中文字幕| 无码免费人妻A片AAA毛片西瓜| AV性爱在线| 久久a热| 婷婷激情九月| 色吧综合网| 97碰碰在线看视频免费| 五月丁香久人妻中文| 婷婷色六月| 丁香激情网| 亚洲婷婷五月天激情| 欧洲亚洲精品| www色婷婷com| 夜夜干天天操| 殴美日韩成人| 婷婷五月丁香欧洲| 91AV婷婷| 98色花堂98t.R| 97色在线视频| 99资源人人| 99视频精品在线| 色婷婷手机在线| 99久久久| 狠狠草狠狠草| 性天天中文网| 日韩成人影片网站| 色婷婷九月| 丁香五月深爱五月婷婷| 精品久久66| 亭亭玉月丁香| 伊人五月久久| 五月婷婷在线丁香| 思思99精品视频| www.五月激情红色| 亚洲成人电影aaaa| 亚州精品色情无码A片| 大香蕉久久视频久久视频| 26UUU精品一区二区| 婷婷五月激情图片| 狠狠狠狠狠狠| 秋霞影音91人妻久久| 97色色色色色色色| 久操大香蕉| 亚洲中文字幕在线电影| 99色热| 思思热在线视频精品| 色婷婷五月网| 日日夜夜婷婷| 大香蕉伊人爱在线| 九九99久久| av人人干| 亚洲色婷婷| 男女啪啪做爰高潮无遮挡| www.六月丁香看AV| 岛国AV网站| 五月婷婷丁香| AV电影在线播放| 成人综合视频网址| 色色婷婷综合| 亚洲久艹| 欧美色婷婷| 五月情综合| 婷婷五月天综合久久| 噜噜吧天天爱| 亚洲色婷婷五月天| 中文AV网站| 久久天堂| www.minyis.com【JT】实力收量可预付TG@LXSPSW8 | 天天射影院| 嫩草哈哈操| 五月婷婷黄色| 久一这里有精品国产| 婷婷五月视频| 大香蕉五月丁香| www.婷婷五月天| 精品九九婷婷| www.色综合| 无码人妻一区二区三区免费九色| 欧美丁香五月夫妻天| 精品色色| 久久丁香综合香蕉| 五月天婷婷伊人| 激情婷婷亚洲五月| 婷婷亚洲五月| 成人无码精品1区2区3区免费看| 岛囯综合激情网| 色九网| 亚洲五月天婷婷综合| 精品网站:999WWW| 亚洲中文字幕在线观看| www.精品久9| 天天草婷婷五月| 99精品热| 国产露脸150部国语对白| www,色婷婷| 六月丁香综合网| 六月婷婷激情图片| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 色色网站毛片| 色婷婷激情四射视频| 婷婷五月天伦理| 九九热在线观看视频| 欧美性色A片免费免费观看的| 久久99精品日本| 秋霞网在线观看理论91| 久草性爱| 伊综合蕉| 亚洲综合网激情小说| 超碰网站在线观看| 九月丁香久久网| 掩去也综合五月视频| 激情文学五月丁香六月婷婷 | 久久视频婷婷视频| 综合久久9| 丁香婷婷久| 日本熟女视频一区二区| 玖玖婷婷色五月| 亚洲综合网在线| 色色日韩| 嫩草视频在线观看| 婷婷五月丁香性爱| 婷婷五月天,影院| av色婷婷| www色婷婷com| 岛国av电影网站| 亚洲五月婷婷| 五月丁香精品| 五月婷婷婷婷| 色播jjjj| 亭亭色天香| 来吧亚洲综合网| 99资源在线视频| 狠狠色丁香久久婷婷综合五月| 国内外色色色色色成人视频| 99久热在线精品| 色香欲综合| 婷婷五月综合色小姐小说| 丁香5月综合啪啪| 欧美性爱五月天| 1024操逼视频| 五月婷婷六月丁香色| 日韩国产在线精品| 五月婷婷开心色伊人| 丁香婷婷大香蕉| 色吧婷婷| 天天爱天天吃狠天天透| 色在线免费观看| 五月婷六月丁香| 欧美电影在线播放| 久久亚洲A| 国产在线中文字幕| 超碰电影在线播放| 亚洲色色色| 婷婷五月六月丁香| 五月丁香在线婷婷美女| 99综合五月免费视频色婷婷| 激情5月婷婷狠狠干| 日韩无码专区| 亚洲色综合| 99九九久久| 色综合久久天天综合网| 天天拍天天操| 五月天婷婷AV| 丁香婷婷激情六月五月开心| 啪啪啪丁香五月| 五月婷婷网五月在线| 五月天成人综合| 丁香五月天AV在线| 人妻精品一区二区三区| 久热人妻| 五月天婷婷色综合| 婷婷丁香色五月亚洲| www.五月婷婷久久.com| 99人人干| 久久五月丁香| 亚洲国产精品成人免费一区久久久在线观看AAAA | 久热九九| 99九色视频在线观看| 97啪啪| 、激情六月天| 久久婷婷综合五月天| 人人草公开操| 26uuu最新地址| 99热这里在线精品| 日本一级一级一级一级| 精品无码色| 国产古装妇女野外A片| 丁香五月 六月婷婷首页| 国产,欧美,学生妹,视频| 日韩小视频在线99| 丁香影院五月综合| 99热这里只有精品搜| 五月婷婷色色网址| 丁香六月狠狠干| 91久久| 久久免费精彩视频| 色五月婷婷五月丁香五月激情五月视频| 99激情视频| 激情五月天开心网丁香无码| 婷婷精品在线| 啪啪综合网| 激情五月六月婷婷| 99在线观看这里都是精品| 4399啪啪视频| 狠狠色综合五月| av第一二区| 色色色综合网| WWW丁香五月| 五月久久丁香| 五月婷婷香蕉| 色婷婷在线视频观看| 五月天激情国产综合婷婷婷| 另类在线| 一區四區歐美日韓| AV在线免费观看不卡| 婷婷深爱五月丁香| 亚洲六月色婷婷| www.天天日| 五月六月激情婷婷| 182.t午在线观看| 亚洲成人超碰| 五月天婷婷免费| 99久在线精品99re8| 天天色爽| 天天肏天天舔AV| 玖玖爱综合网| 五月色欧洲| 丁香五月婷婷五月基地| 日本99在线视频| 丁香婷婷激情五月色| 665566 无码| 五月丁香精品| 激情婷婷狠狠干| 五月天堂色色| 五月天色五月| 久久A V无码视频| 美女精品一级不卡视频| 国产精品色色| 亚洲另类视频| 亚洲中文字幕AV| 九月丁香八月婷婷加勒比| 亚洲乱码w在线观看| 另类激情五月天。| www.91热久久| www99热| 黄涩毛片| 亚洲成人无码网站| 国自产拍偷拍精品啪啪一区二区| 99精品免费欧美小视频 | 日韩成人无码人妻| 插插插色综合网| 久草a片| 国产精品天天狠天天看| 五月天婷婷乱论小说| 久久这里面只有精品视频| 婷婷五月天丁香激情| 五月天婷婷成人网| 中文AV网| \\五月天婷婷激情| 激情九九六月激情免费视频| 中文人妻AV久久人妻18| 五月丁香婷婷基地| 五月丁香激情综合啪| 1024你懂的欧美曰韩| 婷婷五月天综合网| 丁香五月亚洲天堂| 思思视频久久| 久久免费丁香| 成人婷婷色综合| www.91久久| 婷婷播5月| 日日干日日s| 亚洲性爱电影| 丰滿爆乳一区二区三区| 色五月天综合网| 婷婷丁香激情综合色情| 丁香五月AV综合| 精品女人九九九| 无码免费人妻A片AAA毛片西瓜| 日本色图综合| 五月天激情无码| 久久人妻乱子伦| 99re在线视频| 91综合网| 超碰婷婷色| 激情伊人五月天| 激情综合色婷婷啪啪六月天| 国产日日操夜夜操的肉棒视频| 丁香成人五月天| 丁香六月天| 激情五月丁香综合网站 | 婷婷五月激情黄色| 日日夜夜天天| 成人婷99最新| 亚洲综合激情五月| 五月丁香六月色婷婷| 五月婷婷色播视频| 踪合专区啪啪| 久婷视频|