亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Spring Boot教務(wù)管理系統(tǒng)畢設(shè):從選課并發(fā)到權(quán)限設(shè)計(jì)全解析

Spring Boot教務(wù)管理系統(tǒng)畢設(shè):從選課并發(fā)到權(quán)限設(shè)計(jì)全解析 又到一年畢業(yè)設(shè)計(jì)季Java方向里“基于Spring Boot的教務(wù)管理系統(tǒng)”這類(lèi)題目幾乎是每年都會(huì)出現(xiàn)的熱門(mén)選題。作為去年完整帶完一個(gè)類(lèi)似課題的過(guò)來(lái)人我可以負(fù)責(zé)任地告訴你這題選得穩(wěn)但能不能順利答辯過(guò)關(guān)取決于你做系統(tǒng)時(shí)有沒(méi)有把權(quán)限、事務(wù)、并發(fā)這幾個(gè)關(guān)鍵問(wèn)題想清楚。這篇文章不打算貼一整段代碼讓你抄那樣沒(méi)意義。我要拆的是這一類(lèi)項(xiàng)目從0到1的完整思考鏈路為什么選這個(gè)課題、技術(shù)棧怎么定、數(shù)據(jù)庫(kù)怎么建模、核心業(yè)務(wù)邏輯怎么落、前后端聯(lián)調(diào)時(shí)踩過(guò)哪些坑。你照著這個(gè)思路自己重寫(xiě)一遍不僅能應(yīng)付畢業(yè)設(shè)計(jì)還能在論文的“技術(shù)難點(diǎn)”章節(jié)寫(xiě)出真正有深度的內(nèi)容而不是湊字?jǐn)?shù)的廢話。1. 課題定位與技術(shù)選型為什么教務(wù)管理系統(tǒng)是Java畢設(shè)的“安全牌”1.1 教務(wù)場(chǎng)景里到底藏著哪些真實(shí)痛點(diǎn)先說(shuō)課題本身的業(yè)務(wù)價(jià)值。如果你去問(wèn)任何一所高校的教務(wù)老師他們?nèi)粘9ぷ鞯恼鎸?shí)狀態(tài)一定包含這些場(chǎng)景課程安排靠Excel表格流轉(zhuǎn)學(xué)生選課在某個(gè)舊系統(tǒng)里卡到崩潰成績(jī)登記完了又因?yàn)楦袷讲唤y(tǒng)一要反復(fù)返工。教務(wù)管理系統(tǒng)要解決的就是把這些分散的業(yè)務(wù)集中到一套可操作的Web系統(tǒng)里教務(wù)管理員維護(hù)課程數(shù)據(jù)、發(fā)布開(kāi)課計(jì)劃學(xué)生在線選課退課教師錄入成績(jī)學(xué)生再查詢成績(jī)。這個(gè)業(yè)務(wù)模型太適合做成畢業(yè)設(shè)計(jì)了它不是一個(gè)“玩具項(xiàng)目”而是有真實(shí)業(yè)務(wù)約束的完整系統(tǒng)。你要處理的核心難點(diǎn)在選課和成績(jī)兩個(gè)環(huán)節(jié)選課要控制課程容量避免超選成績(jī)要對(duì)不同角色做權(quán)限隔離教師不能改別人的課程成績(jī)。這些約束天然地引導(dǎo)你去思考事務(wù)、并發(fā)、權(quán)限校驗(yàn)而這些正是答辯時(shí)最容易問(wèn)倒人的地方。1.2 技術(shù)棧怎么選才能既省事又不掉價(jià)Spring Boot作為主框架在Java畢業(yè)設(shè)計(jì)里是絕對(duì)的主流選擇原因很直白它把傳統(tǒng)SSHSpring MVC Spring Hibernate那一大堆XML配置全部簡(jiǎn)化成了自動(dòng)配置和注解你從零搭一個(gè)Web項(xiàng)目到跑起來(lái)可能只需要幾分鐘內(nèi)嵌的Tomcat也讓你不用額外去裝服務(wù)器環(huán)境。我比較推薦的技術(shù)棧組合是Spring Boot MyBatis Plus MySQL前端可以選Thymeleaf服務(wù)端渲染也可以做成前后端分離的Vue Element UI。這里有個(gè)權(quán)衡Thymeleaf適合想要快速跑通全流程、不想處理跨域和前端工程化的同學(xué)所有頁(yè)面由后端渲染部署時(shí)打成Jar包就行。Vue 前后端分離適合想在論文里多寫(xiě)一章“前后端分離架構(gòu)設(shè)計(jì)”的同學(xué)但相應(yīng)地要處理跨域、Token鑒權(quán)、前端打包這些問(wèn)題。數(shù)據(jù)庫(kù)用MySQL就夠了別為了顯得高級(jí)去碰PostgreSQL或MongoDB除非你的選題已經(jīng)明確要求。MyBatis Plus在日常CRUD上能省大量SQL編寫(xiě)時(shí)間學(xué)習(xí)成本也低。1.3 功能范圍怎么定才能做到“麻雀雖小五臟俱全”我見(jiàn)過(guò)不少同學(xué)設(shè)計(jì)的教務(wù)管理系統(tǒng)功能表比企業(yè)ERP還復(fù)雜排課、調(diào)課、教室申請(qǐng)、畢業(yè)審核全塞進(jìn)去結(jié)果做了三個(gè)月連選課功能都還沒(méi)跑通。畢業(yè)設(shè)計(jì)不是商業(yè)軟件功能范圍必須收斂。合理的范圍建議聚焦三大角色、四條核心鏈路管理員用戶管理、課程管理、開(kāi)課管理、選課截止時(shí)間設(shè)置教師查看授課列表、錄入成績(jī)、查看所授課程選課名單學(xué)生選課退課、查看已選課程、查詢成績(jī)、查看公告這四條鏈路是管理員維護(hù)課程并發(fā)布開(kāi)課、學(xué)生選課退課、教師錄入成績(jī)、學(xué)生查詢成績(jī)。你看每條鏈路都完整覆蓋了一個(gè)業(yè)務(wù)閉環(huán)系統(tǒng)看起來(lái)不臃腫論文里能展示的截圖和用例又足夠多。2. 數(shù)據(jù)庫(kù)建模與權(quán)限設(shè)計(jì)項(xiàng)目上限由這一部分決定2.1 用戶角色表直接寫(xiě)死字段還是引入RBAC用戶與角色的關(guān)系處理是教務(wù)管理系統(tǒng)里第一個(gè)暴露設(shè)計(jì)水平的地方。最基礎(chǔ)的做法是用戶表里加一個(gè)role字段值就是“admin”“teacher”“student”這種字符串用枚舉去判斷當(dāng)前用戶的角色權(quán)限。這個(gè)方案在功能實(shí)現(xiàn)上沒(méi)有任何問(wèn)題代碼寫(xiě)起來(lái)也快。但如果你想讓論文更有技術(shù)含量建議改成簡(jiǎn)單的RBAC模型用戶表(user)、角色表(role)、用戶角色關(guān)聯(lián)表(user_role)。雖然管理員的角色基本固定但RBAC的好處在于以后擴(kuò)展班主任、輔導(dǎo)員、教務(wù)秘書(shū)這些角色時(shí)不需要改表結(jié)構(gòu)只需往角色表里加記錄。更重要的是這個(gè)設(shè)計(jì)能在論文的“系統(tǒng)設(shè)計(jì)”章節(jié)畫(huà)出三張標(biāo)準(zhǔn)的表結(jié)構(gòu)圖顯得你的系統(tǒng)有擴(kuò)展性而不是一錘子買(mǎi)賣(mài)。學(xué)生和教師的信息建議不要堆在用戶表里。用戶表只存用戶名、密碼、昵稱(chēng)、角色這些登錄相關(guān)的字段教師信息表(teacher)和學(xué)籍信息表(student)通過(guò)user_id和用戶表關(guān)聯(lián)。這樣做的好處是表結(jié)構(gòu)語(yǔ)義清晰教師有職稱(chēng)、所屬教研室學(xué)生有學(xué)號(hào)、入學(xué)年份、專(zhuān)業(yè)如果全塞進(jìn)用戶表后期查詢和維護(hù)都會(huì)很別扭。2.2 核心業(yè)務(wù)表結(jié)構(gòu)拆解與關(guān)聯(lián)關(guān)系教務(wù)系統(tǒng)的核心業(yè)務(wù)表我建議至少要設(shè)計(jì)出以下這五張第一張是課程表(course)字段包括課程編碼、課程名稱(chēng)、學(xué)分、學(xué)時(shí)、課程簡(jiǎn)介。課程是“基礎(chǔ)資料”類(lèi)似于商品庫(kù)里的商品主數(shù)據(jù)。第二張是開(kāi)課表(course_open)這是很容易被忽略但是最關(guān)鍵的一張表。它記錄的是“本學(xué)期某老師在某時(shí)間開(kāi)設(shè)了某門(mén)課”字段包含開(kāi)課學(xué)期、授課教師ID、上課時(shí)間地點(diǎn)、選課容量、已選人數(shù)、狀態(tài)。為什么需要一個(gè)開(kāi)課表因?yàn)橥婚T(mén)課程在不同學(xué)期可能由不同老師開(kāi)設(shè)、容量也不一樣如果把授課教師和上課時(shí)間直接放課程表就沒(méi)法表達(dá)這種動(dòng)態(tài)關(guān)系。第三張是選課表(course_selection)字段包括選課ID、學(xué)生ID、開(kāi)課ID、選課時(shí)間。我特別提醒這張表一定要加聯(lián)合唯一約束索引建立在(student_id, course_open_id)上否則并發(fā)環(huán)境下一定會(huì)出現(xiàn)重復(fù)選課的數(shù)據(jù)臟記錄。這是我在實(shí)際項(xiàng)目中踩過(guò)的坑后面單獨(dú)講。第四張是成績(jī)表(score)字段包括成績(jī)ID、學(xué)生ID、開(kāi)課ID、成績(jī)值、錄入時(shí)間、備注。成績(jī)表跟選課表是什么關(guān)系一般建議成績(jī)表單獨(dú)存在而不是直接在選課表上加一個(gè)成績(jī)字段。雖然有些系統(tǒng)會(huì)直接復(fù)用選課記錄但獨(dú)立的成績(jī)表更利于教師錄入、學(xué)生查詢、管理員統(tǒng)計(jì)成績(jī)分布這些操作。第五張是公告表(notice)用于管理員發(fā)布通知。2.3 選課表聯(lián)合唯一約束一次并發(fā)問(wèn)題的前車(chē)之鑒這里說(shuō)一個(gè)真實(shí)項(xiàng)目里的教訓(xùn)。某同學(xué)做選課功能時(shí)選課表的定義只把主鍵ID設(shè)成自增沒(méi)有加任何唯一約束然后寫(xiě)了一個(gè)“先判斷是否已選過(guò)再插入新記錄”的邏輯。單用戶測(cè)試完全正常一旦幾十個(gè)學(xué)生同時(shí)點(diǎn)擊選課數(shù)據(jù)庫(kù)中就會(huì)出現(xiàn)同一個(gè)人選了同一門(mén)課兩次的數(shù)據(jù)。原因并不復(fù)雜兩個(gè)請(qǐng)求同時(shí)通過(guò)了“是否已選過(guò)”的判斷然后都執(zhí)行了插入因?yàn)閿?shù)據(jù)庫(kù)層面沒(méi)有任何約束阻止重復(fù)數(shù)據(jù)寫(xiě)入。解決辦法分兩層表結(jié)構(gòu)層加上(student_id, course_open_id)的聯(lián)合唯一約束這是最后一道防線代碼邏輯層選課前再加一次查詢校驗(yàn)兩道防線同時(shí)存在才能叫可靠。我們?cè)谧瞿M項(xiàng)目X時(shí)把這個(gè)坑寫(xiě)進(jìn)了缺陷報(bào)告后來(lái)每次設(shè)計(jì)涉及用戶與業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)的表我都會(huì)第一時(shí)間問(wèn)自己這個(gè)關(guān)聯(lián)關(guān)系在數(shù)據(jù)庫(kù)層面用什么約束來(lái)保護(hù)3. 后端核心實(shí)現(xiàn)把關(guān)鍵業(yè)務(wù)邏輯寫(xiě)扎實(shí)3.1 項(xiàng)目分層與代碼結(jié)構(gòu)Spring Boot項(xiàng)目的包結(jié)構(gòu)建議按照功能模塊而不是技術(shù)類(lèi)型來(lái)劃分。很多教材喜歡用comon、mapper、service、controller這種方式按層分包功能簡(jiǎn)單時(shí)沒(méi)問(wèn)題但一旦功能多了代碼會(huì)堆得很亂。我習(xí)慣的方式是主包下面先按業(yè)務(wù)模塊分比如system模塊用戶、角色、course模塊課程、開(kāi)課、selection模塊選課、score模塊成績(jī)每個(gè)模塊內(nèi)部再放controller、service、mapper、entity、dto這些子包。這樣的結(jié)構(gòu)在做演示或后期擴(kuò)展時(shí)能快速定位“選課相關(guān)的所有代碼都在selection包里”不用在幾十個(gè)controller文件里翻來(lái)翻去。還有一個(gè)在畢設(shè)論文里加分的小點(diǎn)寫(xiě)一個(gè)統(tǒng)一的Result返回類(lèi)和全局異常處理器。統(tǒng)一返回類(lèi)保證后端返回結(jié)構(gòu)一致類(lèi)似{ code: 200, message: 操作成功, data: ... }全局異常處理器用RestControllerAdvice加ExceptionHandler處理業(yè)務(wù)異常、參數(shù)校驗(yàn)異常、運(yùn)行時(shí)異常這樣業(yè)務(wù)代碼里只需要throw一個(gè)自定義的BusinessException不用到處try-catch。答辯時(shí)如果老師問(wèn)“你的系統(tǒng)怎么處理異常”你可以直接說(shuō)出這套機(jī)制的設(shè)計(jì)理由。3.2 登錄鑒權(quán)與權(quán)限控制登錄鑒權(quán)這個(gè)問(wèn)題答辯老師幾乎必問(wèn)。常用方案有兩種Session方案和JWT方案。如果前端是Thymeleaf用Session方案最省事登錄成功后把用戶信息放進(jìn)Session攔截器里判斷當(dāng)前請(qǐng)求路徑是否需要登錄、當(dāng)前用戶角色是否能訪問(wèn)。這個(gè)方案不需要引入額外依賴?yán)斫獬杀镜瓦m合畢設(shè)。如果前端是Vue這類(lèi)分離項(xiàng)目建議用JWT登錄成功后后端簽發(fā)一個(gè)Token前端存在瀏覽器本地存儲(chǔ)每次請(qǐng)求在Header里加上Token后端通過(guò)攔截器解析Token確定用戶身份。攔截器里需要處理的邏輯是放行策略。登錄接口、注冊(cè)接口、靜態(tài)資源要放行其他接口統(tǒng)一走鑒權(quán)攔截器。角色權(quán)限的判斷可以在攔截器里根據(jù)請(qǐng)求路徑前綴攔截比如/api/admin/**只有管理員角色能訪問(wèn)。這個(gè)規(guī)則比較死板但足夠用。如果想要更好看的實(shí)現(xiàn)可以引入自定義注解加AOP做權(quán)限控制論文里寫(xiě)出來(lái)是個(gè)亮點(diǎn)但實(shí)現(xiàn)前要考慮自己是否真的掌握AOP原理否則答辯被追問(wèn)會(huì)露餡。3.3 選課接口事務(wù)與并發(fā)控制的必修課選課接口是整個(gè)教務(wù)管理系統(tǒng)里最值得花時(shí)間設(shè)計(jì)的業(yè)務(wù)邏輯。它的完整流程至少包含四步校驗(yàn)學(xué)生身份確認(rèn)當(dāng)前處于選課時(shí)間范圍內(nèi)。查詢?cè)撻_(kāi)課記錄判斷當(dāng)前已選人數(shù)是否小于容量。檢查該學(xué)生是否已經(jīng)選過(guò)這門(mén)課避免重復(fù)選課。插入選課記錄并將開(kāi)課表的已選人數(shù)加1。仔細(xì)想想這四個(gè)步驟每一步之間都存在并發(fā)隱患。最常見(jiàn)的場(chǎng)景是課程只剩最后一個(gè)名額兩個(gè)學(xué)生同時(shí)操作兩個(gè)請(qǐng)求都讀到“已選人數(shù)容量-1”都認(rèn)為還有名額于是都插入選課記錄最后實(shí)際選課人數(shù)超出容量非常典型的超賣(mài)問(wèn)題。解決這種問(wèn)題必須在數(shù)據(jù)庫(kù)層面加約束。我的做法是不用先查再更新而是直接執(zhí)行一條帶條件的更新語(yǔ)句UPDATE course_open SET selected_count selected_count 1 WHERE id #{openId} AND selected_count capacity執(zhí)行這條語(yǔ)句后通過(guò)受影響行數(shù)判斷是否還有剩余名額如果結(jié)果是0說(shuō)明課程已經(jīng)滿了直接拋出“課程已選滿”的異常如果結(jié)果是1才繼續(xù)插入選課記錄。為什么這樣有效因?yàn)閁PDATE語(yǔ)句在數(shù)據(jù)庫(kù)行上會(huì)加鎖兩個(gè)并發(fā)請(qǐng)求同時(shí)更新同一行時(shí)只可能有一個(gè)先獲得行鎖后一個(gè)請(qǐng)求看到的是更新后的數(shù)據(jù)從而重新判斷容量條件。這就是數(shù)據(jù)庫(kù)層面的樂(lè)觀鎖思想用條件更新代替“查詢?cè)俑隆薄T倥渖鲜聞?wù)整個(gè)選課過(guò)程要么全部提交要么全部回滾。在Service方法上加上Transactional注解注意這個(gè)注解不能自己類(lèi)里調(diào)用自己類(lèi)的方法否則事務(wù)不會(huì)生效這個(gè)問(wèn)題后面在常見(jiàn)問(wèn)題章節(jié)單獨(dú)展開(kāi)。3.4 教師錄入成績(jī)與權(quán)限校驗(yàn)細(xì)節(jié)成績(jī)錄入的實(shí)現(xiàn)相對(duì)簡(jiǎn)單但權(quán)限校驗(yàn)的細(xì)節(jié)很容易被忽略。錄入成績(jī)接口接收的參數(shù)一般有開(kāi)課ID、學(xué)生ID、成績(jī)值。問(wèn)題是接口的調(diào)用者是否真的是這門(mén)課的授課教師如果不做校驗(yàn)任何登錄用戶只要猜到開(kāi)課ID和學(xué)生ID就能往接口里傳參數(shù)改成績(jī)這是嚴(yán)重的安全漏洞。正確的做法是在Service層先根據(jù)當(dāng)前登錄用戶的教師ID查詢授課列表判斷目標(biāo)開(kāi)課ID是否在列表里不在就直接拋出“無(wú)權(quán)操作該課程成績(jī)”的異常。這一點(diǎn)務(wù)必要寫(xiě)進(jìn)論文的“系統(tǒng)安全設(shè)計(jì)”章節(jié)哪怕只是兩段話也比簡(jiǎn)單說(shuō)“系統(tǒng)采用Spring Boot框架開(kāi)發(fā)”能撐內(nèi)容。還有成績(jī)的范圍校驗(yàn)0到100之間的整數(shù)或一位小數(shù)用參數(shù)校驗(yàn)注解或者手動(dòng)判斷都行。這里我用一個(gè)從實(shí)際開(kāi)發(fā)中總結(jié)的經(jīng)驗(yàn)提醒你修改成績(jī)比錄入成績(jī)更需要謹(jǐn)慎一定要記錄操作日志。成績(jī)表里加上updated_time字段擴(kuò)展一個(gè)score_log表記錄修改前后的值、操作人、操作時(shí)間。雖然畢業(yè)設(shè)計(jì)不需要做得像真實(shí)系統(tǒng)那么重但有個(gè)操作日志功能演示時(shí)可以給答辯老師展示“系統(tǒng)具備數(shù)據(jù)可追溯性”加分效果明顯。4. 前端頁(yè)面與接口聯(lián)調(diào)從接口到可演示頁(yè)面的最后一公里4.1 頁(yè)面規(guī)劃教務(wù)系統(tǒng)要哪些頁(yè)面才夠用前端頁(yè)面規(guī)劃不需要花哨但至少要覆蓋核心業(yè)務(wù)鏈路。按照三個(gè)角色劃分管理員端需要登錄頁(yè)、工作臺(tái)首頁(yè)、用戶管理頁(yè)增刪改查、課程管理頁(yè)、開(kāi)課管理頁(yè)、公告發(fā)布頁(yè)。教師端需要授課列表頁(yè)、選課學(xué)生名單頁(yè)、成績(jī)錄入頁(yè)按學(xué)生批量錄入或逐條錄入。學(xué)生端需要待選課程列表頁(yè)、我的課表/已選課程頁(yè)、成績(jī)查詢頁(yè)、公告頁(yè)。頁(yè)面交互以表格和表單為主這是后臺(tái)管理系統(tǒng)的典型形態(tài)UI不用追求炫酷干凈整齊即可。如果是前后端分離項(xiàng)目用Element UI的表格、彈窗、表單組件會(huì)非常快在校生對(duì)Element UI也比較熟悉遇到問(wèn)題社區(qū)資料一搜就有。4.2 接口聯(lián)調(diào)時(shí)的三個(gè)經(jīng)典問(wèn)題前后端聯(lián)調(diào)的時(shí)候有幾個(gè)問(wèn)題幾乎每次都會(huì)遇到提前避坑能省出好幾天時(shí)間。第一個(gè)是跨域問(wèn)題。前端項(xiàng)目跑在8080端口后端跑在8081端口瀏覽器直接請(qǐng)求后端接口會(huì)被攔截。解決辦法是后端寫(xiě)一個(gè)配置類(lèi)實(shí)現(xiàn)WebMvcConfigurer接口重寫(xiě)addCorsMappings方法允許指定前端地址跨域訪問(wèn)。注意如果用了JWT鑒權(quán)跨域配置里要允許自定義請(qǐng)求頭否則前端沒(méi)辦法把Token帶過(guò)去。第二個(gè)是時(shí)間格式問(wèn)題。后端用LocalDateTime作為時(shí)間字段類(lèi)型時(shí)通過(guò)默認(rèn)的JSON序列化前端拿到的是一長(zhǎng)串?dāng)?shù)字?jǐn)?shù)組非常不直觀。解決辦法是在application.yml里統(tǒng)一配置時(shí)間格式化或者給實(shí)體類(lèi)的時(shí)間字段加JsonFormat注解統(tǒng)一輸出為“yyyy-MM-dd HH:mm:ss”的字符串格式。第三個(gè)是null值問(wèn)題。后端返回的數(shù)據(jù)里有些字段是null前端表格直接顯示“undefined”這個(gè)問(wèn)題雖然不至于報(bào)錯(cuò)但看起來(lái)很業(yè)余。建議統(tǒng)一Result封裝中集合類(lèi)型返回空集合而不是null字符串類(lèi)型返回空字符串或者由前端做兜底展示。4.3 驗(yàn)收演示時(shí)的數(shù)據(jù)準(zhǔn)備技巧很多同學(xué)做畢業(yè)設(shè)計(jì)系統(tǒng)里的數(shù)據(jù)隨意亂填演示時(shí)打開(kāi)頁(yè)面一片亂碼或內(nèi)容空洞給答辯老師的印象分直接掉一檔。數(shù)據(jù)準(zhǔn)備其實(shí)很簡(jiǎn)單就是要“看起來(lái)像一個(gè)真實(shí)系統(tǒng)”。預(yù)置數(shù)據(jù)要做到課程名稱(chēng)用真實(shí)的課程名高等數(shù)學(xué)、大學(xué)英語(yǔ)、數(shù)據(jù)結(jié)構(gòu)用戶姓名用自然的中文姓名組合成績(jī)分布盡量接近正態(tài)分布不要全是100分也不要全是60分。選課數(shù)據(jù)要體現(xiàn)“選滿”和“有空余”兩種狀態(tài)這樣演示選課功能時(shí)既能展示成功選課也方便觸發(fā)“課程已滿”的提示效果。這個(gè)小技巧在很多實(shí)際項(xiàng)目中驗(yàn)證過(guò)花費(fèi)半小時(shí)準(zhǔn)備數(shù)據(jù)答辯演示效果遠(yuǎn)勝于打開(kāi)全是“test”字符串的系統(tǒng)。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)測(cè)中的避坑實(shí)錄5.1 列表查詢的N1問(wèn)題成績(jī)列表頁(yè)是一個(gè)典型場(chǎng)景頁(yè)面要展示成績(jī)記錄每條記錄除了成績(jī)本身還要顯示學(xué)生姓名和課程名稱(chēng)。如果初學(xué)階段圖省事在Service里循環(huán)查詢成績(jī)列表每遍歷一條記錄就查一次學(xué)生表、課程表這就會(huì)觸發(fā)N1查詢問(wèn)題。假設(shè)成績(jī)表里有100條記錄至少要額外執(zhí)行200次查詢數(shù)據(jù)庫(kù)壓力大接口響應(yīng)慢頁(yè)面打開(kāi)卡頓。解決思路很簡(jiǎn)單不要循環(huán)查單表用一次關(guān)聯(lián)查詢把所有數(shù)據(jù)查出來(lái)。比如在Mapper里寫(xiě)一個(gè)自定義SQL把成績(jī)表和學(xué)生表、開(kāi)課表、課程表關(guān)聯(lián)起來(lái)返回一個(gè)帶學(xué)生姓名和課程名稱(chēng)的視圖對(duì)象。MyBatis Plus提供的結(jié)果映射能支持這種自定義查詢但需要你手寫(xiě)ResultMap這部分邏輯建議自己動(dòng)手寫(xiě)徹底理解關(guān)聯(lián)查詢的執(zhí)行過(guò)程。5.2 Transactional事務(wù)不生效的隱形坑事務(wù)不生效的幾個(gè)典型場(chǎng)景我在實(shí)際項(xiàng)目中都遇到過(guò)。第一種是同類(lèi)內(nèi)部調(diào)用。比如在CourseService里有一個(gè)public方法選課方法內(nèi)調(diào)用了同一個(gè)類(lèi)里另一個(gè)Transactional方法后者的事務(wù)不會(huì)生效。原因很簡(jiǎn)單Spring的事務(wù)是通過(guò)代理對(duì)象實(shí)現(xiàn)的同類(lèi)內(nèi)部調(diào)用走的是this對(duì)象而不是代理對(duì)象事務(wù)切面沒(méi)法攔截。解決辦法是避免同類(lèi)調(diào)用把需要事務(wù)的子方法放到另一個(gè)Service類(lèi)里或者直接在入口方法上加上事務(wù)注解。第二種是異常被catch了。事務(wù)方法執(zhí)行過(guò)程中內(nèi)部業(yè)務(wù)代碼如果自己try-catch吞掉了異常事務(wù)就不會(huì)回滾因?yàn)镾pring根本感知不到異常發(fā)生。正確的做法是不要在需要回滾的事務(wù)方法內(nèi)吞掉異?;蛘卟东@后重新拋出RuntimeException。第三種是方法非public。Spring默認(rèn)的基于CGLIB或JDK代理的事務(wù)代理對(duì)非public方法是不會(huì)攔截的所以事務(wù)注解只能加在public方法上。5.3 MyBatis Plus邏輯刪除與自動(dòng)填充的配置細(xì)節(jié)如果用了MyBatis Plus的邏輯刪除功能也就是配置了TableLogic注解需要注意兩點(diǎn)。第一實(shí)體類(lèi)有了邏輯刪除字段后寫(xiě)自定義SQL時(shí)如果不加is_deleted條件查出來(lái)的數(shù)據(jù)可能包含已經(jīng)標(biāo)記刪除的記錄。雖然MyBatis Plus自帶的queryWrapper會(huì)自動(dòng)附加邏輯刪除條件但手寫(xiě)SQL時(shí)需要自己記得帶上這個(gè)條件。第二邏輯刪除字段會(huì)影響分頁(yè)查詢的count語(yǔ)句這個(gè)一般MyBatis Plus已經(jīng)處理好了不用太擔(dān)心。自動(dòng)填充功能也很實(shí)用在實(shí)體類(lèi)創(chuàng)建時(shí)間和更新時(shí)間字段上加TableField(fill FieldFill.INSERT)或FieldFill.INSERT_UPDATE注解然后定義一個(gè)MetaObjectHandler實(shí)現(xiàn)類(lèi)插入和更新記錄時(shí)自動(dòng)填入當(dāng)前時(shí)間。這樣所有表的時(shí)間字段都不用手動(dòng)維護(hù)代碼整潔度提升明顯。5.4 調(diào)試接口的實(shí)用工具組合隊(duì)伍里做后端調(diào)試一個(gè)趁手的接口測(cè)試工具效率遠(yuǎn)高于在瀏覽器里敲URL。我習(xí)慣用的組合是瀏覽器開(kāi)發(fā)者工具查看接口請(qǐng)求響應(yīng)另一個(gè)桌面客戶端用來(lái)構(gòu)造各類(lèi)測(cè)試請(qǐng)求。聯(lián)調(diào)階段構(gòu)造POST請(qǐng)求測(cè)試登錄接口、選課接口、成績(jī)錄入接口這些場(chǎng)景用桌面客戶端會(huì)比Postman更輕量操作也更順手。建議有空閑時(shí)把項(xiàng)目里所有接口按模塊整理一遍標(biāo)注清楚請(qǐng)求參數(shù)和返回示例這類(lèi)接口文檔寫(xiě)進(jìn)論文前面作為“系統(tǒng)接口設(shè)計(jì)”內(nèi)容非常扎實(shí)。6. 從功能完成到論文答辯最后一步怎么走答辯前建議把系統(tǒng)硬編碼的關(guān)鍵配置項(xiàng)比如選課時(shí)間的開(kāi)啟和關(guān)閉狀態(tài)、課程容量的默認(rèn)值都做成可以在管理員頁(yè)面修改的配置項(xiàng)。這樣現(xiàn)場(chǎng)演示時(shí)可以直接操作開(kāi)關(guān)不用臨時(shí)改代碼重新部署演示體驗(yàn)會(huì)流暢很多。系統(tǒng)的用戶密碼存儲(chǔ)要使用加密算法不要在數(shù)據(jù)庫(kù)里存明文密碼這是答辯老師非常喜歡問(wèn)的一個(gè)安全問(wèn)題。使用Bcrypt或MD5加鹽都行推薦BCryptSpring Security自帶的支持比較完善。數(shù)據(jù)庫(kù)初始化腳本和預(yù)置數(shù)據(jù)腳本要一起放進(jìn)項(xiàng)目里答辯現(xiàn)場(chǎng)評(píng)委用自己的電腦跑項(xiàng)目時(shí)導(dǎo)入SQL后系統(tǒng)就應(yīng)該能直接運(yùn)行。我在實(shí)際帶項(xiàng)目時(shí)還總結(jié)過(guò)一個(gè)規(guī)律答辯時(shí)與其緊張地演示所有功能不如圍繞一條核心鏈路講透從管理員創(chuàng)建開(kāi)課到學(xué)生選課到教師錄成績(jī)?cè)俚綄W(xué)生查成績(jī)前后端數(shù)據(jù)和狀態(tài)的變化要能對(duì)上。能把這個(gè)閉環(huán)清晰展示出來(lái)的同學(xué)答辯分?jǐn)?shù)都不會(huì)低。這條鏈路同時(shí)也是論文里系統(tǒng)測(cè)試章節(jié)的測(cè)試用例設(shè)計(jì)基礎(chǔ)功能測(cè)試、權(quán)限測(cè)試、并發(fā)測(cè)試都能從這里面衍生出來(lái)。最后分享一個(gè)個(gè)人體會(huì)做教務(wù)管理系統(tǒng)這類(lèi)項(xiàng)目技術(shù)上沒(méi)有任何一個(gè)點(diǎn)屬于“天頂星難度”難點(diǎn)全在于把大量簡(jiǎn)單的功能流程做得嚴(yán)謹(jǐn)可靠。你認(rèn)真處理了選課并發(fā)、權(quán)限校驗(yàn)、事務(wù)邊界這些細(xì)節(jié)你會(huì)發(fā)現(xiàn)寫(xiě)論文時(shí)的技術(shù)難點(diǎn)部分根本不用編因?yàn)槊恳粋€(gè)坑都是真實(shí)踩出來(lái)的。這些踩坑經(jīng)驗(yàn)才是畢業(yè)設(shè)計(jì)能帶給你的最大收獲。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本高清熟女久久一区| 超碰91在线| 天天日熟妇| 日本免费一级AAA大片器| 国产传媒一区日韩| 欧美成人一级免费电影| 日韩欧美三级| 青青草视频爽一爽| 免费人成?大片在线播放| 99少妇| www.91色综合| 伦伦成年午夜免费视频| 天天干夜夜鈤| 中文字幕乱碼在线| 免费精品福利在线观看| 外站AV在线| 最新av在线| 日韩精品1区2区中文字幕| 嗯嗯啊啊日韩精品| 91久久精品国产| 26uuu久久| 婷婷色色五月天福利| 亚洲成人妻日韩在线| 欧美精品久久久久久久久88| 久久69| 日韩干B| 欧美另类色图片| wwwxxx日本爽| 九九九九热| 久热久| 91丨九色丨东北熟女| 91少妇| 国产97av| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 99re黄| 97人人中文网| 99久久9| 久操网视频| 久热热| 欧美色图97| 夜夜 中文视频rt| 色婷婷aV一区二区三区麻豆综合| 不卡免费av在线播放| 最新9久久久9免费视频| 亚洲九九爱| 青青操在线亚洲视频观看欧美在线 | 超碰免费在线| 色爱三区| 欧美日韩性爱操大逼| 国模不卡| 十八禁啪啦拍视频无遮挡| 性爱1区| 大香蕉伊人久久| 亚洲图片偷拍视频区| 97av在线视频| 色综合网1| 99久久九九| 九九天堂| 在线小视频| 久艹伊人精品综合在线| 呻吟 欧美 日本 中出| 老师充足的奶水小说| 久久久久久久人妻| 欧美熟女激情| 久久精品国产97欧美精品亚洲| 成人五月天色网| 嗯嗯嗯啊啊啊在线免费观看| 97热视频在线观看| 亚洲图片色图欧美另类| 日韩女模中文造逼| 国产一区二区三区不卡手机在线| 少妇高潮一区二区三区在线| 秋霞一级A片黄色视频| 国产精品自产拍在线观看社区| 99∨VTV| 久久久专区| 香蕉精品二区二区| 色综合av男人天堂| 久久熟妇五十路一区| 激情四射婷婷六月天| 一区二区三| 日本Xx性爱| 日韩丝袜人妻AV| 久久理论字幕视频| 偷拍综合网| 性开放中文AV高清无码免费看| 99激情| 97视频网站在线观看| 国产精品九九| 老司机射| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 强奸乱伦AV网址| 亚洲无无码αⅴ每日更新| 睡产熟女乱伦| 日天天九九天堂666| 天天激情干| 91在线视频免费播放| 蜜臀久久久久久999| 亚洲有薄码区日本系列中文字幕| 超碰97资源中文字幕| 香港久久久| 日本东京热加勒比久久| 四虎午夜影院| 做爱A级亚欧| 日本免费中文一区二区三区四区| 伊人久久国产免费观看视频| 色五月AV| oumeisetu综合| 超碰伊人在线| 天天干夜夜一操| 日日日日日| 一本色道久久综合亚洲二区三区| 黄片不用下载在线观看| 欧美黑人日韩少妇色情| 久久精品熟女亚洲AV麻豆软件| 久久无码一区二区二三区性色| 伊欧美综合视频| 久久啊啊啊视频| 久久性爱视频99| 香一区二区三区| 蜜臀久久99精品久久久久| 精品人妻中文字幕4399| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 日本黄色天堂| 日韩激情中文字幕有码| 超碰97日韩| 婷婷综合激情| 中字幕人妻一区二区三区| 人人喜人人妻| 日本韩国国产精品一区| 97在线日韩中文字幕| 亚洲国产无码精品首页久久久| 欧美老熟另类| 91性高朝久久久久久久久| 69久久| 国产AV无码AV| 欧美 亚洲 在线| 中文字幕二区日韩天堂| 久久这里只精品免费福利| 天色综合网| 伊人久久综合精品欧美| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 欧美成人免费在线观看| 亚码激情| 亚洲国产一区二区入口| 精品人妻一区二区三区鲁大师| 亚洲最大AV网| 久草午夜| 男人天堂网手机版婷婷| 亚洲综合97中文网| 亚洲色图欧美色图日韩色图| 欧美色九九| 91亚洲人电影| 欧洲一级性爱视频在线观看| 国产女人和拘做爰视频| 精品国产乱码久久久| 久久99黄色卞西瓜| 亚洲av影院在线观看| 啊啊啊慢点| 九九九九九用不成了| CCYY草草影院地址入口| 欧美一区二区| 99精品高潮| 色婷婷亚洲婷婷| 久久只有精品一区二区三区| 欧美久久伊人| 综合亚洲欧美精品日韩?v| 啊啊啊好爽快点啊啊啊嗯嗯| 国产精品制服丝袜清纯唯美| 97国产人人| 中出20p| 肥臀熟女福利视频一区二区| 女人爽到高潮潮喷18禁网站| 粉嫩av久久一区二区三区| 天天天干977| 亚洲限制级| 欧美性天天影视| 国产乱码精品一区二区三区四川| 青娱乐休闲视频在线观看| 国产大片精久久久久久| 国产传媒日本欧美专区| 91女网站| 超碰亚洲97| 97色婷| A片 AV一级在线播放观看免费| 天天综合91| 麻豆成人影音在线| 国产精品久久久蜜臀| 五月丁香综合激情| 国产树林里野战在线看| 久久99视频| 日韩无码黄色片| 天天影视色香欲综合网小说| 丰满人妻一区二区三区四区| 婷婷在线精品| 熟女突然公开看18禁影片| 亚洲阿v天堂无码z2018| 男女做爰猛烈动高潮A片免费应用| 国产精品农村妇女| 麻豆精品.欧美精品.日韩精品.| 久久久久斤小| 亚洲色情在线影视| 久偷拍欧美日韩三区| 久久久久久久久久精| 青青操在线亚洲视频观看欧美在线| 刺激性视频黄页| 免费的av网| 一区二区三区男女操逼黄色小电影| 亚洲 欧美 91| 国产传媒1234区| 欧美精品在线观看| 99自拍B亚洲| 伊人网在线观看| 亚洲色性情三级| 色999偷自拍拍| 4141514逼喷水三级片| 艾草av| 91嫩草欧美| 免费亚洲国产精品久久一区| 五月天久久人妻| 91久久国产精品| 亚洲骚逼少妇| 日日操免费视频| 在线观看成人性爱免费小视频| 亚洲97成人在线观看| 九九综合久久中文字幕| 激情五月综合网| 男人天堂2019亚洲| 日本精品性生活久久久| 日本熟妇自慰性高潮一区二区三区| 午夜操一视频一区| 欧美激情久操网| 天天懆天天日| 色色婷| 看黑人AV不卡| 中文字幕无码不卡啪啪| 欧美在线啊啊| 美女写真| 久久国内| 射 色综合| 久久久久ab| 亚洲色天堂九9| 天天操夜夜操| 激情综合五月| 欧美 日韩 婷婷 五月| 99999国产精品| 亚洲欧美精品国产一区二区| 99久久这里只有精品| 久久久18禁| 色偷偷2020免费视频播放| 欧美激情综合网| 超97在线精品视频| 99爱久久视频频| 五十路成人在线视频二区三区| 日韩猛交| 国产福利小视频高清在线观看| 欧美在线视频99| 国产青视频| 综合亚洲欧美| 亚洲欧洲日韩国产自在线| 欧美精品另类人妖xxxx| 校园春色 亚洲| 亚洲天堂AV在线播放| 婷婷中文字幕| 久久久精品九| 久久男女激情视频网站| 97视频620| 亚洲毛片久久| 国产农村一一级特黄毛片| 欧美精品第四五页中文字幕在线观看| 91精品人妻一品二品三品| 欧美大香蕉同搞| 北京专精特新企业招聘信息| 九九九精品美女| 性爱乱伦网址| 精品一二三区四视频| 2025年A片视频精品| 丁香五月电影| 丝袜加勒比| 99热在线观看| 婷婷丁香人妻 | 三级精品三级在线观看| 夂久色| 国产精品另类一区大香蕉| 国产毛片在线| 超碰天天操| 摸奶性爱视频网站在线免费播放| 偷拍 亚洲| 婷婷国产精品一区二区| 熟女人妻一区二区三区| 夫妻AV网站| 国产精品制服丝袜清纯唯美| 99国内熟女露脸视频| 天天操夜夜操狠很操| 超碰 另类 欧美| 亚州熟女乱伦| 中国熟女网站| 八人操人人摸人人看| 青操影院| 欧美 亚洲 偷拍自拍| 久操视频在线| 伊人五月天| dy888午夜老子影视达达兔| 丁香五月婷婷基地| 国产精品久久久啊| 骚熟女吞| 国产亚洲综合欧美一区| 久久久久久性爱免费视频| 亚洲天堂区| 偷拍精品一区二区三区| 91中文精品日韩欧美在线| 日韩操逼性鲍| 欧美体内射精| 91色鬼| 午夜超爽| 五月婷婷激情综合| 视频不卡中文字幕| 超碰一区二区| 欧美拳交在线播放| 亚洲成人精品在线一区| 免费超碰97久久| 中文字幕av乱伦| 欧美一二三| 亚洲精品天天影视综合网| 亚洲中文字幕久久人妻| 久久久不卡| 久久AV无码1区2区3区| 久久久亚洲欧美综合| 精品十八在线观看| 青青操在线亚洲视频观看欧美在线 | 国产成人www免费人成看片| 九久9精品| 超碰1024久久| 色色色99| 国产精品美女久久久久AⅤ国产馆| 欧美精品,四区。五区| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产无马在线| 少妇天堂| 我中文字幕6区| 老女人爆菊| 天天干夜夜一操| 亚洲精品一区二区日本| 久久r精品| 插老姨肥穴| 日韩啪啪啪啪啪| 制度丝袜99| 亚洲丝袜综合| 亚洲色电影在线| 97精品97| 一道本东京热加勒比一区二区三区| 岛国片国产成人亚洲播放| 日韩性爱一级片| 久草看看看| 操老熟女AV| 亚洲91网。| 91狠| 国产精品色色| 国产情侣自拍在线播放| A 天堂在线观看视频| 国产丝袜欧美在线视频| 蜜臀久久99精品久久久久| 丝袜色综合| A啊啊在线观看| 高清不卡国产| 久久啊哟| 九一亚洲国产免费| 4141514逼喷水三级片| 亚洲午夜免费狠狠干| 色牛牛AV| 国产精品久久久久无码AV会牛| 亚洲色图尤物视频 | 欧美精品双插| 在线观看A啊啊啊| 中文字幕国产精品1区| 99热免费| 激激五月| 97爱免费插| 亚洲宅男天堂| 色九九九| 久久伊人青青草| 欧美成人亚洲精品| 在线视频五十市| 神马视频久久久久久| 97WW精品| 欧美天天谢综合网| 欧美天堂亚洲电影院一区在线播放| 丰满搜索结果 -第18页- 久久高清无码 | 熟妇人妻一区二区三在线| 天天碰操中国年青熟妇| 亚洲欧洲日产国产综合网| 97玖玖超碰| 日韩欧美被操黄免费观看| 色狠人在线99| 黄色十八禁| 97人人夜| 91无码西班牙视频在线| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 黑人精品成人一区二区三区| 涩涩五月天| 亚洲 91 在线| 婷婷五月天无码| 9ⅰ久久久天天| 91亚洲情色| 亚洲中文字幕精品一区| 在线无码网站| 天天色播| 日韩精品熟妇| 超碰久草| 一区二区三区国产在线播放| 曰韩操B| 五月丁香综合激情| 91亚洲欧美色图| 超碰综合97在线| 亚洲综合20p| 天天插夜夜操| 深爱激情五月天| 不卡九肏| 啪啪自拍九九综合| 欧美日韩色综合网| 九九热在线精品视频| 日韩熟女精品无码专区一区二区| 色女免费在线观看视频网址| 超碰人妻97| 国产对白刺激视频| 人妻少妇久久久| 97操在线| 97免费视频在线观看| AV网站高清无码在线观看| 九九热超碰| 九一综合网| 成·人免费午夜在线观看| 美国aaaaa一级黄片| 嗯嗯啊啊视频在线看| 欧美国产有色电影| 午夜性生活av免费在线看 | 久久久无码精品人妻二区| 91精品人妻偷情| 丁香色五月 97干| 中文字幕免费观看| 欧美性暴力| 日本精品一区二区中文字幕| 中国小夫妻勾搭露脸淫荡对白| 老熟妇91| 婷婷色色五月天| 日日干夜夜骑| 亚洲最大成人a毛毛片| 激激五月| 亚洲综合97| 久草视频分类在线| 天欧美在线| 啪啪视频亚洲第一| 亚洲男人天堂2012| 美女裸体无遮挡永久免费观看网站| www.人人cao| yy少妇精品久久| 天天视频网站黄| 欧亚洲精品有视频| 激情综合网激情综合| 久久久A∨| 深喉吞精| 91丝袜美女国产| 亚洲国产97在线精品一区| 狠狠色噜噜狠狠狠狠狠色综合久久| 91美女视频在线| 香蕉国产精品麻豆亚洲欧美日韩| 中文字幕在线观看第二页| 丝袜亚洲综合| 亚洲AO在线| 三级日韩一区二区三区| 玖玖资源中文字幕制服丝袜| 你懂的在线观看区国产 | 亚洲九九九| 性色乱AV一区二区| 三级日本一区二区三区| 久久做97| 国产一区二区三三视频| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 天天色,天天干,天天干| 色综合超碰超| 日本99久久| 美女91| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 龙兴卡官方查询| 啪啪啪精品视频| 激情婷婷黑人91| www.色婷婷.com| 香蕉人欧美综合| 91欧美偷拍| 日韩精品国产一区二区| 人人澡人人澡人人| 麻豆国产尤物AV| 强奸乱伦 亚洲一区| 亚洲91网站| 亚洲精品乱码久久久久久蜜桃麻豆| 97chaopenrihan| 日韩草久视频| 欧美日韩亚洲一区二区在线观看| 超碰欧美97资源| 男人的天堂亚洲| 国产乱伦性爱区| 亚洲骚男同com| 欧美色偷拍| 欧美国产欧美在线观看| 加勒比aⅴ| 亚洲美欧999| 色噜噜人妻丝袜a∨先锋影| 久久黄人人爽视频| 日韩噜噜69| 丁香五月性| 成人av影院在线观看| 性感美女91影视| 久插综合| 99色在线| 8050午夜少妇无码| 久久这里只精品免费福利| 夜夜国自区| 久插不卡| 亚洲男人bt天堂| 色乱二区| 成人26uuu| 一二三区精品视频| 亚洲清纯唯美| 神马久久中文字幕| 欧美天天插| 美女被艹尤物视频| 日本成人A片免费看| 97超碰欧美手机| 日韩特一级久久| 国产乱弄免费在线视频。| 亚洲操逼网| 国产自产一区视频在线| 国产高清吃奶免费视频网站| 懂色av一区二区三区天美传媒| 久久精品高清无码一区| 热久久99999| 99丝袜福利在线播放| 欧美99热| 91超碰人人操| 91小视频| 最新中文字幕精品在线| 欧美日韩免费性爱| 欧美伊人久久综合网| 2024黄色视频| 永久免费观看的毛片的网站| 91美女小视频| 熟女91网站| 欧美色97| 99re99在线视频| 久久久久久99999国产精品| 无码操逼天堂| 国产精品久久久久久9999| 97公开久久| 超碰碰激情97+久| 国产美女精品| 久久精9| 国产熟女二区| 午夜AV污污污| 欧美亚洲清纯| 91成人精品| 狠狠入| 亚州男人天堂| 久久只有精品| 午夜福利1区2区3区| 日韩无码操逼片| 中文字幕人成乱码熟女香港| 少妇人妻太紧太深av| 色色香蕉| 亚洲欧美经典一区二区| 五月天激情小说| 精品久久久av| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美天堂在线| 91精品人| 亚洲国产精品有声| 欧美黄片视频在线观看免费| 69人妻精品一区二区绯色| 欧美淫穴| 好屌色综合| 一区超碰一区| 国产激情视频一区区三区| 蜜臀AV秘一区翔田千里| 把腿张开老子CAO烂你| 国产激情综合| 亚洲日韩美女丝袜美腿人妻视频| 超碰97护士| 伊人网青青| 视频分类 国内精品| 91色艳| 超碰天天操| 91老司机精品| 国产精品久久久久久久AV大片 | 久久免费老司机精品| 久婷婷一区| 天天干人妻视频| 亚洲精品国语在线播放| 夜间福利片1000无码| 丁香六月综合激情| 日韩电影天堂视频二区三区| 欧美九九九| 亚洲成人在线高清| 天天干天天做| 久久一本大香蕉 | 国产精品久久99日日| 99热这里只有精| 日本一天色道久久久精品视频| 国内外毛片在线观看| 操逼A∨| 秋霞视频一区二区| 麻豆成人av| 国产精品视屏| 久久98| 欧洲小说色图视频另类| 中文字幕欧美日韩三级| 天天草天天干天天日| 97精品久久久久久久| 麻豆尤物视频网| 国模不卡| 成人五月天色网| 男人久久天堂| 久久久激情| 久久久噜噜噜久久人妻| 免费一级性爱久久| 青青草在线视频人人想人人上| 久9综合在线| 日韩激情小说一区二区| 欧美综合加勒比在线| 黄页av| 久草大| 91九色丰满高潮| 亚洲天堂AV在线播放| 97欧美精品综合| 2019天天干| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲日韩XXX| 久96热在线观看视频| 97WW精品| 92一区二区| 亚洲高潮少妇| 亚洲天堂2020| 婷婷五月天补不补| 久热一区二区| 久操视频免费在线观看| 超碰95| 日本免费不卡二区| 欧美精品精品一区二区| 哈哈操电影AV| 中字幕人妻一区二区三区| 超碰97资源大奶| AAAA欧美日韩| 欧美日韩亚洲高清不卡一区二区三区| 黄色AV免费| 性色高清在线| www.伪伪| 久热这里| 久久久人妻| 久久色网| 亚洲揄拍网| 色呦呦呦在线观看视频| 国产AV线| 五月天伊人| 午夜精品久久久| 极品粉嫩一区二区| 亚洲熟女精品| 中国黄色特级精品一区二区三区片| 曰本人妻人人澡人人夹| 国产超碰欧美| 亚洲一区二区麻豆影院| 日韩av在线精品观看| 亚洲AV不卡在线观看尤物| 久久精品国产亚洲AV高级北京| 久久久精品九| 日韩素人无码一区二区三区三州| 国产精品一区二区a| 麻豆一区二区三区精品| 秋霞曰韩R级| 亚洲在线a| 欧美久久婷婷| 欧美黄色片AAAAA| 精品人妻一二三| 91精品婷婷国产综合久久竹菊| av片在线观看免费播放| 91精品电影18| h无码动漫在线观看| 大鸡巴久久| 中文在线久久字幕| 狠狠爱综合网| ji熟女.com| 色九九久九九| 丁香五月天久久精品视频一区二区三区| 成人 日本A片无码8888| 欧美色图亚洲激情| 国产后入清纯| 国产精品乱码久久久久久久久久久久| 操逼片中文| 在线a亚洲视频播放在线| 色香伊人| 抽查国产福利主播| 天天色播| 老司机老司机午夜影院| 1区2区3区视频| 91日日夜夜| 天天干天天日天天射黄色片| 婷婷五月花| 93人人操人人| 亚洲色图国产另类| 中文字暮97| 日韩一级特黄av毛片| 欧美视频一区二区三区| 成人色女网| 99热超碰在线| 成人5码视频| 国产成人91一区二区三区| 色婷婷一区二区三区久久午夜成人不| 曰韩欧美国产传媒麻豆第一区| 综合影视国产无码| 亚洲欧美国产中文视频| 国产蜜臀精品一区二区尤物| 亚洲天堂日本| 欧美色图中文字幕| 国产丝袜视频| 激情五月激情综合网| 久久九九国产精品| 欧美一级特黄淫片在线观看| 欧美福利视频啊啊啊啊| 天天综合97| 91中文字幕制服丝袜免费视频| 久久人人爽av亚洲精品天堂桃色| 伊人一区二区三区| 99热在线不卡| 美女高潮视频91| 白嫩嫩一区| 67914亚洲精品| 99无码| 天天爽人人综合免费7799| 国产成人精品日本视频| 熟女字幕| 欧美网站免费| 日本精品第一视频在'| 午夜偷拍久久熟女| 美国aaaaa一级黄片| 亚洲系列第一页| 精品视频免费在线一区| 岛国黄| 97人妻免费中文字幕| 久操网视频| 国产精品蜜乳AV| 欧美特大黄一级片片免费| 国产懂色精品国产av| 美国日韩黄色片| 国产超碰人人操| 91久久久久久| 韩国一区二区精品亚洲| 美女诱惑1区2区| 嗯阿好爽好紧| 亚洲天堂人人妻| 亚洲综合 欧美| 999热日韩精品| 久久αⅴ| 欧美综合国产精品久久丁香| 国产对白刺激视频| 中文字幕精品区先锋资源| 六月丁香啪啪啪| 国产伦精品免编号公布| 在线黄色污污网站| 大但人体久久久久| 亚洲欧美伦综合| 18禁看网站一区| 亚洲AV无码AV吞精久久久久| 婷婷丁香五月激情啪啪| 婷婷色一区| 日韩 成人 有码| 在线啊啊啊| 91久久| 国产精品久久久久亚洲av| 色狠狠综合| 成人日韩中文字幕| 欧美日韩97在线| 9118禁| 波多野结衣先锋影音| 婷婷色婷婷| 久久綜合很很很| 九九九偷拍| aaa亚无码专区| 国产精品无码论坛| 久9久| 久久九九精品一区二区| 无码高清操逼| 欧洲熟妇xxXx欧美老妇裸体| 第二页中文字幕| 超碰在线综合97| 一级性爱视频免费观看| 破苞ⅩXXX性无码动漫无码| 男人天堂.AB| 欧美精品亚洲精品日韩传电影| 丁香色狠狠色综合久久小说| 亚洲精品aa久久伊人| 日本丝袜美腿人妻九九| 精品国产乱码久久久久久久久久毛片| 久久天天艹| 97超碰国产精品| 欧美成人精品一区二区男人蜜臀| 精品人妻视频入口| 激情第四色| yazhouzaixian| 久久综合国产精品国产| 久久婷婷一区二| 精品无人区麻豆乱码1区2区图片| 午夜无遮挡男女啪啪视频| 992这里有精品| 天天天堂影视日韩亚洲91| 亚洲电影中字一区二区| 欧美亚性天堂| 超碰色大香蕉| 亚洲Av无码成人精品国产| 超碰天天久久79| 人人操人人色网| 色五月综合网| 久久熟女嫩草成人片免费| 国产日韩在线播放av| 中文字幕视频2区| 日躁天天爽爽| 午夜大香蕉| 色九色久| 五月丁香社区婷婷日韩欧美精品影院| 91久久国产综合精品| 18禁在线视频| 99热精品青草在线 | α√在线| 亚洲熟女一区| 91社区拍啪人妻| 色www精品视频在线观看| 色操逼网| 九九九九九九九九九五码| 最新av网站在线观看| yazhousetuoumei| 欧美成熟性爱精品| 人人澡综合涩| 9丨亚洲一区二区在线| 欧美狠狠弄| A片A5445444| 伊人久久大香线综合无码| 伦激情人妻另类人妻| 啊啊啊啊啊啊好湿好爽视频| 久久国产熟女影院| 不卡一区视频| JIZZJIZZ国产精品喷水| 亚洲色图 91| 亚洲黑丝在线| 黄色无码高清黄色无码网站| 亚洲免费日韩在线一区二区| 北约熟女超碰| 女人18精品一区二区三区| 日韩精品一区二区三区色欲| 手机在线大香蕉| 久久综合18p| 亚洲色欲天天天堂色欲网女| 欧洲小说色图视频另类| 亚洲精品乱码久久久久久蜜桃麻豆| chaopen97久久| 一区二区你上我| 无码一区免费在线不卡| 超碰夫妻97| 久操精品网| 欧美97| 大香蕉色欲AV| 五月婷视频| 一区二区三区免费视频入口| 男人的天堂2000| 久久综合婷婷| 国产日韩手机视频在线| 中文字幕免费看| 国产欧美精品日韩区二区麻豆天美| www.亚洲黄色| 五月天精品| 夜夜爽妓女| 尤物一级在线免费观看| 日本精品999| 99热18这里只有精品| 日本超碰在线国产一区| 最好看的中文字幕在线2018| 91熟女丨老女人| 日韩欧美偷拍美女视频| 色五月首页| 亚洲,日韩,欧美,成人播放| 91蜜桃传媒精品久久久一区二区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 国产女人与拘做受视频免费| 91熟女视频网| 操b网站亚洲无码| 色婷婷久久| 2019久久久久久久久福利| 精品对白久久不卡| 物业黑人 AV一区| 97操97色| av九九| 亚洲蜜乳av| 一级性爱网| 国产尤物在线三区| 好屌色综合| 麻豆国产av网| 99视频内射三四| 天堂中文日本在线观看| 蜜乳中文字幕a在线| 清纯唯美第一页| 狠狠做深爱婷婷久久二区| 少妇国产不卡| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 88xx成人精品视频| 男女国产精品| 青青操日韩| 激情啪啪视频| 国产av热热色| 中国黑人三级片网站上区| 色香色香欲天天天影视综合网| 777奇米影视777四色| 国产亚洲精品美女久久久| 好色综合| 九九碰九九爱97超碰| 欧洲亚洲人妻无码高清久久三区四区| 久久宗合亚洲| 美女黑人91神马| 国精综合一二三区影视| 欧美三级免费伊人| 丰满人妻一区二区三区四| 大香蕉啪啪啪| 大香蕉手机视频| 亚洲av无码成人精品国产| 日本五十路熟女一区二区| 久久黄色性爱视频| 无码天天操| 台湾成人无码AV| 日韩综合无码色欲vv| 秋霞一级A片黄色视频| 色综合V| 免费福利视频中文字幕| 久久天天艹| 美国一区二区三区视频| 在线a v| 蜜乳性色无码专日粉嫩骚逼AV| 久干9操| 国产1769在线| 午夜男人一级A片7777| 少妇滛荡视频| 婷婷五月丁香五月| 天天干少妇| 久久9久9久99久9久9| 麻豆久久久久久久久丝袜| 97天天综合网| 91色色综合| 天天干夜夜| 色区97| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩 欧美 视频 在线 一区| 久久精品国产亚洲AV无码做| 日韩人成网站在线播放| 五月婷婷激情网| 日本高清电影欧美色图| 综精品久久久aaaa| 999综合色| 欧美日韩亚洲少妇寂寞影院正在播放 | 亚州欧美在线| 97精品| 久久青青草原免费视频| 免费综合亚洲中文| 天美国产三级传媒| 操一区| 强乱老妇中文字幕| 91视频精品| 久草视频在线视频在线视频在线观看| 久操不卡视频| 久久久久中出| 亚州欧美综合| 狠狠超| 欧美另类精品xxxx| 九久9精品| 亚洲A色| 中出91视频| 精品亚洲成人免费在线| 8050午夜少妇无码| 精品91摸| 少好三P| 国产午夜精品在线观看| 国产高清成人mv在线观看| 99精品视频在线观看| 美欧老女人97| 97免费视频在线| 国产精品嫩草久久久久| 六月丁香网| 熟妇高潮精品一区二区三区下载| 超碰久超碰久| 人妻 丝袜美腿 中文字幕| 99re视频在线观看这里只有精品| 97天天做| 蜜臀久久99精品久久久久久| 久草视频在线视频在线视频在线观看| 婷婷五月色| 98超碰日本| 亚洲一区中文精品| www.婷婷六月天| 亚洲男人的天堂网| 亚洲中文字幕在线视频一区二区| 免费中文在线| 大香蕉色网| 久久久亚洲| 91麻豆va国产精品| 东京热熟女亚洲视频网站| 天天综合网网欲色| 久操不卡视频| 日本中文字幕熟妇| 大二网站亚洲| www.狠狠干.coom| 欧美狠狠狠| 人人操人人操草草| 熟妇精品juliaannAV| 中文字幕一区二区视频在线观看| 啪啪综合网| 9久9久| 日韩黄色一区二区三区| 欧美少妇高潮久久91| AⅤ片水多多| 99r九九| 无码天堂| 欧美综合骚| 69精品| 啊…啊…操我用力操我| 欧美日韩一二三| 久久香蕉国产线看观看猫咪av| 久久大陆| 亚洲一级性爱视频免费看| 麻豆影音天美视频| 成人免费毛片| 色噜噜人妻丝袜AV资源| 日韩欧洲操屄视频| 秋霞男人网| 一级做受视频免费是看美女| 美女人妻色网站| 天天看夜夜看日日干| 精品网站9999| 日韩欧美大片免费高清啪啪| 嗯嗯啊啊用力视频免费| 一级片视频啪啪| 欧美无圣光在线| 精品国产乱码| 日韩欧亚中文在线| 国产 亚洲 丝袜 制服| 国产精品久久久久久夜夜夜夜| 二男一女成人A片| 日日干夜夜欢| 精品婷婷| 日本色日夜干| 欧美亚洲第1页| 少妇一级婬片免费放一级a性色.| 夜夜福利| 色青青久久影视| 亚洲天天自拍| 欧美大码在线视频| 日韩福利综合一区| 欧美人人天天网| 美女自卫慰黄网站免费| 热热色91| 成人老鸭窝人人在线视频| 一本精品日本在线视频精品| 亚洲AV在线资源| 婷婷五月天在线观看| 秋霞 色色| 老女人碰碰在线碰碰视频| 日韩精品在线观看网站| 日韩三级av片| 一区二区精品更新提醒| 丰满人妻无码一区二区三区| 精品久操| 精品一区二区三区最新| 无套内射人妻在线播放| 超碰97久| 国产黄色动态精品| 婷婷中文网| 日韩av无码网站| 日本久久999| 加勒比无码一区二区三区| 涩涩涩综合| 中国和日本人色哪个不下载能放| 在线人妻熟女一区二区三区四区五区| 尤物黄色在线观看网站| 欲综合网| 国产精品久久久久久久久久久久久久久久久久 | 久热精品在线国产| 91痴汉| 天天日天天舔东京热| 中文字幕黄色片| 1级黄色夫妻对换性交免费看| 性高潮久久久| 国产中文福利| 人妻少妇久久久| 国产成人亚洲精品无码古代早漏男| 99热伊人| 欧美91久久久久| 亚洲美女精品| 亚洲啪啪性视频| 天天激情综合站| 清纯唯美亚洲综合| 男人成人黄色视频在线观看免费下载| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 人人摸人人干| www.色五月| 日逼国产| 日韩簧片免费看| 香蕉视频欧美一卡二卡| 熟妇无码视频三区| 日韩精品作爱导航| 色婷婷aV一区二区三区麻豆综合| 综合欧美日本三级| 青娱乐欧美激情一区二区| 国产福利合集| 97鸡把在线视频| 久久精品日韩专区免费观看| 天堂精品小草| 欧美中文字幕男人天堂久久精品| 五月婷婷久久综合| 麻花传媒免费网站在线观看| 无码人妻一区二区三区色欲aⅴ| 欧美在线天堂| 97欧美资源| 夜夜嗨老熟女AV一区二区三区| 天天α片| 欲色影视综合吧| 香蕉一区二区三区在线视频| 大奶啊啊好爽| 久久激情视频| 国产67194| 精品超碰国产| 亚洲成A∨人影院在线欢看| 欧美亚洲色图另类国产| 情趣丝袜无码操逼视频| av毛片aaaaa免费看| 久久色网| 亚洲天堂男人| 91 欧美| 新亚洲无码| 天天澡天天爽日日AV| 日韩欧美日韩| 久久性爱视频免费看| 欧亚揄拍偷拍精品视频| 91视频精品| 四虎国产精品永久在线囯在线| 91亚洲在线| 亚洲色人| 国产精品点击进入在线影院高清| 国语少妇精| 久久久久久久人妻丝袜| 91老熟女视频| 精品人成视频在线观看| 久草尤物| 啪啪视频亚洲第一| 国产亚洲日韩在线三区黑人| 青青操综合网| 免费A V在线| 午夜精品久久久久久久男人的天堂| 免费精品99| 日本天堂网|