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

ARTICLE DETAIL

資訊詳情

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

SpringBoot+Vue車輛管理系統(tǒng)開(kāi)發(fā)實(shí)戰(zhàn):從數(shù)據(jù)庫(kù)設(shè)計(jì)到前后端聯(lián)調(diào)

SpringBoot+Vue車輛管理系統(tǒng)開(kāi)發(fā)實(shí)戰(zhàn):從數(shù)據(jù)庫(kù)設(shè)計(jì)到前后端聯(lián)調(diào) 又到一年畢設(shè)季后臺(tái)私信問(wèn)得最多的還是那幾樣SpringBootVue車牌管理系統(tǒng)、圖書(shū)館管理系統(tǒng)、學(xué)生選課系統(tǒng)。今天就把我用得最順手、改過(guò)好幾版的一個(gè)方案徹底聊透——基于SpringBootVue的前后端分離車輛管理系統(tǒng)配合MySQL存儲(chǔ)拿來(lái)交畢設(shè)、課設(shè)或者自己練手都合適。這套東西我前前后后帶過(guò)好幾個(gè)學(xué)弟學(xué)妹從零搭到答辯踩過(guò)的坑、改過(guò)的文檔、調(diào)過(guò)的接口都在腦子里一篇講完不廢話。車輛管理系統(tǒng)說(shuō)白了就是把單位的車、司機(jī)、出車記錄、維修保養(yǎng)、油耗這些東西從Excel里搬到一個(gè)能登錄、能分配權(quán)限的網(wǎng)頁(yè)上來(lái)。它的功能邊界非常清晰很適合做成一個(gè)完整的前后端分離項(xiàng)目后端管業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)前端管頁(yè)面交互中間用JSON接口對(duì)接。這恰好就是企業(yè)里最主流的開(kāi)發(fā)模式所以院校也喜歡拿它當(dāng)畢設(shè)題目。這篇內(nèi)容我會(huì)從技術(shù)選型思路、數(shù)據(jù)庫(kù)設(shè)計(jì)、核心模塊實(shí)現(xiàn)、前后端聯(lián)調(diào)、論文答辯話術(shù)、常見(jiàn)排錯(cuò)這幾個(gè)維度全部過(guò)一遍。不管你是剛把SpringBoot跑通的入門選手還是已經(jīng)在寫(xiě)Mapper層的老手都能從里面拿到能直接用的東西。1. 項(xiàng)目整體拆解為什么這套組合經(jīng)久不衰1.1 車輛管理系統(tǒng)的需求邊界到底劃在哪很多人一拿到的題目就懵不知道“車輛管理系統(tǒng)”該做多大。我見(jiàn)過(guò)最夸張的學(xué)弟想在一個(gè)畢設(shè)里做GPS實(shí)時(shí)定位、違章查詢、ETC扣費(fèi)聯(lián)動(dòng)最后把自己寫(xiě)崩潰了。講實(shí)話畢設(shè)和課設(shè)階段的車輛管理系統(tǒng)核心需求永遠(yuǎn)圍繞“人、車、單、賬”四個(gè)字打轉(zhuǎn)。所謂“人”就是兩類角色管理員和普通用戶。管理員管車輛檔案、司機(jī)檔案、審批派車普通用戶申請(qǐng)用車、查看自己的記錄、提交還車信息。“車”指的是車輛基礎(chǔ)資料車牌號(hào)、品牌型號(hào)、購(gòu)置日期、座位數(shù)、當(dāng)前狀態(tài)可用/已派出/維修中/報(bào)廢?!皢巍本褪浅鲕嚿暾?qǐng)單、還車記錄、維修保養(yǎng)記錄、加油記錄?!百~”是月度的里程統(tǒng)計(jì)、油耗匯總、費(fèi)用明細(xì)。這四個(gè)維度撐起來(lái)的系統(tǒng)既有增刪改查的常規(guī)操作又有角色權(quán)限的區(qū)分還有統(tǒng)計(jì)報(bào)表這類稍微帶點(diǎn)復(fù)雜度的功能用來(lái)應(yīng)付畢設(shè)的“工作量”標(biāo)準(zhǔn)剛剛好。別貪多把基礎(chǔ)閉環(huán)做扎實(shí)比堆一堆跑不通的花哨功能得分高得多。1.2 為什么選SpringBootVue而不是別的技術(shù)棧這個(gè)問(wèn)題答辯必問(wèn)我建議你得能講清楚。SpringBoot是基于Spring的快速開(kāi)發(fā)框架好處是內(nèi)置了Tomcat不用再單獨(dú)配置服務(wù)器打出一個(gè)jar包就能跑。它把SpringMVC、依賴注入、自動(dòng)配置這些底層繁瑣的東西都封好了你寫(xiě)Controller就專注寫(xiě)業(yè)務(wù)邏輯這對(duì)學(xué)生來(lái)說(shuō)極其友好。Vue作為前端框架核心優(yōu)勢(shì)是數(shù)據(jù)驅(qū)動(dòng)視圖。你維護(hù)一個(gè)data對(duì)象頁(yè)面上的表格、表單、下拉框會(huì)自動(dòng)跟著變不需要像jQuery那樣手動(dòng)操作DOM。配合Element UI組件庫(kù)表格、彈窗、表單、分頁(yè)這些界面元素直接拿來(lái)用寫(xiě)出來(lái)的頁(yè)面干凈又規(guī)范。MySQL就更不用說(shuō)了開(kāi)源、輕量、文檔全和Java配合最成熟你隨便搜一個(gè)問(wèn)題都有答案。這套組合在國(guó)內(nèi)中小型系統(tǒng)里占有率極高你畢業(yè)去公司大概率也會(huì)碰到類似的項(xiàng)目結(jié)構(gòu)用它做畢設(shè)不是應(yīng)付交差是真能積累實(shí)戰(zhàn)經(jīng)驗(yàn)。1.3 源碼目錄結(jié)構(gòu)一份標(biāo)準(zhǔn)的腳手架長(zhǎng)什么樣拿到源碼或者自己新建項(xiàng)目時(shí)先把目錄結(jié)構(gòu)搞清楚后面才不會(huì)迷路。我習(xí)慣這樣組織一個(gè)前后端分離的車輛管理系統(tǒng)vehicle-manage/ ├── backend/ # SpringBoot后端 │ ├── src/main/java │ │ └── com/example/vehicle │ │ ├── controller/ # 接口層接收前端請(qǐng)求 │ │ ├── service/ # 業(yè)務(wù)邏輯層 │ │ ├── mapper/ # 數(shù)據(jù)庫(kù)操作層MyBatis接口 │ │ ├── entity/ # 實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)表 │ │ ├── config/ # 配置類比如CORS跨域配置 │ │ └── common/ # 通用返回結(jié)果、異常處理 │ ├── src/main/resources │ │ ├── mapper/ # XML文件寫(xiě)復(fù)雜SQL │ │ └── application.yml # 端口、數(shù)據(jù)庫(kù)連接配置 │ └── pom.xml ├── frontend/ # Vue前端 │ ├── src │ │ ├── views/ # 頁(yè)面組件 │ │ ├── router/ # 路由配置 │ │ ├── api/ # axios請(qǐng)求封裝 │ │ ├── store/ # 登錄狀態(tài)管理 │ │ └── main.js │ └── package.json └── sql/ └── vehicle.sql # 初始化數(shù)據(jù)庫(kù)腳本這種結(jié)構(gòu)最標(biāo)準(zhǔn)也最容易講清楚。你論文里的系統(tǒng)架構(gòu)圖基本就是照著這個(gè)畫(huà)。注意一點(diǎn)controller盡量只做參數(shù)接收和結(jié)果返回業(yè)務(wù)邏輯寫(xiě)在service里這樣答辯時(shí)導(dǎo)師問(wèn)你“這個(gè)模塊怎么設(shè)計(jì)的”你能分層講得明明白白。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)車輛系統(tǒng)能不能撐住就看表建得怎么樣2.1 核心表結(jié)構(gòu)和字段設(shè)計(jì)我對(duì)每一個(gè)帶過(guò)的學(xué)弟都會(huì)強(qiáng)調(diào)數(shù)據(jù)庫(kù)設(shè)計(jì)是畢設(shè)的命門之一答辯老師必看表設(shè)計(jì)合不合理。車輛管理系統(tǒng)最簡(jiǎn)化的表方案需要六張表用戶表、車輛表、出車申請(qǐng)表、還車記錄表、維修保養(yǎng)表、加油記錄表。有時(shí)加一張字典表用來(lái)存車輛類型、使用狀態(tài)這種枚舉值。用戶表字段不用多id、username、password、real_name、phone、role、status、create_time。密碼千萬(wàn)別存明文用BCrypt加密這個(gè)細(xì)節(jié)寫(xiě)進(jìn)論文里很加分。車輛表字段多一些id、plate_number、brand、model、vehicle_type、buy_date、seat_count、engine_number、status、remark。status建議用int或者tinyint0可用、1已派出、2維修中、3報(bào)廢用數(shù)字比字符串效率高也好擴(kuò)展。出車申請(qǐng)表是業(yè)務(wù)核心字段有id、user_id、vehicle_id、driver_name、start_place、end_place、start_time、end_time、reason、mileage、fuel_cost、status、create_time。status字段用來(lái)表示申請(qǐng)狀態(tài)0待審核、1已通過(guò)、2已駁回、3已完成。很多系統(tǒng)把送審和歸還合在一張表里我建議拆開(kāi)或者用status區(qū)分因?yàn)椤吧暾?qǐng)”和“記錄”本質(zhì)上不是一個(gè)生命周期狀態(tài)。關(guān)聯(lián)關(guān)系要注意業(yè)務(wù)表都用關(guān)聯(lián)id不要直接存字符串。比如申請(qǐng)表里存user_id而不是user_name這樣后期做統(tǒng)計(jì)的時(shí)候用JOIN就能拿到名字改用戶姓名也不會(huì)影響歷史記錄。違反這個(gè)原則的表后期寫(xiě)統(tǒng)計(jì)SQL時(shí)你只會(huì)想罵人。2.2 建庫(kù)腳本和初始化數(shù)據(jù)的坑啟動(dòng)項(xiàng)目前一定要有一條能用的SQL腳本。我見(jiàn)過(guò)很多同學(xué)拿到的源碼里SQL文件是殘缺的或者字段對(duì)不上實(shí)體類一啟動(dòng)就報(bào)Unknown column。拿到任何源碼第一件事是先看SQL文件里有哪些表再去對(duì)entity目錄下的類一個(gè)字段一個(gè)字段確認(rèn)。建庫(kù)時(shí)注意字符集統(tǒng)一用utf8mb4不然存車牌號(hào)里的生僻字或者特殊符號(hào)會(huì)報(bào)錯(cuò)。數(shù)據(jù)庫(kù)名我習(xí)慣用vehicle_db導(dǎo)入命令就拿Navicat或者命令行執(zhí)行SQL文件。初始化數(shù)據(jù)至少要有管理員賬號(hào)和一條可用車輛不然你前端登錄進(jìn)去看到空頁(yè)面還以為代碼寫(xiě)錯(cuò)了。管理員密碼建議在SQL里就存成BCrypt加密后的值比如admin123加密后的字符串別直接用明文也算是一種規(guī)范。2.3 表之間的外鍵到底要不要加這是課設(shè)里很常見(jiàn)的問(wèn)題。我建議邏輯上保留關(guān)聯(lián)關(guān)系但物理上少加真正的外鍵約束。什么意思就是你建表時(shí)不用FOREIGN KEY關(guān)鍵字去強(qiáng)制約束而是在業(yè)務(wù)代碼里保證數(shù)據(jù)一致。原因很簡(jiǎn)單加了物理外鍵刪除車輛時(shí)如果有出車記錄引用它你會(huì)被數(shù)據(jù)庫(kù)擋住報(bào)錯(cuò)信息對(duì)新手特別不友好。可能你只是想測(cè)試一下刪除功能結(jié)果怎么都刪不掉。用邏輯外鍵刪除車輛時(shí)先檢查有沒(méi)有未完成的申請(qǐng)單有就在service層攔截沒(méi)就在車輛表里把status改成“報(bào)廢”而不是物理刪除。這種設(shè)計(jì)在生產(chǎn)環(huán)境也是主流寫(xiě)論文的時(shí)候還能順帶提一句“為了性能和靈活性采用邏輯外鍵設(shè)計(jì)”顯得你有思考。3. 后端SpringBoot核心模塊實(shí)現(xiàn)3.1 統(tǒng)一返回結(jié)果與異常處理前端和后端聯(lián)調(diào)最煩的一件事就是接口返回格式不統(tǒng)一。有的接口返回對(duì)象有的返回List報(bào)錯(cuò)時(shí)一會(huì)兒是String一會(huì)兒是Map前端根本沒(méi)法寫(xiě)統(tǒng)一處理。這個(gè)問(wèn)題從一開(kāi)始就要避免。我習(xí)慣定義一個(gè)Result類長(zhǎng)這樣Data public class ResultT { private Integer code; // 200成功 500失敗 private String msg; // 提示信息 private T data; // 數(shù)據(jù) public static T ResultT success(T data) { ResultT result new Result(); result.setCode(200); result.setMsg(操作成功); result.setData(data); return result; } public static T ResultT error(String msg) { ResultT result new Result(); result.setCode(500); result.setMsg(msg); return result; } }所有的Controller接口都返回Result類型前端axios封裝里統(tǒng)一判斷code。這樣登錄失效、參數(shù)校驗(yàn)失敗、服務(wù)器內(nèi)部錯(cuò)誤都能用同一套邏輯處理。配合RestControllerAdvice做全局異常捕獲controller里就不用每個(gè)方法都寫(xiě)try-catch代碼清爽很多。3.2 登錄認(rèn)證與JWT攔截器車輛管理系統(tǒng)肯定要分角色普通用戶不能去審批派車管理員要能看到所有記錄。最常見(jiàn)的方案是JWT 攔截器。登錄時(shí)驗(yàn)證用戶名密碼通過(guò)后生成一個(gè)token返回前端前端每次請(qǐng)求都在header里帶上token后端攔截器驗(yàn)證token并解析出用戶id和角色。核心代碼其實(shí)不多我貼一下攔截器的邏輯Component public class JwtInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token request.getHeader(Authorization); if (StringUtils.isBlank(token)) { throw new BusinessException(未登錄); } // 解析token校驗(yàn)簽名和過(guò)期時(shí)間 Claims claims JwtUtil.parseToken(token.replace(Bearer , )); if (claims null) { throw new BusinessException(登錄已過(guò)期請(qǐng)重新登錄); } // 把用戶id放到request里后續(xù)controller可以直接取 request.setAttribute(userId, claims.get(userId)); return true; } }然后寫(xiě)一個(gè)WebMvcConfigurer把攔截器注冊(cè)進(jìn)去排除登錄接口本身和靜態(tài)資源。這里最容易犯的錯(cuò)是攔截器沒(méi)有排除登錄接口導(dǎo)致前端登錄都調(diào)不通。我調(diào)試的順序永遠(yuǎn)是先直接訪問(wèn)后端接口再?gòu)那岸隧?yè)面調(diào)分段定位問(wèn)題。3.3 分頁(yè)查詢與條件搜索的實(shí)現(xiàn)車輛列表、出車記錄、維修記錄這些頁(yè)面都要用到分頁(yè)和搜索。MyBatis結(jié)合PageHelper是最簡(jiǎn)單的分頁(yè)方案頁(yè)面?zhèn)鱟urrent和size兩個(gè)參數(shù)后端直接開(kāi)查。我寫(xiě)一個(gè)典型的分頁(yè)查詢service看一下public PageResultVehicle pageVehicles(int current, int size, String plateNumber, Integer status) { PageHelper.startPage(current, size); ListVehicle list vehicleMapper.selectByCondition(plateNumber, status); PageInfoVehicle pageInfo new PageInfo(list); PageResultVehicle result new PageResult(); result.setTotal(pageInfo.getTotal()); result.setRecords(pageInfo.getList()); return result; }這里有個(gè)細(xì)節(jié)PageHelper.startPage后面必須緊跟一條Mapper查詢中間不能插入其他操作否則分頁(yè)會(huì)失效。這個(gè)坑我踩過(guò)好多次現(xiàn)在每次寫(xiě)完都要確認(rèn)startPage和select之間沒(méi)有多余的代碼。模糊查詢用LIKE CONCAT(%, #{plateNumber}, %)注意別用${}直接拼字符串既防SQL注入也避免特殊字符把SQL搞壞。3.4 業(yè)務(wù)狀態(tài)流轉(zhuǎn)控制出車申請(qǐng)不只是簡(jiǎn)單的增刪改查它有狀態(tài)流轉(zhuǎn)提交申請(qǐng) → 管理員審核通過(guò) → 出車 → 歸還。每個(gè)狀態(tài)之間的轉(zhuǎn)換要有校驗(yàn)。比如已經(jīng)通過(guò)審核的單子就不能再隨便刪除否則統(tǒng)計(jì)數(shù)據(jù)全亂了。我的做法是在service層寫(xiě)狀態(tài)變更方法比如auditApply(id, status, auditOpinion)方法內(nèi)部先查當(dāng)前狀態(tài)只允許“待審核”狀態(tài)變?yōu)椤巴ㄟ^(guò)”或“駁回”。如果狀態(tài)已經(jīng)是“通過(guò)”再調(diào)這個(gè)接口就直接拋異常。這種“狀態(tài)機(jī)”思維雖然代碼量不大但會(huì)讓你的系統(tǒng)看起來(lái)專業(yè)很多答辯時(shí)也容易講。4. 前端Vue頁(yè)面實(shí)現(xiàn)與聯(lián)調(diào)細(xì)節(jié)4.1 登錄頁(yè)與路由守衛(wèi)前端項(xiàng)目的入口是登錄頁(yè)。表單提交到后端/login接口拿到token之后存到localStorage同時(shí)把用戶信息放進(jìn)Vuex。這里注意token的存儲(chǔ)位置直接決定后面好不好調(diào)試我習(xí)慣只存token在localStorage用戶信息存Vuex里刷新頁(yè)面再調(diào)一次getInfo接口拉取。路由守衛(wèi)是必須寫(xiě)的不然未登錄的人可以直接敲URL進(jìn)后臺(tái)頁(yè)面router.beforeEach((to, from, next) { const token localStorage.getItem(token); if (to.meta.requireAuth !token) { next(/login); } else { next(); } });還有個(gè)容易被忽視的點(diǎn)axios請(qǐng)求攔截器里把token掛到header上service.interceptors.request.use(config { const token localStorage.getItem(token); if (token) { config.headers[Authorization] Bearer token; } return config; });這兩段代碼配上之后整個(gè)系統(tǒng)的登錄驗(yàn)證就算閉環(huán)了。4.2 Element UI表格、表單與彈窗Vue頁(yè)面里占用開(kāi)發(fā)時(shí)間最多的就是表格和表單的組合。車輛列表頁(yè)的結(jié)構(gòu)大概是頂部搜索欄車牌號(hào)輸入框、狀態(tài)下拉框、查詢按鈕中間表格展示車輛信息底部彈窗新增/編輯車輛。Element UI的el-table、el-pagination、el-dialog、el-form這四個(gè)組件足夠完成95%的頁(yè)面。表格列要注意格式化比如狀態(tài)字段在數(shù)據(jù)庫(kù)里是0、1、2頁(yè)面上不能直接顯示數(shù)字要用tag標(biāo)簽映射成中文。我常用的方式是在表格列里寫(xiě)templateel-table-column label狀態(tài) template slot-scopescope el-tag :typestatusType(scope.row.status) {{ statusText(scope.row.status) }} /el-tag /template /el-table-columnstatusText和statusType寫(xiě)成一個(gè)工具函數(shù)所有需要顯示狀態(tài)的地方共用避免每個(gè)頁(yè)面寫(xiě)一份。提交表單時(shí)默認(rèn)的el-form會(huì)把數(shù)據(jù)綁到一個(gè)form對(duì)象里如果你直接把整個(gè)對(duì)象傳給后端可能會(huì)帶上莫名其妙的多余字段。比較好的做法是在提交前手動(dòng)構(gòu)造一個(gè)干凈的DTOconst submitData { plateNumber: this.form.plateNumber, brand: this.form.brand, model: this.form.model, status: this.form.status };這樣既不會(huì)傳臟數(shù)據(jù)接口參數(shù)也好維護(hù)。4.3 前端接口封裝規(guī)范我見(jiàn)過(guò)最亂的項(xiàng)目是每個(gè)頁(yè)面里直接寫(xiě)axios.get(/api/vehicle/list)URL散落一地后端一改路徑前端要翻遍所有vue文件。正確做法是用api目錄統(tǒng)一管理接口按模塊拆分文件。// src/api/vehicle.js import request from /utils/request; export function getVehicleList(params) { return request({ url: /vehicle/page, method: get, params }); } export function addVehicle(data) { return request({ url: /vehicle/add, method: post, data }); } export function updateVehicle(data) { return request({ url: /vehicle/update, method: post, data }); }頁(yè)面里調(diào)用的時(shí)候import進(jìn)來(lái)用就行。這樣做的好處是接口路徑統(tǒng)一管理改一處全項(xiàng)目生效。而且每個(gè)模塊一個(gè)文件后端的controller結(jié)構(gòu)是什么樣前端的api文件就是什么樣對(duì)應(yīng)關(guān)系一目了然。4.4 跨域問(wèn)題的解決方案前后端分離開(kāi)發(fā)最煩的就是CORS跨域。前端8080端口后端8081端口默認(rèn)情況下瀏覽器會(huì)攔截跨域請(qǐng)求。解決方式有兩種一種是在后端寫(xiě)配置類開(kāi)啟CORS一種是用前端代理。我推薦開(kāi)發(fā)階段用前端代理發(fā)布于生產(chǎn)時(shí)用后端CORS。Vue的vue.config.js里加這么一段module.exports { devServer: { port: 8080, proxy: { /api: { target: http://localhost:8081, changeOrigin: true } } } };這樣前端請(qǐng)求/api/xxx會(huì)轉(zhuǎn)發(fā)到后端的8081端口。注意你項(xiàng)目里所有接口前綴要統(tǒng)一比如都帶/api。后端Controller的RequestMapping第一個(gè)層級(jí)就是/api/xxx這樣代理規(guī)則才有效。這個(gè)細(xì)節(jié)很多人不寫(xiě)前端聯(lián)調(diào)時(shí)接口404找半天。5. 統(tǒng)計(jì)報(bào)表與Excel導(dǎo)出的加分功能5.1 月度油耗、里程、費(fèi)用統(tǒng)計(jì)的SQL寫(xiě)法車輛管理系統(tǒng)里統(tǒng)計(jì)功能是答辯時(shí)的加分項(xiàng)但也是很多人的薄弱點(diǎn)。其實(shí)核心就是幾個(gè)SQL聚合查詢。比如統(tǒng)計(jì)每輛車每月的總里程和油耗可以先建立加油記錄表每次加油記錄升數(shù)、金額、當(dāng)前里程。那某輛車一段時(shí)間內(nèi)的油耗率就可以算出來(lái)。我常用的統(tǒng)計(jì)接口是查出一張匯總表SELECT vehicle_id, DATE_FORMAT(record_date, %Y-%m) AS month, SUM(fuel_volume) AS total_fuel, SUM(fuel_cost) AS total_cost, SUM(mileage) AS total_mileage FROM fuel_record WHERE record_date BETWEEN #{startDate} AND #{endDate} GROUP BY vehicle_id, DATE_FORMAT(record_date, %Y-%m) ORDER BY month DESC然后在service里算平均油耗total_fuel除以total_mileage再乘100就是百公里油耗。這個(gè)數(shù)寫(xiě)進(jìn)論文正文非常有說(shuō)服力說(shuō)明你真的理解了業(yè)務(wù)。前端展示用ECharts畫(huà)一個(gè)柱狀圖或者折線圖視覺(jué)沖擊力很強(qiáng)答辯演示的時(shí)候頁(yè)面上刷出一張油耗趨勢(shì)圖基本就穩(wěn)了。5.2 導(dǎo)出Excel工具類的封裝“導(dǎo)出Excel”這個(gè)功能看起來(lái)簡(jiǎn)單但很多同學(xué)不會(huì)寫(xiě)只會(huì)嘴上說(shuō)“可以實(shí)現(xiàn)”。這里提供一條最簡(jiǎn)單的路用Apache POI或者EasyExcel。EasyExcel是阿里開(kāi)源的API簡(jiǎn)單得多我建議直接用。思路是查到數(shù)據(jù)List然后用EasyExcel的write方法寫(xiě)到HttpServletResponse的輸出流GetMapping(/export) public void exportExcel(HttpServletResponse response) throws IOException { ListVehicle list vehicleService.listAll(); response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); response.setCharacterEncoding(utf-8); String fileName URLEncoder.encode(車輛信息表, UTF-8); response.setHeader(Content-disposition, attachment;filename fileName .xlsx); EasyExcel.write(response.getOutputStream(), Vehicle.class).sheet(車輛信息).doWrite(list); }注意導(dǎo)出的實(shí)體類需要加ExcelProperty注解把實(shí)體字段對(duì)應(yīng)成中文列名。這個(gè)功能做完記得在論文里寫(xiě)一句“本系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)導(dǎo)出功能便于管理人員線下存檔和進(jìn)一步分析”功能完整度立刻上一個(gè)臺(tái)階。5.3 ECharts圖表展示的實(shí)現(xiàn)思路前端引入ECharts做圖表其實(shí)不難。在Vue項(xiàng)目里安裝echarts然后在需要展示統(tǒng)計(jì)的頁(yè)面初始化一個(gè)DOM容器用setOption配置數(shù)據(jù)源和圖表類型。柱狀圖用來(lái)展示各部門用車頻次折線圖展示月度油費(fèi)趨勢(shì)餅圖展示車輛狀態(tài)分布。這三張圖放在首頁(yè)Dashboard上能替代一大段文字描述答辯時(shí)導(dǎo)師一眼就能看出你系統(tǒng)的數(shù)據(jù)可視化能力。6. 畢設(shè)答辯如何講清楚這套系統(tǒng)6.1 系統(tǒng)架構(gòu)與技術(shù)選型怎么描述答辯PPT里必定有一頁(yè)是系統(tǒng)架構(gòu)圖。我建議畫(huà)三層的結(jié)構(gòu)展示層用Vue和Element UI業(yè)務(wù)層用SpringBoot提供的RESTful接口數(shù)據(jù)層用MySQL配合MyBatis。上面再標(biāo)注一個(gè)JWT用于身份認(rèn)證。這張圖一放整個(gè)系統(tǒng)的全貌就出來(lái)了。技術(shù)選型部分不要只是羅列名詞要給出理由。比如問(wèn)“為什么用SpringBoot”你不要只說(shuō)“因?yàn)楹?jiǎn)單”要講“SpringBoot內(nèi)置Tomcat簡(jiǎn)化了配置過(guò)程同時(shí)繼承了Spring的依賴注入和事務(wù)管理能力適合快速開(kāi)發(fā)中小型管理系統(tǒng)”。一問(wèn)一答有來(lái)有回導(dǎo)師會(huì)覺(jué)得你是真懂。6.2 答辯必問(wèn)的幾個(gè)高頻問(wèn)題第一個(gè)必問(wèn)系統(tǒng)的角色權(quán)限是怎么實(shí)現(xiàn)的標(biāo)準(zhǔn)回答思路用戶表里有role字段區(qū)分角色登錄后發(fā)放JWTJWT里包含角色信息后端攔截器解析請(qǐng)求后判斷角色是否有權(quán)限訪問(wèn)當(dāng)前接口。第二個(gè)必問(wèn)如果并發(fā)量上來(lái)了這個(gè)系統(tǒng)怎么優(yōu)化這個(gè)問(wèn)題要小心不要一上來(lái)就說(shuō)“加Redis加Nginx”。就畢設(shè)體量來(lái)講先答數(shù)據(jù)庫(kù)層面給常用查詢字段加索引、避免SELECT *、分頁(yè)優(yōu)化。再答代碼層面sql防注入、連接池配置。最后說(shuō)如果真到生產(chǎn)環(huán)境可以考慮引入Redis緩存熱點(diǎn)數(shù)據(jù)和消息隊(duì)列削峰。層層遞進(jìn)比空談高深技術(shù)得分高。第三個(gè)必問(wèn)你遇到的最大難點(diǎn)是什么怎么解決的這問(wèn)題考察的是解決問(wèn)題的能力不是代碼本身。你可以挑一個(gè)真實(shí)的坑比如跨域問(wèn)題排查了一整天最后發(fā)現(xiàn)是前端口令中帶了token沒(méi)生效或者分頁(yè)失效是因?yàn)镻ageHelper和startPage之間插了其他操作。關(guān)鍵是要講出“排查思路”和“最終解決手段”。6.3 論文結(jié)構(gòu)建議和字?jǐn)?shù)分配我給你一個(gè)可以照著用的論文結(jié)構(gòu)建議。第一章緒論寫(xiě)背景意義和國(guó)內(nèi)外現(xiàn)狀注意國(guó)內(nèi)外現(xiàn)狀寫(xiě)的時(shí)候別空洞可以結(jié)合一些行業(yè)數(shù)據(jù)。第二章相關(guān)技術(shù)介紹寫(xiě)SpringBoot、Vue、MySQL、MyBatis每節(jié)寫(xiě)清楚“是什么為什么選它”。第三章系統(tǒng)分析寫(xiě)可行性分析和需求分析畫(huà)用例圖和數(shù)據(jù)流圖。第四章系統(tǒng)設(shè)計(jì)寫(xiě)總體架構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)。第五章系統(tǒng)實(shí)現(xiàn)按功能模塊逐個(gè)介紹配截圖和核心代碼。第六章系統(tǒng)測(cè)試寫(xiě)功能性測(cè)試和性能測(cè)試附測(cè)試用例表格。關(guān)鍵點(diǎn)是論文截圖一定要真實(shí)所有頁(yè)面截圖和數(shù)據(jù)庫(kù)截圖都要與你系統(tǒng)的實(shí)際界面完全一致。很多同學(xué)論文里放的效果圖和實(shí)際系統(tǒng)對(duì)不上答辯老師一眼就看穿這種情況印象分直接就掉完了。7. 實(shí)際部署與常見(jiàn)排錯(cuò)實(shí)錄7.1 從源碼到本地跑通的完整路徑拿到任何一份車輛管理系統(tǒng)的源碼我最推薦的運(yùn)行順序是先看SQL腳本導(dǎo)入數(shù)據(jù)庫(kù)再啟動(dòng)后端服務(wù)最后啟動(dòng)前端。不要反著來(lái)。后端啟動(dòng)之前確認(rèn)application.yml里的數(shù)據(jù)庫(kù)地址、端口、用戶名密碼都改了。前端啟動(dòng)之前執(zhí)行npm install如果嫌慢可以配置一下鏡像源這是常規(guī)操作。后端啟動(dòng)成功后訪問(wèn)Swagger或者直接訪問(wèn)一個(gè)GET接口確認(rèn)返回JSON。前端啟動(dòng)后訪問(wèn)首頁(yè)如果頁(yè)面能打開(kāi)但接口報(bào)錯(cuò)優(yōu)先看瀏覽器F12的Network面板確認(rèn)請(qǐng)求是不是被代理轉(zhuǎn)發(fā)到了正確的后端地址。90%的聯(lián)調(diào)問(wèn)題都能在這個(gè)面板里定位到。7.2 數(shù)據(jù)庫(kù)連接失敗的排查步驟數(shù)據(jù)庫(kù)連接失敗這個(gè)問(wèn)題高發(fā)報(bào)錯(cuò)大概長(zhǎng)這樣Access denied for user rootlocalhost。先別急按順序排查三層第一MySQL服務(wù)有沒(méi)有啟動(dòng)Windows下按CtrlShiftEsc到服務(wù)里看第二用戶名密碼是不是對(duì)的拿Navicat直接連一下試試第三賬號(hào)允許訪問(wèn)的主機(jī)范圍是不是localhost。第三步是重災(zāi)區(qū)很多人的MySQL的root賬號(hào)不允許遠(yuǎn)程訪問(wèn)要用就得在mysql庫(kù)的user表里改host字段和權(quán)限或者創(chuàng)建一個(gè)專用賬號(hào)。7.3 前后端接口返回值對(duì)不上的處理方式聯(lián)調(diào)時(shí)會(huì)遇到這種情況前端表格全是空的但瀏覽器的Network里明明看到后端返回了數(shù)據(jù)。排查思路先看Response是不是被瀏覽器攔截了CORS錯(cuò)誤會(huì)在Console里報(bào)再看數(shù)據(jù)格式是不是嵌套了一層比如后端返回的是{ code: 200, data: {...} }你前端卻直接拿res.data當(dāng)成列表用拿到的其實(shí)是整個(gè)Result對(duì)象自然渲染不出來(lái)。還有一種情況是后端的日期字段返回格式是時(shí)間戳前端直接顯示一串?dāng)?shù)字。解決辦法是在后端實(shí)體字段上加JsonFormat(pattern yyyy-MM-dd HH:mm:ss)注解或者在Jackson配置里統(tǒng)一指定時(shí)間格式。這種細(xì)節(jié)不處理答辯演示時(shí)表格里出現(xiàn)一串?dāng)?shù)字觀感非常差。7.4 前端Node環(huán)境相關(guān)的坑npm install能不能順利跑完取決于Node版本和依賴版本匹不匹配。有些老項(xiàng)目依賴的是webpack 4配Node 18以上會(huì)報(bào)錯(cuò)。如果你拿到的源碼用的是Vue CLI 4建議裝Node 14或者16的LTS版本。這里也提醒一句Vue2和Vue3的項(xiàng)目結(jié)構(gòu)有一定差別拿到源碼先看package.json里的vue版本再?zèng)Q定自己的操作。依賴裝好后npm run serve就可以啟動(dòng)了。如果報(bào)端口被占用改vue.config.js里的port即可。如果報(bào)了ESLint格式錯(cuò)誤導(dǎo)致編譯失敗可以在vue.config.js里把lintOnSave設(shè)為false先把項(xiàng)目跑起來(lái)再說(shuō)。8. 寫(xiě)在最后的一點(diǎn)建議我做這套系統(tǒng)的最大感受是別把畢設(shè)當(dāng)成最后一個(gè)月要趕的作業(yè)當(dāng)成一個(gè)真正要上線的小產(chǎn)品來(lái)做。當(dāng)你把“能用”的代碼改成“好用”的代碼——表格加了搜索、數(shù)據(jù)加了校驗(yàn)、異常給了提示、頁(yè)面加了圖表——那個(gè)過(guò)程學(xué)到的知識(shí)密度遠(yuǎn)大于你把視頻課刷一遍。如果你現(xiàn)在手里正準(zhǔn)備啟動(dòng)一個(gè)車輛管理系統(tǒng)我建議第一周什么都不寫(xiě)先把表和接口設(shè)計(jì)想明白。我是吃過(guò)這個(gè)虧的第一次做的時(shí)候數(shù)據(jù)庫(kù)表建得隨意到了第三周要加統(tǒng)計(jì)功能發(fā)現(xiàn)表結(jié)構(gòu)根本查不出數(shù)據(jù)硬著頭皮重建了四張表那周基本沒(méi)睡好。最后分享一個(gè)小技巧寫(xiě)完一個(gè)模塊就自己模擬用戶走一遍完整流程注冊(cè)、登錄、申請(qǐng)出車、審批、還車、查看報(bào)表。你親手走過(guò)一遍完整的業(yè)務(wù)閉環(huán)答辯時(shí)講出來(lái)的通暢程度和只背代碼完全不一樣。你會(huì)發(fā)現(xiàn)導(dǎo)師問(wèn)的很多問(wèn)題都在這個(gè)閉環(huán)里有了答案。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲国产精品成人无码久久久| 一区二区不卡| 日韩精品在线视频在线观看| 青青草一区二区高清无码视频| 美女啊啊啊啊pc| 国产亚洲日韩在线三区黑人| 超碰91在线| 国偷自 一区二区| 欧美综合站| 大香蕉专区| 青青青青青手机视频| 美日韩一卡二卡三卡免费人妻精品| 國產尤物AV尤物在線觀看| 91人妻在线视频| 男女香蕉一区二区| 国产诱惑| 午夜福利在线视频1000| 人妻熟女一区二区| 搞中出视频在线观看| 资源在线观一 二| 欧美日韩第一页| 性暴力欧美猛交在线直播| 青青青在线高清视频在线一二三四区 | 热无码中文亚洲H一道本一区二区| 久久国产999| 亚洲综合99999| 97在线视频观看| 国产女生在线| 日韩无码嘿咻黑热久| 婷婷亚洲综合| 色婷婷成人| 91动漫操逼视频| 家庭乱伦性爱av| 都市久久精品激情亚洲| 亚洲av综合色区无码一| 人人看欧美性爱| 强奸乱伦免费网站| 久久透逼视频| 亚洲一级性爱视频免费看| 综合国产影视三级| 天天做日日做| 成片免费播放| 日本精品人妻少妇一区二区| 99精品伊人| AV99热18这里只有精品| 夜夜做夜夜爽精品视频| 久这精品中文在线观看视频| 国产精品九九九| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本午夜福利影院| 成人丁香五月| 婷婷五月天成人网| 国产亚洲日本| 久久久久久中文| 色妇91| 91熟女视频网| 新亚洲无码| 日欧操屄| 岛园激情| 综合色图,成人综合网| 亚洲另类久操网| 一及黄久一点| 午夜亚洲| 日韩强奸av| 一级@啪啪视频| 亚洲国产成人精品久久久国产成人一区二区三.| 国产精品人妻熟女aⅴ| 青青操狠狠撩| 久久精品亚洲东京热色播| 小骚逼被操的爽不爽| 91模特在线观看| 青草精品视频日本久久久久网站在线| 福利社区午夜一区二区| 久久久国产三级黄色片| 亚洲情色1区| 嗯嗯啊啊啊啊轻点视频| 久久99国产精品| AV麻豆免费一区| 91人妻尻屄视频| 91久久国产综合久久| 欧美日本天堂| 野狼福利社区| 日欧亚洲二三区大片不卡| 亚洲欧美精品福利在线| 天天弄欧美| 春色综合免费| 日本性爰一道本| 天美麻花大全视频| 人妻内射一区二区在线视频| 97色碰| 91爆操视频| 小草精彩毛片| 色婷婷日韩精品一区二区三区| 日韩在线国产字幕| 超碰91在线| 330Dv国产女人终合视频极品人与兽| 精品国产99999| 黄色电影观看久久9| 丝袜 亚洲 偷拍| 免费成人在线熟妇网| 久久国产精品一区二区| 秋霞免费AV| 欧美精品第四五页中文字幕在线观看| 国内一区二区免费| 久久久人体| 天天影视综合色| 91成人久久| 久偷拍| 97无码视频在线播放| 亚欧性爱在线无码| 青青草好吊| 精品国产乱码| 激情露脸爱| 色网色网色网色网色网色| 亚洲偷拍自拍在线视频| 精品无码产区一区二| 温婉少妇玩3p| 欧美激情精品久久久| 爽极品影院| 色九九九综合| 美女极品一区二区三区| 亚洲的天堂网| 日本狠狠干| 蜜臀99久久精品| 操逼逼福利视频| 美国三级日本三级久久99| 久久男人精品| 久久久久久少妇| 国产AV毛片| 免费男人的天堂| 女人爽到高潮潮喷18禁网站| 天天日天天干天天色| 国产丰满少妇久久久精品影院| 日本操逼视频在线| 中文字幕色AV| 亚洲成人av色网| 夜夜爽夜夜操| 狠肏骚人妻| 麻豆国产视频精品观看| 亚洲情色一区二区三区| 岛国在线一区二区三区| 日韩欧美~中文字| 婷婷丁香在线| 亚洲欧美日韩偷拍色图| 国产自偷| 蜜臀久久久久久999| 国产高清吃奶免费视频网站| 97就爱干| 亚州国产精品乱| 欧美大香蕉久| 黄色视频高清无码网站| 美女骚尻视频| 日韩三级网址| 夜夜草网站| 啊啊啊网站| 国产综合久久久鬼色| 十八禁的黄污污免费网站| 人妻 欧美亚洲| 亚洲综合另类欧美久久久| 国产51色综合久久免费| 欧美性爱一区二区三区| 久久久久久久久久久999| 色人久久| 成年人黄色小视频网站| 在线视频 亚洲精品| 天天综合网1| www激情| 91精品亚洲内射孕妇| 麻豆色99999| 欧美色图中文字幕| 男人的天堂啪啪| 蜜乳AV.COM| 成人怡红院| 伊人久久亚洲色欲综合网站| 99久久这里只有精品| 国产亚洲精品激情| 色欲三区| 一区二区不卡视| 色香伊人| 亚洲精品久久一区二区三区蜜桃臀| 午夜人妻精品综合在线| 婷婷九月色| 人人妻人射| 午夜在线播放| 97aiaiai| 欧美综合色图片| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 欧美天天综合网| 91AV天美在线视频| 99热在线只有精品| 久久久少妇| 亚洲AV永久无码精品成人调教| 91撸色网 玖玖网 欧美| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 91人妻丝袜无码| 伊人久久婷婷| 91爆操视频| 日韩在线欧美精品一区二区| 日韩欧美午夜一区二区| 欧美一二三级精品在线| 69XX一中文字幕人妻91| 97国产人人| 91日韩国产欧美亚洲另类精盘州至城都| 色天欧美| 日日躁天天躁狠狠躁| 国产精品国产| 国产久久久久影院老熟女| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 综合色一区三区二区| 欧美青青草视频| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 丁香婷婷久久 | 午夜精品久久久久久久| 97久久综合网| 91av熟女人妻| 美女操逼福利视频| 欧美日韩91| 色五月激情网| 发朗少妇买婬全视频中文| 天美传媒国产原创中文字幕亚洲欧美另类| 激情六月天| 99色热| 欧美婷婷| 国产视频一区二区三区久久亚洲天堂| 暖暖精品二区三区观看| 人人污日韩一区二区| 中文字幕人妻色偷偷久久皮 | 春色综合免费| 欧美写真视频一区| 被男人吃奶很爽的毛片| 日逼国产| 蜜臀国产AV中文字幕| 久久99操天天日| 日韩一级二级在线| 一本久久久精品| 九九碰九九爱97超碰| 26uuu最新| 日韩色欲久久一二三四区| 欧美一区二区三区日韩| 亚洲 欧美 中文 日韩超碰| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 成人一道本免费视频| 欧美人人曰人人操人人射射| 999国产精品999| 99久久久无码| 欧美第五页| 97色碰| 日韩乱伦影音先锋| 精品视频专区| 97亚洲色图| 日本伦乱九九九综合| 日韩少妇一区二区三区| 麻豆人妻少妇在线免费观看| 蜜臀AV一区二区三区| 成人午夜高潮av猛片| 把腿张开老子CAO烂你| 91色综| 桑老女人九区| 欧美日韩免费性爱| 中文字幕少妇色 | 婷婷丁香久久| 亚洲色资源| 天天综合~91| 国产人妻天天干精品| 日韩一999精品| 大逼色网站| 日本性爱欧美性爱| 超碰爽人妻熟女Av| 中文字幕三四五区| 中文字幕在线高清男人的天堂| 欧美 亚洲 大香| 久久久女人| 欧美日韩性爱操大逼| 欧美色图片91| 91少妇| 亚洲日韩AV视色| 亚洲在线综合| 精品超碰国产| julia ann久久| 97久久超碰| 婷婷另类小说| 五码视频在线观看| 色姑娘综合网| 成人怡红院| 78精品| 啊啊啊啊啊舒服| 搞中出视频在线观看| www.操| 99999久久久久9国产精品| 狠狠狠狠狠狠| 91日韩在线| 国产av美女被艹的乱叫| 久久婷婷综合国际产色怕| 在线观看成人性爱免费小视频| 亚洲 欧美 日韩 国产一区二区 | 少妇免费视频| 国产有码一区| 亚洲综合小视频小说在线观看| 粉嫩国产精品久久粉嫩| 91亚洲精品青草| 狠肏骚人妻| 中文字幕版| 中文字幕88av在线| 日韩人妻精品中文字幕| 美女91av| 夜夜国自区| 清纯唯美综合| 91性高朝久久久久久久久| 亚洲欧洲中文日韩女优乱码| 飘花国产午夜精品不卡| 青青伊人这里只有精品| 黄片www.| 九九久久一区二区三区| 色色色色色色色色综合| 超碰在线1234区| 97资源站国产精品| 东京热毛片177b2viP| 曰韩中文人妻视频| 日本操逼视频不卡直接放| 2017人人操,人人摸| 大香焦A片| 激情啪啪拍91| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 欧美成人色| 自拍第一页| 麻豆成人AV| 亚洲啪啪视频免费| 强奸乱伦动态污图免费 | 九九色热| 精品97久久综合| 五月天亚洲网| 天天看天天日天天操| 久久性生大片免费观看性| 高清无码一区二区三区| 亚洲色吧网| 黑丝日韩av丝袜av| 色97欧美| 国产99精品一区二区三区免费| 无码抄逼网| 四虎影库国产精品免费| 99热18这里只有精品| 抽插亚洲无码| 性在久久久久久| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 超碰97玖玖爱| 91丰满| 性videos欧美熟妇hdx| 天天插天天操| 欧美性爱网97| 超碰日韩人妻| 无码又爽又硬又激情免费视频| 99RE在线视频精品,这里只有精品| 国产嫩草精品A88AV| 热无码中文亚洲H一道本一区二区| 天天干天天狼在线视频| AV色五月| 家庭乱伦国产| 男人天堂.AB| 久久精品女同亚洲女同13| 成人一道本免费视频| 久久五月婷| 亚洲诱惑| 26UUU欧美日本| 五月天综合在线| 超碰欧美在线欧美| 97资源视频| 91久精品| 天堂性色| 丁香六月激情| 青青草在线视频播放器| 欧美三级中文字幕hd| 综合激情97| 亚洲图片激情小说| 熟女人妻av在线资源,黄色的资源| 天天天堂影视日韩亚洲91| 激情黄色片在线观看| 男人天堂2019亚洲| 青草一区二区| 狠狠久久亚洲欧美专区| 国产精品操| 91超碰人人操| 97视频播放| 日韩性爱播放| 97精品人妻一二三四| 91小视频| rivers-china.com| 欧美成人午夜免费福利785| 青草视频人妻在线观看| 亚欧无码在线| 蜜桃午夜视频一区二区| 乱色视频中文字幕| 中国91AV| 电影69乱码96| 黄片视频观看| 丰满搜索结果 -第18页- 久久高清无码| 天天综合网网欲色| 九月AV| 一本色道久久天天射天天干| 欧美亚洲美少妇一区二区| 性爱视频无打码在线观看| 精品久久大胆人体| 福利在线黄片| 欧美激情视频一区二区| 亚洲棕合电彰| 亚洲av综合色区无码一| 国产午夜福利合集| 欧美另类色| 国模无码人体一区二区三| 九九成人精品| 精品亚洲国产成人AV制服丝袜 | 亚洲日韩青青草色月| 色操逼网| 国产精品对白自产拍| 六月激情婷婷| 欧洲特黄毛片免费看欧洲毛片| 二对二中文字幕。| 国内三级自拍小视频在线观看| 蜜桃传媒视频第一区入口在线看| 亚洲天堂男人在线| 精品毛片av一区二区| 久操av在线| 大奶啊啊好爽| 人人操人人插人www| 天天在线91| 精品妇女一区二区三区| 精品毛片av一区二区| 日本天堂在线播放| 无码99| 天天做日日做| 久久系列| 神马九九九| 色一射色一射| 秋霞一级视频在线观看免费| 啊啊啊草死我| 亚洲影视第一页| 艳美熟妇先锋一二三区| 黄色网址在线免费观看| 91在线免费精品视频| 日韩欧美资源| 久久久99久9| 黄色视频特级毛片| 92性色国产午夜福利在线661| 九草九九九| 亚洲综合码| 啊视频在线| 日日插夜夜| 啊啊啊好多水| 九九九不卡| 九九拍拍精品视频在线播放| 精品国产乱码久久久久久久久1 | 玖玖玖玖精品国产剧情| 国产家庭乱伦表演| 特色a在线上| 欧美第五页| 日han少妇无码| 97中文天堂| 日本岛国黄色网址| 午夜福利免费福利视频| 亚洲色系另类精品国产| 亚洲无992tv| 97资源亚洲| 中文字幕一区二区三区蜜桃视频| 中国黑人三级片网站上区| 啊…啊…操我用力操我| 9色在线| 唐山老熟妇露脸啪啪叫| 成人乱人伦一区二区| 欧美色图片| 久久系列| 久久久96| 亚洲男人天堂av| 亚洲天堂男| 九九热精品视频六| 黄站在线免费观看| chaopen97久久| 亚洲熟久久| 久久久111| 欧美色日本| 欧美一区二区传媒| 国产精品午夜成人福利| 熟女自慰久久久| 亚洲中文人妻色| 1024亚洲中文字幕久在线看片你懂的 | 深夜国产一区二区三区在线看| 国产亚洲性生活视频播放| 九九九精品成人免费视频小说| 日韩亚洲欧美中文字幕| av网站免费看| 中日韩一区二区三区欧美| 91精品人| 婷婷丁香九月| 亚洲成人福利电影免费| 欧美性爱视频免费一区一A| 中文字幕一区电影在线观看| 91操人| 日韩AC| 激情五月天色色| 中文字幕 码 自拍 视频 区| 午夜精品99久久久久传媒| 美女露胸露奶头| 中出789在线视频| 蜜桃一区二区三区| 久久精品操| 欧美日韩97| 中文字幕精品免费一区二区| 日逼逼免费看| 一起草精品人妻| 欧美日韩成人在线| 嗯啊不要啊啊在线观看视频| 99精品人人爽| 国产人妻久久精品一区二区三区| 精品视频在线观看| 做爱A级亚欧| 久操婷婷| 妇女视频网站| 亚洲狠狠入| 亚洲精品国语在线播放| 3028国产精品| 欧美日不卡| 美欧老女人97| 日曰骚久久精品| 久久国产在线一区二区| 粉嫩av在线一区二区| av天天在线观看| 中文字幕天天操| 麻豆一区二区AV天美| 伊人热综合| aaaa少妇高潮大片| 99自拍B亚洲 | 超碰精品97| 日韩激情无码影院| 狠狠色婷婷7777久| 日本男人插女人的逼黄色| 校园春色 亚洲| 91人精品妻入口| 操碰91| 99RE在线视频精品,这里只有精品| 中文字幕一二三av| 岛国在线免费视频| 久久婷婷一区二| 97超碰中文字幕| 欧美18老人禁| 亚洲精品一区中文字幕乱码| 色天堂在线观看| 亚洲欧美成人网站AAA| 日韩人妻一区二区精品| 18禁久极品美女久久哦哟呀!| 天天天肏屄肏屄肏屄欧美欧美| 熟女五十路一区二区三| 人妻在线臀日韩| 少妇高潮一区二区三区在线| 思思热在线cao| 精品国产网站| 欧美97爱| 99日韩| 97欧美久久久久久久| 亚洲人妻中文在线视频| 色香阁在线| 亚洲精品蜜桃久久久| 久草国产在线视频| 好舒服视频| 久9re热视频这里只有精品| 九九Av| 亚洲精品乱码久久久久久蜜桃麻豆| 91精品久久久| 欧美日韩少妇色情| 国产在线强奸视频| 操B久久| 国产超碰AV在线精品| 久操黄色视频| 干超碰碰熟女| 久久久久日本视| 久久二| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 爽爽淫人网| 2017,超碰| 欧美精品日韩一区二区| 在线洲亚线| 欧美国产日韩高清在线| 综合自拍| 加勒比大香蕉视频在线| 色综91| 亚洲情色电影网| 亚洲男人电影天堂| 青青草在线视频人人想人人上| 激情小说亚洲| 久久超碰、| 激情抓乳插进去啪啪啪日韩| 日日做夜狠狠爱欧美黑人| 久操网无码在线| 久久视频,这里只有精品| 凸凹视频在线观看| 欧美草草高清日韩视频| 欧美九9 9 9| 97在线免费视频| 2025亚洲男人天堂| 亚洲,日韩,欧美,成人播放 | 午夜天堂精品久久| 免费又黄又裸乳的视频| 熟女露脸激情自拍视频| www.色五月| 日本人妻最新在线中| 国产一区麻豆免费观看| 国产麻豆福利av在线播放| 色99久草| 97干日韩| 日韩激情小说一区二区| 中文字幕1区2区| 91原创在线观看| 国产大陆天天艹| 四虎884| 97精品一二区| 亚洲黄色a级片| 成人性交午夜免费片| 99999精品成人| 男人a天堂手机在线版| 青青草大香蕉视频| 97久久精品亚洲中六字幕| 免费看A片毛毛片在线播| 国产精品久久久亚洲第一牛牛_在线观看| 国模一区二区三区| 亚洲国产奇米影视久久| 欧美在线电影| 国产精品视频| 欧美精品第3页| 岛国网址国产 | 国际精品久久久| 天天摸天天碰天天添青青| 国产精品久久久久无码AV会牛| 伦理第一页| 久久中出在线| 六月婷婷激情| 国模不卡| 新亚洲无码| 97网站在线观看 | 韩国女主播青草在线| 少妇滛荡视频| 亚洲国产一区二区入口| 综合网91| 日本不卡中文| 亚洲色图 图片| 天天干天天日天天射黄色| 精品一二三区久久AAA片| 三级日本一区二区三区| 欧美se综合| 国产AV线| 99久热精品99re6热| 91在线页| 99热这里只有精品9| 日韩Va亚洲va欧美Ⅴa久久| 亚洲欧洲成人在线电影| 怡春院久久| 日韩精品一区,二区 九九...老司机| 欧美 亚洲 制服 精品| 成人国产精品三级A片| 亚洲一区二区久久久久| 中日韩一区二区三区欧美| 久久婷婷成人综合色怡春院| 超碰在线综合97| 少妇内射www在线观看视频| 青娱乐av在线| 亚洲日韩肥臀视频在线观看| 亚洲天堂电影精品一区| 免费观看啪视频| 亚洲强奸乱伦影视网| 99精品欧美一区二区三区桃色| 国产欧美在线观看免费观看| 97超碰超碰| 欧美色图20p| 久久一区二区蜜桃| 欧美亚洲天天| 97国产|免费| 国产精品农村妇女精品| 一区二区无码视频| 97久久超碰国产精品| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 天天欧美| 97超碰欧美中文字幕| 精品对白久久不卡| 欧美色图亚洲激情| 中文字幕一区二区视频在线观看| 久久久无码视频| 蜜臀久久99精品久久久久久无删减 | 一区二区无码视频| 99精品九九九九九九| 婷婷人妻激情| 91高潮| 免费岛国一级片| 少妇熟女1区2区3区| 人妻无一区二区三区| 日本色色视频网站| 91人妻中文| 日韩性爱小视频在线观看| 青青草天天亲夜夜操网| 精品 码产区一区二-1080P高清在线www-B029AV | 午夜一区二区三区国产| 91三级理论片播放器| 免費黃色視頻觀看一| 91国产精品在线看| 亚洲男人的天堂一区二区| 欧美97在线观看| 97在线资源| 97久久超碰日韩精品| 成人精品无码| 操逼片国产| 大香蕉丝袜一级片| 东北女人av| m欧洲一级午老| 密臀国产在线| 精品九九| 亚洲中文日韩欧美大香蕉视频| 超碰在线国产| 嗯嗯嗯啊啊啊操的我好爽| 青青草国产盗摄一二三区| 99热日| 老熟女网站| 在线A日本| 超碰国产在线| 亚爽爽爽爽爽爽爽爽| 97se亚洲| 国产对白刺激视频| 99热这里都是精品| 大肉棒导航| 九九九九九九九九九国产精品| 亚洲码在线中文在线观看| 人人操人人摸人| 久久精品视频久久久| 久久久久久久久国产| 国产精品白丝| 久久久精品无码亚免费| 国产日韩精品一区二区三区| 日韩特一级久久| 久久超碰国产一区二区三区| 欧美,日韩,亚洲视频| 黑丝91视频| 东京男人天堂| 强奸乱伦亚洲第一页| 99re视频在线观看这里只有精品| 操一区| 欧美97色| 99热只有这里有精品| 老熟女熟妇| 久久久不卡| 中文字幕亚韩| 嗯嗯啊好大| 黄色大片视频在线免费看| 在线强奷到舒服的无码视频| 国产福利夜| 啊啊啊网站| 久久九色| 大屁股熟女一区二区三区| 成人免费视瓶| 欧美超碰9798| 精品1区2区3区| 日韩去日本高清在| www.男人天堂| 亚洲好看强奸乱伦| 日日日啊啊啊| 丁香色狠狠色综合久久小说| 97人人操人人干| 无码人妻丰满熟妇区毛片| 亚洲天堂一区二区久久| 老熟女区| 久久久久久99AV无码免费网站| 婷婷五月天影院| 亚洲人精品久久久| 亚欧高清在线| 中文无线日韩一区| 大色综合网| 久操影视| 99久久久er直播网址| 330dv亚洲成年视频网| 一级AV性爱| 国产传媒1234区| 妇女性内射冈站HDWWWCOM| 日日夜夜骚| 免费无码婬片AAAA片直播色戒| 情侣开房子拍 日韩无码 女的很漂亮| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 亚洲色图欧美视频| 9九九国产| 久久久精品成人国产| 超碰97综合网| 婷婷久久五月| 天天网综合| 曰韩精品九九无码| 欧美999| 78久久久| 影音先锋视频在线| 黄色av播放免不| 97最新在线播放视频| 97综合激情| 人人天天欧洲| jizz啪啪| 精品中文日韩字幕视频| 人人操人人操草草| 黄色成年| 超碰爽人妻熟女Av| 中文字幕一区二区日韩网| 国产一区二区三区久久精品太古里| 亚洲一区二区三区中文字幕| 91少妇通奸网站| 久久久com| 欧美天天弄| 国产又大又粗又长视频在线| 成年女人黄网站| 天天综合~91| 色五91| 国产日韩区| 久久久久久久久女黄| 殴美牲| 性爱乱伦视频免费| 欧美 日韩第一性色| 久7色| 岛国色情视频在线观看| 91精品国| 中文字幕片| 黑人性暴力毛片| 日韩性爱毛片操骚逼| 欧美性爱一区二区三区四区 | 69一区二区| 久久久精品91八戒| 91黑丝少妇| 国产中文大片资源中文字幕| 天天干夜夜操一区二区| 九九热九九热| 十八禁成人网站在线观看| 亚欧美综合网| 91 丝袜在线观看| 亚洲 综合 欧美| 欧美另类精品xxxx| 国产99999| 97热视频在线观看| 四虎 精品 WWW| 人人射人人操人人摸| 国产午夜在线观看| 亚洲双插| 91五月天| 天天淫人人妻日日色| 把腿张开老子CAO烂你| 粉嫩av在线| 精品少妇一区二区| 久久久性爱视频| 久久精品人体AV| 国产色精品午夜大片| 无码不卡亚洲成?人片| 舔人妻中文免费视频| 亚洲永久永久永久永久一级一级一级精品| 久热91| 日韩无码a片| 亚洲婷婷丁香在线| 99热婷婷一区二区三| 免费超碰97久久| 中美日韩毛片| 91ise欧美| 婷婷五月激情综合| 很很热性爱视频| 欧亚性爱在线视频| 97在线免费视频| 日韩人妻无码不卡网站| 伊人四虎综合| 久久同城AV| 激情文学欧美| 国产无遮挡| 欧美黑人XXXⅩ高潮交| 久草大| 国产AV高清AV无码| 玖玖爱免费观看视频| 中国少妇XXXX做受| A级毛片在线看免费| 精品国产av一区二区三区四区入口| 欧美日本不卡在线| 亚洲精品九九九九九九| 激情文学小说一区二区 | 久久欧洲| 蜜臀人妻少妇久久在线观看| 狠狠狠一区二区三区| 五月激情小说| 色婷婷视频| 精品婷婷| 乱色视频中文字幕| 色综合色欲色综合色综合色综合| 无码高清专| 日韩精品亚洲专区在线影视| 日本高清_区二区三区| 成人性爱视频在线看| 99国产精品视频尤物| 国产精品女生av| 亚洲91在线播放影院| 国产Aα| 黄在线| 成人性爱全视频观看| 美女黄频a美女大全免费皮| www网站黄| 色婷婷电影网| 国产91美女高潮| 香一区二区三区| 综合网久久| 亚洲诱惑| 亚洲91射| 蜜臀久久99精品久久久久久酒店 | 国产精选视频| 亚洲91在线| 涩综合导航| 十八禁的黄污污免费网站| 亚洲美女自拍偷拍视频| 亚洲欧美国产日本一区二区三区| 五月天色图| 荡小穴在线观看| 99re69综合| 青操影院| 97chaopengongkai| 欧洲在线性爱视频| 欧美精品一区二区少妇免费A片 | 人人干人人操人人..com| 一区二区三区激情在线观看| 天天插天天射| 色哟哟-国产专区| 色综合久久夜色精品国产天堂| 91青青在线视频| 九九九九精品视频| 免费观看网黄| 国产九九九九九九九九| 精品 码产区一区二-1080P高清在线www-B029AV | 国产a片操逼| 欧美专区日本专区| 91蜜臀熟女| 久草男人天堂| 亚洲人妻五月丁香婷婷| 日韩偷拍一区二区三区| 福利在线观看一区二区| 日韩一级二级| 日韩资源网| 啊啊啊啊啊啊啊啊在线观看| 无码人妻精品一区二区中文| 亚洲色欲天天人妻无码系列专区| 最新加勒比丝袜在线| 久久久久久久久久久久久久久久9| 999国产精品999久久久久久| 9国产超碰| 九月丁香| 九九九九九精品十六| 日韩有码专区| 国产91精品福利在线| 国产久久一区二区午夜| 伊人亚洲综合| 亚洲中文字幕精品一区| 国产福利精品最新在线| 欧美情色男人的天堂| 本道综合精品| 人人操人人操草草| 天天香香欲综合| 久久国产精品一区二区| 福利社区午夜一区二区| 人夜夜精品网站香蕉嫩草| 风月影院男女十八禁| 偷拍精品一区二区三区| 精品国产片亚洲一区| av东京热男人的天堂| 亚洲中文字幕熟女| 婷婷综合视频| 日本不卡免费二区| 精品成人亚洲午夜电影| 亚洲。日韩。欧美| 性欧美91| 欧美性爱在线无码| 大香蕉琪琪日本女优不卡| 欧美精品精品一区二区| 91美女中出| 欧美性少妇| 免费在线黄片视频| 蜜臀久久在线视频| 亚洲中文字幕精品一区| 3571色综合一区二区二区| 亚洲97网站| 亚洲av影音先锋| 欧美伦乱爱| 岛国激情视频在线观看| 精品久久久久黄少妇| 欧美综合网| 免费观看有码高清视频| 久久久精选| 综合欧美日本三级| 91处女在线视频| 国产理论视频在线播放| 亚洲色图欧美另类在线| 五月丁香六月综合缴清无码| 九久9热| 国产精品高潮久久久无码| 精品久久久久久亚洲| 人妻娇喘 激情视频| 综合久久婷婷| 国产91 丝袜在线播放| 成人午夜无码视频| 清纯唯美亚洲另类| 操碰91| 中文区中文字幕免费看| 丁香六月婷婷| 伦理第一页| 欧美淫穴| 国产午夜精品理论片a大结局| 久久99国产综合精品女同| 亚洲国产精品久久AV| 色老汉色| 久久无码成人| 啊嗯嗯啊好大好爽| 亚洲av强奸乱伦| 超碰97综合在线| 男人天堂2012| 欧美精品精品一区二区| 久久国产对白激情浪潮 | 亚洲天堂男人天堂| 精品大久久| 偷拍三区| 伊人在线大香蕉视频久久| 亚洲色欲天天人妻无码系列专区| 国产白丝网站| 爆乳免费黄网站| 伊人黄色片| 色婷婷一区二区三区久久午夜成人不| 天堂8在线新版官网| 男女啊啊啊啊啊| 在线啊啊啊啊| 国产性爱在线视频一区二区| 91熟女少妇| 992这里有精品| av爱爱爱| 人澡逼| 性欧美另类高清| 一本色道久久天天射天天干| 欧美大色交| 这里只有精品久久| 久久久一区二区三区三州| 日产成人久久| 日韩有码免费视频| 韩国一级婬片A片无码天美| 久久天堂网| 久久9亚洲| 欧美午夜视频精品久久| 日韩熟女精一区二区三区不卡| 97这里都是精品| 亚洲aV性爱| 乱性AV| 亚洲欧美天| 蜜伊人色综合97| 99热只有这里有精品| 国产精品高潮久久久无码| 97超碰人操| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 91丨九色丨熟女高潮| 黄色香蕉视频网站一区| 亚洲九九视频| 99xav| 欧美夜夜狠| 国产综合永久精品日韩鬼片| 爱爱啊啊啊| 啊啊啊啊啊舒服| 超碰97在线 欧美 国产| 大香蕉五月天| 91午夜无码| 国产精品美女| 97日韩欧美亚洲| 大香蕉男人的天堂| 久久精品亚洲婷婷| 国产亚洲精品自在线亚洲情侣| 无码外流操逼视频| 日少妇视频| 97超碰影音| 97精品久久久久中文字幕| 九九毛片这里只有精品| 动漫爆乳3D奶水一区在线观看| 欧美性生活男人的天堂| 女优大全 - 91n| 国产自啪精品视频网站黑丝| 国产精品午夜成人福利| 农村妇女一级二级三级视频| 最新日产中文在线麻豆| 一级人妻性爱视频| 久久久久久久久久9| 一卡二卡在线播放| 天天综合网~91综合网| 久久精品一区| 人人喜人人妻| 67914亚洲精品| 亚洲1区| 国产精品久久伊人| 国产综合永久精品日韩鬼片| 91丨九色丨国产丨人妻在线| 91久久青青草原精品| 无码人妻一区二区三区四区老鸭窝| 肉丝无码中文高清| 91久久国产综合精品| 天天做天天爱天天爽AV| 欧美三级一级| 内射白嫩美女| 91网站18在线观看| 精品国产乱码久久久久A| 91丨九色丨东北熟女| 亚洲无码一区二区三区三州| 婷婷影院入口| 精品一区二区人妖| 欧美日本一区二区a人| 亚洲色色探花| xxx0国产在线播放| 最新三级网址| 26uuu国产日韩综合在线观看| 精品视频免费在线一区| 亚洲伊人a线观看视频| 香蕉久久AⅤ...| 久久riav中文精品| 亚洲 日韩 丝袜 熟女 变态| 黄色AAAAA欧美| 凹凸久久人人| 中文字幕亚韩| 免費黃色視頻觀看一| 婷婷五月综合在线| 天天弄天天操| 性色一线| 91精品人妻一区二区三区蜜桃臀| 大香蕉伊人亚洲| 久久夜嗨| 天天摸天天舔天天操| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 国产天天骚| 天天α片| 懂色av中文字幕一区二区三区天美 | 亚洲情色第一页| 日本天堂网| 欧美性爱一区二区三区四区| a片亚洲一本通视频| 天天色天天干天天射| 国产中文福利| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 玖玖玖玖精品国产剧情| 日欧操屄视频| 熟妇熟女视频一区二区三区| 91超碰人人| 日本蜜桃| 超碰天天去日穴| 久久天堂| 国产精品一区午夜福利| 久久久九九网站| 精品91摸| 国产情色第一第二页在线观看| 国产精品白丝AV| 99re9| 男人天堂黄片| 色情五月综合婷婷| 午夜久久一区二区无码中出| 久久久111| 无码粉嫩白虎一线天b区| 99婷婷一区二区| 人人操,操人人| 色蜜AV| 国产视频第2页| 嗯嗯不要 视频| 日韩成人精品| 丁香五月婷婷色| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 91狠狠综合久久久久久|