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

ARTICLE DETAIL

資訊詳情

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

SSM藥房管理系統(tǒng)實(shí)戰(zhàn):從框架原理到庫存扣減事務(wù)解析

SSM藥房管理系統(tǒng)實(shí)戰(zhàn):從框架原理到庫存扣減事務(wù)解析 簡介一套基于SSM框架的藥房管理系統(tǒng)完整畢業(yè)設(shè)計(jì)項(xiàng)目面向計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生及需要項(xiàng)目實(shí)戰(zhàn)的Java學(xué)習(xí)者。系統(tǒng)涵蓋藥品信息管理、庫存、采購、銷售等典型藥房業(yè)務(wù)模塊可幫助讀者掌握Spring、SpringMVC、MyBatis三層架構(gòu)的整合與開發(fā)流程。資源包共1222個文件約19.56MB包含48個Java源文件、70個JSP頁面、18個XML配置、SQL數(shù)據(jù)庫腳本以及CSS/JS/HTML等前端資源其中JSP視圖與前端資源用于界面展示Java源文件和XML配置體現(xiàn)業(yè)務(wù)邏輯與框架整合目錄結(jié)構(gòu)清晰便于定位學(xué)習(xí)。源碼經(jīng)本地編譯調(diào)試評審得分98分可直接運(yùn)行或作為二次開發(fā)基礎(chǔ)。目前已有174人學(xué)習(xí)下載適合用于畢業(yè)設(shè)計(jì)參考、課程設(shè)計(jì)或SSM框架項(xiàng)目練習(xí)。1. 從畢設(shè)選題到可運(yùn)行系統(tǒng)藥房管理系統(tǒng)到底解決了什么每年到這個節(jié)點(diǎn)總有一批人被同一個場景卡住從網(wǎng)上下載了基于SSM框架的藥房管理系統(tǒng)源碼數(shù)據(jù)庫腳本也導(dǎo)進(jìn)去了Tomcat也點(diǎn)啟動頁面卻停在登錄框轉(zhuǎn)圈或者一查藥品就報(bào)500。更尷尬的是答辯現(xiàn)場老師問一句“你的庫存扣減怎么保證不超賣”答不上來分?jǐn)?shù)直接從“高分畢設(shè)”掉到“及格邊緣”。我見過太多人把精力全耗在配環(huán)境上配完能跑就以為完事其實(shí)對SSM三件套怎么協(xié)作、業(yè)務(wù)表和接口怎么銜接還是一團(tuán)黑。這個藥房管理系統(tǒng)本質(zhì)上是一個典型的Java Web進(jìn)銷存項(xiàng)目藥品信息管理、入庫出庫、銷售收銀、供應(yīng)商維護(hù)、庫存預(yù)警再加一個簡單的權(quán)限角色區(qū)分。技術(shù)棧鎖死在Spring SpringMVC MyBatis配MySQL數(shù)據(jù)庫腳本。它適合兩類人一類是正在做Java畢設(shè)、需要一個能講清楚又能落地的項(xiàng)目兜底的學(xué)生另一類是剛學(xué)完SSM框架、想看看三個框架怎么集成到同一個工程里的初學(xué)者。先說結(jié)論源碼能跑通只是起點(diǎn)真正決定能不能拿高分的是你對請求鏈路、事務(wù)邊界和庫存扣減這三件事的理解。下面我把整個落地路徑拆開講。2. SSM三件套在藥房系統(tǒng)里各自管哪塊選型理由與核心流程很多人把SSM當(dāng)成一個整體在配出了問題不知道找誰。其實(shí)三個框架在藥房系統(tǒng)里分工非常明確Spring管對象和事務(wù)SpringMVC管HTTP請求的路由和參數(shù)綁定MyBatis管SQL和結(jié)果映射。它們各自只管自己那一層協(xié)作起來才是一條完整的調(diào)用鏈。這一章先把分工講清楚后面配置和排錯才有依據(jù)。2.1 Spring的IoC與事務(wù)在藥房訂單里的位置藥房系統(tǒng)的核心業(yè)務(wù)是銷售和入庫。一次銷售動作至少涉及兩件事往銷售訂單表插一條記錄再把藥品庫存表的庫存數(shù)量減掉。如果沒有事務(wù)第二步失敗時(shí)第一步已經(jīng)提交賬就對不上了。Spring在這里做的事就是用Transactional把這兩步包進(jìn)同一個數(shù)據(jù)庫事務(wù)里要么全成要么全敗。Spring的IoC容器在這個項(xiàng)目里體現(xiàn)在Service層。常見的做法是Controller里不直接new一個Service對象而是通過注解注入。比如Autowired一個DrugService容器啟動時(shí)幫你把實(shí)現(xiàn)類實(shí)例化好并注入進(jìn)去。這對畢設(shè)答辯是一個很值得講的點(diǎn)你的各個業(yè)務(wù)模塊之間是解耦的替換實(shí)現(xiàn)類不需要動調(diào)用方代碼。配置上通常在spring-mybatis.xml里用bean或注解掃描包路徑來聲明這些對象context:component-scan base-packagecom.xxx.service/這種寫法就是Spring掃描Service層注解的入口。事務(wù)配置要單獨(dú)說一句。很多人Transactional注解加了但庫存還是能扣成負(fù)數(shù)問題往往出在事務(wù)管理器沒有接到數(shù)據(jù)源上。DataSourceTransactionManager必須顯式把dataSource屬性指過去不然Spring管理的事務(wù)和你連接池里的連接不是同一個會話事務(wù)注解形同虛設(shè)。這個我在第5章踩坑部分還會再展開。2.2 SpringMVC處理一次藥品查詢請求的完整路徑先走一遍請求路徑后面排查404、500時(shí)會非常有用。用戶在瀏覽器輸入/drug/list?keyword阿莫西林請求先到web.xml里配置的DispatcherServlet它的url-pattern通常設(shè)為/所有請求都會進(jìn)來。接著SpringMVC根據(jù)RequestMapping(/drug/list)找到對應(yīng)的Controller方法把keyword參數(shù)綁定到方法入?yún)⑸?。Controller拿到參數(shù)后自己不寫SQL而是調(diào)用Service接口Service再調(diào)Mapper接口Mapper的XML里寫真正的SQL語句。返回結(jié)果從后端一層層往前傳Controller把查到的藥品列表放進(jìn)ModelAndView或Model里再交給視圖解析器渲染JSP頁面。整個過程里SpringMVC幫你做了參數(shù)轉(zhuǎn)換、路徑匹配和視圖渲染三件事你只需要關(guān)注Controller里那幾行代碼。有個細(xì)節(jié)容易忽略SpringMVC默認(rèn)不處理靜態(tài)資源請求。如果JSP頁面里引用了CSS、JS文件而你沒有在spring-mvc.xml里配置mvc:resources mapping/static/** location/static//這些資源會被DispatcherServlet攔截后報(bào)404。很多頁面長得丑、樣式加載不出來就是這個配置漏了和第5章我講的靜態(tài)資源攔截是同一個坑。2.3 MyBatis的Mapper層庫存扣減為什么不能只寫一條update在SSM項(xiàng)目里MyBatis負(fù)責(zé)把Java方法和SQL映射起來。藥房系統(tǒng)里最容易被答辯老師追問的就是庫存扣減。初學(xué)者常寫的SQL是UPDATE drug_stock SET stock stock - 1 WHERE drug_id ?。表面看沒問題但你要考慮并發(fā)場景兩個人同時(shí)買同一個藥兩個請求同時(shí)讀到庫存是10都減1最后庫存變成9而不是8。這在數(shù)據(jù)庫層面叫丟失更新。要修正它常見做法是把扣減條件加上庫存數(shù)量的判斷UPDATE drug_stock SET stock stock - #{num} WHERE drug_id #{id} AND stock #{num}。這句話的意思是先檢查庫存夠不夠夠了才扣不夠就不動這條記錄同時(shí)配合事務(wù)回滾保證不會出現(xiàn)負(fù)數(shù)庫存。MyBatis的Mapper XML里寫動態(tài)SQL也很方便比如if testkeyword ! null and keyword ! 來拼查詢條件比JDBC手動拼接字符串安全得多也基本杜絕了SQL注入。MyBatis另一個值得講清楚的是結(jié)果映射。表字段是drug_idJava屬性是drugId如果MyBatis沒開駝峰映射配置查出來的對象里drugId就是null。解決方式是在mybatis-config.xml里加setting namemapUnderscoreToCamelCase valuetrue/。這一句話能省掉大半的resultMap手寫工作量是我每接到一個SSM項(xiàng)目第一個檢查的配置項(xiàng)。3. 把數(shù)據(jù)庫腳本跑起來建庫建表與初始化數(shù)據(jù)拿到源碼包第一步通常不是看代碼而是把數(shù)據(jù)庫腳本導(dǎo)入MySQL。這一步翻車率極高十個人里有三四個卡在這里。原因集中在導(dǎo)入順序、字符集和MySQL 8的認(rèn)證方式上。這一章按照我平時(shí)給項(xiàng)目初始化數(shù)據(jù)庫的順序來講你可以直接照著做。3.1 建庫與導(dǎo)入腳本命令行與Navicat兩條路線先說命令行方式。假設(shè)腳本文件叫pharmacy.sql在Windows的cmd里執(zhí)行注意先確認(rèn)MySQL的bin目錄在PATH里mysql -uroot -p123456 -e CREATE DATABASE IF NOT EXISTS pharmacy DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; mysql -uroot -p123456 --default-character-setutf8mb4 pharmacy D:/sql/pharmacy.sql第一條命令的作用是創(chuàng)建數(shù)據(jù)庫utf8mb4比utf8多支持四字節(jié)字符比如有些生僻字和emoji藥房系統(tǒng)里藥品名稱和商品名經(jīng)常帶特殊字符用utf8mb4能少很多幺蛾子。第二條命令才是把腳本導(dǎo)入--default-character-setutf8mb4這個參數(shù)非常關(guān)鍵不加的話腳本里的中文注釋和中文數(shù)據(jù)容易變成亂碼。用圖形工具也完全可以Navicat或DataGrip里右鍵連接新建數(shù)據(jù)庫字符集選utf8mb4然后選中庫右鍵“運(yùn)行SQL文件”選擇腳本路徑執(zhí)行即可。注意執(zhí)行完一定要刷新一下庫列表有些版本不刷新不顯示新表。導(dǎo)入完先看左邊表列表的數(shù)量如果只有幾十張里的兩三張說明腳本中間某個語句報(bào)錯中斷了得點(diǎn)開消息面板看具體是哪個表的建表語句掛了。3.2 三張核心表的關(guān)系藥品、庫存、銷售記錄藥房系統(tǒng)的表通常不止三張但理解了核心三張整個系統(tǒng)就懂了一半。我拿最常見的表設(shè)計(jì)來說明表名核心字段職責(zé)drug_infodrug_id,drug_code,drug_name,specification,unit,price,prescription_type,expire_date藥品靜態(tài)信息價(jià)格、規(guī)格、是否處方藥drug_stockstock_id,drug_id,total_stock,warning_line,update_time當(dāng)前庫存余量和藥品一對一的對應(yīng)關(guān)系sale_recordrecord_id,drug_id,sale_num,sale_price,sale_time,operator_id每筆銷售流水記錄賣了多少、多少錢、誰操作藥品表和庫存表之間通過drug_id關(guān)聯(lián)銷售記錄表和藥品表之間也是drug_id。這和你正常去藥店買藥是一一對應(yīng)的每個藥品有一條庫存數(shù)每次賣出加一條銷售流水同時(shí)庫存減一。這里要注意sale_record應(yīng)該保存賣出的單價(jià)快照而不是實(shí)時(shí)去查drug_info里的當(dāng)前價(jià)格。因?yàn)樗巸r(jià)會調(diào)你回頭對賬時(shí)必須用賣出去那一刻的價(jià)格這就是數(shù)據(jù)庫設(shè)計(jì)里說的冗余存儲是為了歷史一致性。建表腳本樣例大致長這樣簡化版實(shí)際腳本會更全CREATE TABLE drug_info ( drug_id int(11) NOT NULL AUTO_INCREMENT, drug_code varchar(32) NOT NULL COMMENT 藥品編碼, drug_name varchar(128) NOT NULL COMMENT 藥品名稱, specification varchar(64) DEFAULT NULL COMMENT 規(guī)格, price decimal(10,2) NOT NULL COMMENT 零售價(jià), prescription_type tinyint(1) DEFAULT 0 COMMENT 0非處方 1處方, expire_date date DEFAULT NULL COMMENT 有效期, PRIMARY KEY (drug_id) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4;注意ENGINEInnoDB必須指定MyISAM不支持事務(wù)藥房系統(tǒng)的銷售和庫存扣減一旦跨表非事務(wù)引擎就廢了這個坑我在第5章詳細(xì)說。decimal(10,2)是貨幣標(biāo)準(zhǔn)寫法別用float浮點(diǎn)算錢會丟精度對賬時(shí)候差幾分錢夠你找半天的。3.3 初始化賬號與數(shù)據(jù)管理員、收銀員角色怎么分腳本里一般會自帶幾條初始用戶數(shù)據(jù)。最常見的角色設(shè)計(jì)是管理員和營業(yè)員收銀員。管理員可以操作藥品增刪改、供應(yīng)商管理、查看所有銷售記錄營業(yè)員只能做銷售開單、查詢藥品庫存。這個權(quán)限差別通常用一張sys_user表加一個user_role字段來實(shí)現(xiàn)或者獨(dú)立一張角色表。字段設(shè)計(jì)一般是CREATE TABLE sys_user ( user_id int(11) NOT NULL AUTO_INCREMENT, username varchar(32) NOT NULL, password varchar(64) NOT NULL COMMENT MD5或BCrypt加密, real_name varchar(32) DEFAULT NULL, role_id int(11) NOT NULL COMMENT 1管理員 2營業(yè)員, status tinyint(1) DEFAULT 1, PRIMARY KEY (user_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;導(dǎo)入腳本后一定要先查一下初始用戶名和密碼很多項(xiàng)目的初始密碼是123456但存儲方式可能是MD5加密后的串。登錄不上不要急著懷疑代碼先用SQL查一下SELECT * FROM sys_user;你看到的密碼字段如果是e10adc3949ba59abbe56e057f20f883e這串那就是123456的MD5值。如果前端登錄用的不是MD5而是BCrypt你也可以在登錄頁試一下明文123456能進(jìn)就說明過濾器里做了加密比較。這塊搞清楚面試和答辯時(shí)講到“用戶認(rèn)證怎么做的”就有話說了。4. 本地跑通源碼從JDK到Tomcat的完啟動流程數(shù)據(jù)庫就緒后下一步是在IDEA里把工程跑起來。SSM項(xiàng)目跑不起來的原因高度集中在版本不匹配和配置數(shù)據(jù)源上。這一章的環(huán)境版本搭配是這么多年下來最不容易出事的組合你按這個來基本能少走一半彎路。4.1 環(huán)境版本對照J(rèn)DK 8、Tomcat 8.5、Maven 3.6的搭配理由SSM的大多數(shù)畢設(shè)項(xiàng)目都是在JDK 8時(shí)代寫的用JDK 17去跑大概率編譯不過因?yàn)閖avax.servlet從JDK 9開始就移除了老項(xiàng)目依賴的是javax命名空間新環(huán)境里根本找不到這些類。我見過太多人卡在這一步其實(shí)不是項(xiàng)目爛是版本錯配。穩(wěn)妥的組合是組件推薦版本原因JDK1.88u202以上大多數(shù)SSM老代碼只兼容到j(luò)avax命名空間Tomcat8.5.x匹配Servlet 3.1規(guī)范內(nèi)置運(yùn)行方式友好Maven3.6.x和IDEA自帶Maven兼容度最高依賴解析穩(wěn)定MySQL5.7 或 8.05.7最穩(wěn)8.0需注意驅(qū)動和時(shí)區(qū)配置IDEA2020以后的版本對Maven和Tomcat插件支持都比較成熟Maven 3.6的settings.xml里最好配一下阿里云鏡像不然SSM依賴?yán)锬切├习谥醒雮}庫拉取很慢還容易超時(shí)。鏡像配置是mirror節(jié)點(diǎn)里把central代理到https://maven.aliyun.com/repository/public這個不屬于外鏈?zhǔn)浅R?guī)操作。4.2 IDEA導(dǎo)入與配置文件改寫IDEA導(dǎo)入SSM工程第一步是File - Open選擇pom.xml所在目錄IDEA會識別為Maven項(xiàng)目并開始解析依賴。解析過程中右下角會轉(zhuǎn)圈第一次可能要下載幾百M(fèi)B依賴別急著操作。導(dǎo)入完成后重點(diǎn)檢查三處配置。第一處jdbc.properties——這是連不上數(shù)據(jù)庫的第一大原因。常見寫法是jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/pharmacy?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai jdbc.usernameroot jdbc.password123456這里有三點(diǎn)要強(qiáng)調(diào)。driver如果是MySQL 8.0要用com.mysql.cj.jdbc.Driver用老的com.mysql.jdbc.Driver會報(bào)警告但不一定報(bào)錯。useSSLfalse必須加MySQL 8默認(rèn)啟用SSL校驗(yàn)不加會報(bào)Communications link failure。serverTimezoneAsia/Shanghai必須加否則MySQL 8會報(bào)The server time zone value的異常。因?yàn)橹袊鴷r(shí)區(qū)問題很多人卡在這三個參數(shù)上每一個都是血淚經(jīng)驗(yàn)。第二處spring-mybatis.xml里的Mapper掃描路徑。檢查mapper-locations配置的classpath:mapper/*.xml和你實(shí)際的XML存放路徑是否一致。這個對不上就報(bào)Invalid bound statement (not found)Service調(diào)用Mapper方法時(shí)必炸。第三處pom.xml的依賴坐標(biāo)。常見需要的是spring-webmvc、mybatis、mybatis-spring、mysql-connector-java版本號5.1.49或8.x對應(yīng)上數(shù)據(jù)庫版本、druid連接池、jackson-databind前后端JSON交互、jstl和javax.servlet-apiprovided作用域給Tomcat用。缺了jackson前端Ajax請求返回的JSON會變成一串亂碼或直接報(bào)406。4.3 啟動后驗(yàn)證登錄、查藥品、做一次入庫操作的請求鏈路配置改完就點(diǎn)Tomcat啟動。啟動日志看到Server startup in [xxx] milliseconds字樣后打開瀏覽器訪問http://localhost:8080/項(xiàng)目名/。這一步經(jīng)常有人卡住因?yàn)镾SM項(xiàng)目打的包通常是war項(xiàng)目名要和pom.xml里的finalName保持一致。訪問不放心就看一下IDEA下方的Tomcat Console如果出現(xiàn)Artifact xxx:war exploded: Error during artifact deployment說明你的war包沒打?qū)騑eb模塊沒配置好檢查Project Structure - Artifacts里的Output Layout是否包含lib下的所有依賴。驗(yàn)證功能不要只登錄一下就完事按業(yè)務(wù)流程走一遍才能確認(rèn)框架集成沒斷。先登錄走一次SpringMVC的登錄驗(yàn)證再點(diǎn)開藥品列表走一次Mapper查詢?nèi)缓笮陆ㄒ粭l入庫單走一次Service事務(wù)提交。其中入庫操作是測試事務(wù)最方便的手段——在入庫ServiceImpl的Transactional方法里加個System.out.println(1/0);如果提交不了且數(shù)據(jù)庫里沒有新增記錄說明事務(wù)生效。測試完記得把這行刪掉。5. 畢設(shè)答辯前必查的坑導(dǎo)入失敗、中文亂碼、功能斷層這一章是排錯清單每一條都是實(shí)戰(zhàn)里反復(fù)出現(xiàn)的。按照現(xiàn)象→原因→解決的順序?qū)懩銓φ罩约喉?xiàng)目的現(xiàn)象找省得從報(bào)錯日志里瞎猜。5.1 改完jdbc配置還是連不上數(shù)據(jù)庫時(shí)區(qū)、SSL與驅(qū)動三連問現(xiàn)象數(shù)據(jù)庫明明開著賬號密碼都對啟動Tomcat時(shí)就是報(bào)Cannot create PoolableConnectionFactory或Communications link failure。原因排在前三的是MySQL 8的驅(qū)動類寫成了老的com.mysql.jdbc.Driver連接串沒有serverTimezone或者是useSSL沒設(shè)置為false。解決的常規(guī)順序是先確認(rèn)MySQL版本5.7用老驅(qū)動8.0用新驅(qū)動再檢查jdbc:mysql://localhost:3306/pharmacy?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai這三個參數(shù)缺一不可最后重啟Tomcat。還有一種情況是3306端口被占用netstat -ano | findstr 3306看下端口是否被別的進(jìn)程占著。5.2 藥品名稱中文全變問號characterEncoding與表collation雙管齊下現(xiàn)象從界面錄入的“阿莫西林膠囊”存到庫里變成“”查出來也是問號。原因有兩個層面連接串沒指定characterEncodingutf8時(shí)JDBC會按服務(wù)器默認(rèn)編碼可能是latin1傳參另一個是建庫時(shí)字符集寫成了utf8而不是utf8mb4或者表的排序規(guī)則被改成了latin1_swedish_ci。解決方式先確認(rèn)CREATE DATABASE時(shí)用的字符集然后改連接串為characterEncodingutf8如果數(shù)據(jù)已經(jīng)亂了就在數(shù)據(jù)庫里執(zhí)行ALTER TABLE drug_info CONVERT TO CHARACTER SET utf8mb4;。改完重啟Tomcat重新錄入一條帶中文的數(shù)據(jù)驗(yàn)證。5.3 庫存能扣成負(fù)數(shù)事務(wù)不生效與并發(fā)不加鎖現(xiàn)象銷售開單時(shí)故意賣超庫存變成負(fù)的數(shù)據(jù)庫居然也接受了。原因有兩個第一個是事務(wù)管理器沒生效。你去檢查spring-mybatis.xml如果bean idtransactionManager里沒有引用dataSource那個bean或者tx:annotation-driven transaction-managertransactionManager/這行注釋掉了那Transactional完全不工作異常不回滾。第二個是扣減SQL本身沒加庫存判斷就是我在第2.3節(jié)說的AND stock #{num}那個條件。解決方式先給Service實(shí)現(xiàn)類的public方法加上Transactional(rollbackFor Exception.class)再把SQL改成帶條件的更新語句。這里我用的習(xí)慣是加rollbackFor Exception.class因?yàn)镾pring默認(rèn)只對RuntimeException回滾檢查異常比如自定義的StockNotEnoughException不會自動回滾。5.4 頁面報(bào)404或500但控制臺沒有堆棧靜態(tài)資源攔截與Mapper掃描遺漏現(xiàn)象登錄頁跳轉(zhuǎn)后CSS全丟頁面裸奔或者點(diǎn)按鈕彈窗里顯示500但后臺catalina.out日志干干凈凈。前者是SpringMVC的靜態(tài)資源攔截解決方式很簡單在spring-mvc.xml里配置mvc:resources mapping/static/** location/static// mvc:annotation-driven/后者通常分兩種一是jackson庫沒引入Spring無法把返回的對象轉(zhuǎn)成JSON報(bào)500但日志被前端吞了二是MyBatis的mapper-locations配置路徑不對導(dǎo)致SQL沒綁定報(bào)Invalid bound statement (not found)。解決方式打開瀏覽器F12切到Network標(biāo)簽看實(shí)際請求的狀態(tài)碼和響應(yīng)信息比看后臺日志更快找到問題。6. 從“能跑”到“高分”給藥房系統(tǒng)加一個讓答辯加分的小功能如果你的系統(tǒng)已經(jīng)跑通登錄、庫存、銷售這幾條主鏈路都沒問題接下來加一個獨(dú)立小功能能讓答辯老師對你另眼相看。我推薦做“藥品有效期預(yù)警”它既有業(yè)務(wù)價(jià)值又不需要動系統(tǒng)主結(jié)構(gòu)2小時(shí)能搞定但能講的知識點(diǎn)非常多——定時(shí)任務(wù)、SQL條件和數(shù)據(jù)可視化都沾得上。6.1 用Spring定時(shí)任務(wù)加一個過期預(yù)警在Service里加一個方法用Spring自帶的Scheduled注解定時(shí)掃描把距有效期不足3個月的藥品查出來。首先確認(rèn)Spring配置文件里開啟了定時(shí)任務(wù)task:annotation-driven/然后在Service實(shí)現(xiàn)類里寫Scheduled(cron 0 0 9 * * ?) // 每天早上9點(diǎn)執(zhí)行 public void checkExpireDrugs() { LocalDate warningDate LocalDate.now().plusMonths(3); ListDrugInfo expireList drugMapper.selectExpireDrugs(java.sql.Date.valueOf(warningDate)); for (DrugInfo drug : expireList) { log.warn(藥品 {} 將于 {} 到期請及時(shí)處理, drug.getDrugName(), drug.getExpireDate()); } // 還可以把結(jié)果寫入一張預(yù)警表供前端查詢展示 }這里Scheduled是Spring的定時(shí)任務(wù)注解cron表達(dá)式0 0 9 * * ?表示每天9點(diǎn)觸發(fā)。對應(yīng)Mapper里就一句SQLSELECT * FROM drug_info WHERE expire_date IS NOT NULL AND expire_date #{warningDate}。這個功能往前端一接首頁放個“近效期藥品提醒”的表格屏幕上瞬間多了一個能演示的模塊。答辯時(shí)候老師問“這個預(yù)警怎么實(shí)現(xiàn)的”你就可以講清楚定時(shí)任務(wù)、時(shí)間計(jì)算和SQL篩選三個點(diǎn)比背概念強(qiáng)得多。6.2 驗(yàn)證預(yù)警功能的兩條路徑第一條路徑改系統(tǒng)時(shí)間或數(shù)據(jù)庫數(shù)據(jù)來強(qiáng)制觸發(fā)。把某條藥品記錄的expire_date改成當(dāng)前日期加60天手動調(diào)用一次Service方法看日志是否輸出預(yù)警信息。第二條路徑用JUnit寫一個簡單的測試方法直接調(diào)checkExpireDrugs()打印返回值。我一般在寫這類小功能后都會跑一條測試路徑確認(rèn)不是為了覆蓋率是為了答辯時(shí)能回答“你有沒有測過”這個問題——用事實(shí)說話比“應(yīng)該沒問題”有說服力太多。我的習(xí)慣是給客戶或自己做驗(yàn)收時(shí)總會隨手在系統(tǒng)里做一次破壞性操作比如把庫存改成1再賣2件、把藥品有效期改成昨天再跑一次預(yù)警任務(wù)。因?yàn)椤澳芘芡ǖ南到y(tǒng)”很多“怎么測都不會出問題”的系統(tǒng)才是真正值的。希望這條經(jīng)驗(yàn)對你也有用希望幫到你把項(xiàng)目從“能跑”變成“能講清楚、能扛住追問”。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情视频一二三| 91狼人| 久久只有精品一区二区三区| 加勒比色99999| 日韩 欧美 视频 在线 一区| 国产妇女精品视频青青草| 亚洲色图欧美激情| 高清无码网址| 亚洲色交| 美女诱惑爱爱| 国产精品ⅴ无码大片在线看.| 吻戏激情性巴克| 伊人骚琪琪亚洲天堂网站| 天天躁日日躁AAA片李宗瑞| 久草综合视频| 亚洲欧美中文日韩视频中国语| 日本性爱欧美性爱| 天天综合网1| 国产精品视频麻豆入口| 啊啊啊啊啊啊啊在线| 天堂а√在线最新版在线| 日逼五月天| 中日韩久久久| 欧美精品欧美精品系列| 久久性爱城| 青青青在线高清视频在线一二三四区| 91大胆欧美| 91老司机在线| 久久久久久久久久久久久久久乱码| 天天综合网日韩| 国产一区麻豆免费观看| 黄色AAAAAAAAAAA大片| 91综合国产精品| 色乱二区| 人妻少妇精品| 超碰人妻中文在线| 91精品无码人妻系列| 青操影院| 看日韩美女二区三区免费操逼视频 | 天天综合网在线91| 九月AV| 日本熟女不卡视频| 亚洲欧美日韩国产丝袜自拍中文| 深夜激情无码| 中文久久久| 天堂精品小草| 免费一级视频特黄色大片| 欧美三级偷拍| 国产精品91ai| 麻豆国产免费影片| 一起草日韩| 91欧美情色| 夂久色| 天堂俺去俺来也www久久婷婷| 亚欧洲一区二区视频| 综合五月天| 超碰免费人妻人人| 亚洲春色欧美| 玖玖爱一区在线| 国产97色在线| 国产99 中文字幕日韩小视频| 97久久国产| 嗯嗯,好大,好爽,好骚| 国产粉嫩出水在线播放| 麻豆国产精品午夜视频| 玖玖久久久| 精品无码一二三四区| 国产在线精品偷| 日韩一级久久毛片| 欧美色网络| 夜精品久无码| 久草新免费| 东北少妇高潮zzzz| 波多野42部激情无码喷潮| 夫妻AV网站| 日韩一区二区熟女| 女色视频社区| 中文字幕一区av| 久操网视频| 色99999| 97超碰影音| 日本新免费二区三区| 91久久久久久久久久久| 婷婷伊人綜合中文字幕| 人人摸人人干人人拍97| 国产91av在线播放| 最新亚洲黄色免费电影| 日韩精品啪啪啪| 欧美高潮| 黄色一区三区| 人妻美腿丝袜日韩| 蜜桃AV天堂| 天天色怡春院| 91美女视频电影| 亚洲情色在线| 国产精品蜜臀久久久久无码AV| 九九操久久国产免费视频| 97精品久久久久中文字幕| 欧美熟妇操操视频| 任我爽在线视频免费观看| 亚洲限制级| 中文一区二区婷婷视频| 嗯嗯啊操我| 综合婷婷| 色色热| 视频二区美腿丝袜制服人妻欧美 | www.91逼逼.com| 中文字幕美女91| 狠狠婷婷亚洲中文综合久久| 91操熟女| 日韩性爱免费观看视频| 成人性爱全视频观看| 伊人久久综合精品欧美| 日韩国产中文字幕| 天天爽天天操| 欧美熟爽综合| 丰满精品人妻少妇久久字幕| 欧洲自拍色图gif在线| 欧美亚洲宗合色性图| av东京热男人的天堂| 日韩欧美偷拍美女视频| 九九九九97| 亚洲天天自拍| 亚洲欧美另类激情小说| 久久国产热视频97电影| 精品精品精品| 天美一二三在线观看Av| 加勒比伊人综合| 亚洲自拍欧美色综合| 色网在线| 91综合网站| 98人妻精品一区二区色欲| 国产AAAAAABBBBB| 精品成人无码| 国产日韩欧美三级片| 大香蕉伊人色偷偷在线| 亚洲色悠悠久久88| 一级AAA片一区二区三区| 久久人| 亚洲啪AⅤ永久无码| 欧美国产精品| www.超碰| 婷婷精品久久av影视| 色妇综合网| 1级黄色夫妻对换性交免费看| 欧美性爱无码一区二区三区| 国产超碰人人操| 少妇蜜汁| 亚洲欧美国产精品久久久久久久| 日本成a人v网站在线观看| 国产家庭乱伦性爱视频| 激情五月天视频| 欧美亚洲性爱一区二区| 亚洲AV色图一区| 操逼操2| 91成人久久| 久久久一区二区三区四曲免费听| 成人熟女区| 欧美草草高清日韩视频| 1769精品一区二区三区| 中美日韩毛片| 九九九精品美女| 亚洲欧洲日韩天堂av| 久久老子无码午夜伦不卡| 超碰性爱97| 亚洲一区中文字幕| 国产精品一区二区校花| 国产农村妇女一区二区| 超碰在线综合97| 青娱乐老司机视频| 天天干,夜夜爽| 东北女人的毛片| 91精品国产91熟女| 五月天婷精品激情| 亚热日本熟女| 岛国毛片在线观看免费| 婷婷三区| 亚洲 无码 偷拍| 精品一区二区三区蜜桃臀赵总 | 国产成人拍国产亚洲精品| 一区二区娱乐网站| 亚洲色图第一页| 1000部熟女视频在线观看| 日本人妻A片成人免费看片| 欧美大片一区二区三区| 黄色片一区二区三区四区五区| 色噜噜综合在线| 大香蕉日亚洲日本亚大| 男人的天堂一区三区| 国产精品久久久久久久久久久久久久久| 91色婷婷综合久久中文字幕二区| 人人操人人狠狠操| 夜夜国自区| 国产一进一出视频网站| 91九九九小逼| 日本色色视频网站| 性性久久| 欧美极品性爱天天射| 欧美不卡在线美女| 日韩激情电影中文字幕| 秋霞鲁丝午夜无码一区二区三| 欧洲黄色网| 有码免费观看| 91精品无码久久久久久久| 99这里只有精品| 78操B| 色婷婷成人| 97伦综合| 天天欧美色| 偷拍精品一区二区三区| 夜夜爽妓女| 色哟哟 日韩精品| 九九久久99| 日韩精品一区二区日韩| 国产蜜臀精品一区二区尤物| 五月天社区| 国产精品另类| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 五月丁香| 国产欧美日韩一区二区三区| 强奸熟女一区二区三区| 第一高清av中文字幕| 欧美精品系列| 日少妇亚洲版| 约操熟妇| 国产人妻久久精品一区二区三区| 天美av在线观看| 乱伦一二三| 天天看特黄的免费网站| www.91理论| 激情婷婷丁香网| 欧美综合骚| 先锋影音av先锋一区| 人妻素股| 色综合美国| 激情五月综合开心五月| 一区二区三区在线日韩影院观看| 五月开心网| 懂色Av| 色大香蕉97N| 五月天玖玖资源站| 热99这里有精品综合久久| 一区二区三区四区久久视1| 亚洲操人| 97在线视频观看网站| 超碰欧美97资源| 加勒比大香蕉视频在线| 精品性爱一二三区| 免费观看国产不卡av| 人妻美腿丝袜日韩| 成年男人的天堂| 深夜激情无码| 91午夜无码| 国产97色在线 | 亚洲| 久久9亚洲| 无码抄逼网| 五月丁香六月综合缴清无码| 竹菊一区二区三区AV线| 欧美丝袜美女电影一二三四区| 欧美极品女人的天堂| 一牛影视成人片免费| 久热伊人| 玖玖爱伊人玖玖爱| 黄色十八禁| 天天色香欲综合网| 我要看免费韩日黄片| 91香蕉视频在线观看免费| 久草这里只有精品 | 人妻精品综合中文字幕在线| www.丁香五月| 人人妻人人狠人人| 国产绿奴视频在线观看| 亚洲第一页第二页激情| 九九九热| 人人操人人93| 久热这里只有精品9| 亚洲精品97中文字幕| 国产夫妻一区二区| 2020中文字幕| ,国产乱人伦精品一区二区三区| 欧美性爱一级操| 天天视频网站黄| 欧在线一二区| 性综合网| 啊啊啊啊网站| 91人人| 伦理第一页| 欧美日韩制服| 日本不卡五区| 香蕉欧美| 少妇一区二区三区精选| 高清在线不卡一区二区 视频| 手机在线大香蕉| 色悠悠伊人网五月天| 久久久精品九| 久久久久成人网| 欧美色图99| 久久久草草精品| 天天天操天天天爱| 久久精品91| 青草影院内射高潮| 成人开心网在线视频| 男人的天堂久久狠| 加勒比性爱成人在线| 超碰久在线天天做| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 九九九九九九视频免费| 欧美精品三区| 久久国产乱子伦精品免费女人| 国产成人拍国产亚洲精品| 91丨国产丨白浆秘 洗澡动漫| 久久久久夜夜夜夜| 中文乱码字字幕在线第5页| av毛片aaaaa免费看| 在线αⅴ| 欧美顶级黄色大片免费| 狠狠干狠狠干| 999久久久久久久精| 日韩天堂av电影在线观看| 白丝1区2区3区| 国厂麻豆77q4| 91插B网站| 诱惑网综合| 亚洲阿v天堂在线| 免费人成在线观看网站品爱网| 亚洲AV噜噜狠狠网址蜜桃动漫| 操逼操逼逼操操逼91| 欧亚性爱视频免费看| 亚洲色欲天天人妻无码系列专区| 久久色人体| 最新精品久久蜜桃| 久久久久女教师免费一区 | 97免费在线观看| 飘花国产午夜精品不卡| 强奸乱伦av电影| 色色激情| 精品美女少妇一区二区三区| 啊啊啊啊免费视频| 国产精品999zyz| 99九九精品| 99久久这里只有精品| 亚洲的天堂网| 探花视频免费观看国产专区| 日韩卡一卡二卡三在线| 骚逼高潮久久精品| 久久久九九| 五十路熟女人妻一区二区在线观看| 亚洲码在线中文在线观看| 强奸乱伦αv片| 美女露胸露奶头| 日本加勒比无码专区一二三| 亚洲一区在线观看欧洲| 99色天堂| 成人开心网在线视频| 99久久久无码国产精品性啊聊| 八人操人人摸人人看| 日韩乱码Av| 人妻熟女一区二区| 日韩在线地址一| 五月天色五月| 五月天婷婷社区| 岛国黄色短视频| 欧美专利1区2区3区4区5区免费| 怡红院亚洲怡春院av| 内射老妇BBWX0C0CK| 国内精品999| 久久久性少妇| 天天干人人干天天日97| 色色色色色色色色综合| 91国产操逼视频| 久久午夜伦| 亚欧操逼片在线观看 | 日韩不卡毛片Av免费高清| 国产精品亚洲四五区在线观看| 亚洲天堂另类| 亚洲一区日韩| 色综合1991| 少妇无码av专区线| 欧美一区二区传媒| 精品人妻免费观看| 嗯嗯啊啊用力视频免费| 人妻夜夜爽天天爽三区麻豆AV网站| 中文字幕在线高清男人的天堂 | 嗯嗯嗯,草死我| 激情综合网激情综合| 丁香六月啪啪| 欧美偷拍| 色欧美天天| 欧美色图电影| 97天天爽| 怡春院久久| 国产精品爱欲| 久久宗合亚洲| 国产精品老熟女一区二区| 国产亚洲精品自在线亚洲情侣| 国产精品久久久久亚洲av| 综合国产影视三级| h无码动漫在线观看| 玖玖资源综合在线视频| 日本肉体xxxx裸交| 色99色| 中文字幕在线24| 九九热九九热| 夜夜久久| 国产精品白丝AV| 国产欧美另类久久久精品课程| 天天射日日干| 天天日天天搞天天干| 色色色欧美| 多乙久久久久久| 色综合色色| 色噜噜综合在线| 久久九七| 蜜臀99久久精品久久久久久| 97久久超碰| 精品久久久久久无码| 蜜乳Av成人片网站| 亚洲乱熟女一区二区三区大香蕉| 人妻夜夜爽天天爽麻豆三区网站| 97久久免费| 999久久芭蕾| 国产剧情在线| 激情人妻另类| 蜜臀久久99精品久久久久久-DVD原版全| 亚洲天堂在线怕怕视频| 国内精品久久久久影院亚洲| 中文在线久久字幕| 60秒不遮不挡| 国产不卡免费在线视频| 97亚洲综合电影| 91日日夜夜| 亚洲阿v天堂在线| 日本女优在线视频福利| 人妻天天爽夜夜爽爽| 亚洲自拍欧美色综合| 啊v在线观看视频| 亚洲一区二区三区中文字幕| 国产精品麻豆成人AV艾秋| 91丝袜熟女| 三久久久四久久久久| 亚洲成?V人片在线观看福利| 欧美熟妇乱码在线一区| 东北老熟女| 国产免费操逼| 第45页一区二区| 午夜欧美精品久久久| 久久久久久一日韩字幕无码| 91亚洲不卡一区| 日韩欧美麻豆 | 亚洲无码太久| 成人贴图日韩欧美| 一二三区精品视频| 丰满人妻一区二区三区大胸懂色| 日日夜夜草草草| 综合网亚洲| 香蕉在线一区二区三区| 熟人人妻少妇精品久久| 黑人无码一区二区| 校园春色家庭伦理欧美激情| 成人性爱全视频观看| 中文字幕超碰CAO| 超碰在线欧美性爱激情| 伊人五月天青青草婷婷| 精品视频一二三中文| 国产99 中文字幕日韩小视频| 国产地址二三| 亚洲av综合色区无码一| 亚av顶级裸体一区二区三区四区五区 | 亚洲一区二区在线观看91| 五月婷婷六月丁香| 久久99国产精品| 婷婷色导航| 日1区2区3区2020| 国产精品免费视频不卡| 天堂亚洲精品| 九九亚洲视频| 97天天| 夜夜爽77777| 超碰九7| 亚洲91av| 五十路六十路七十路熟婆| 天天干天天中出av| 国产精品久久久久中文字幕| 亚洲高清男人天堂| 婷婷色导航| 久久久久久九| 大香蕉免| 亚洲黄色a级片| 97精品视频在线播放| 国产精品三级视频网站| 美女诱惑久久| 美女主播色欲91抠b在线播放| 五十路六十路七十路熟婆| 亚洲凸凹超碰成人| 91九九| 国产强奸无码乱伦| 国产成人主播| 久久久久久久久久8888| 日本韩高清无砖码22o| 久久这里精品国产99丫e6| 69少妇一区二区| 日韩人人精品| 亚洲熟妇乱女区二区三区| 日韩免费在线视频观看| 久久婷婷一区| 亚洲三级网址久久最新| 国产超碰人人操| 久久夜夜| 亚洲熟女一区二区| 精产国品一区二三产品| 日韩精品一区的| 校园春色综合网| 91欧美性| 午夜欧美J进J出白浆流出久久久| 伊欧美综合视频| 国产在线观看一区二区三区| 天天天堂影视日韩亚洲91| 狠狠色五月亚洲91| 观看视频图片一区二区三区| 5278欧美一区二区三区| 美女天天干| 亚洲精品国产拍免费91在线| 秋霞一区二区三区四区五区六区七区| 九九Av| 超碰国产精品久| 亚州综合色| 欧美一品道| 成年男人的天堂| 九九99精品| 一区二区三区黄色片a| 超碰人妻久久| 蜜臀中文无码午夜| 亚欧美综合网。| 黄色乱论网站| 思思热在线| 国语精品内射在线观看| av天堂天堂av日韩| 蜜乳中文字幕a在线| 亚洲激情在线| 国产精品69久久久久久久| 天天综合欧美综合| 亚洲s在线观看| 五月天综合网| 精品成人av一区二区三区在线| 色操逼网| 国产乱色国产精品免费视| 蜜臀99久久| 亚洲深夜福利| 欧美午夜熟妇黑人精品91| 激情文学 亚洲图片| 吉川爱美98堂在线| 99久久com免费视频′| 激情五月天婷婷| 717影院理论午夜伦八戒| 中文字幕交换人妻| 一区二区三区黄片免费观看| 人人妻人射| 亚洲 日本 国产 综合| 九九视频黄色片| 操碰97| 97在线免费观看| 精品78| 黑人猛交| 青娱乐福利99| 国产精品一区二区校花| 国产成人一级av88| 秋霞无码av鲁丝片一区| 人人爱人人操人人性| 最近2019中文字幕国语免费版| 国产A v无码专区| 日韩欧美tv一区二区在线观看| 国产精品爽爽v| 污污汅18禁网站在线永久免费观看| 国产中文大片资源中文字幕 | 在线观看 99热| 骚妻少妇精品性色无码四色A V| 一区二区三区四区在线不卡| 中文字幕一区二区三区人妻不卡| 久久啊啊| 久久久久久久九九九九九九| 秋霞免费AV| 91精品综合久久久久久五月丁香| 97超碰国产亚洲精品资源| juliaann精品熟女一区| 热热热热日日漂亮永久永久国产日| 亚洲色图 图片| 玖玖爱视频网站| 曰韩人妻中文字幕在线| 精品欧美А∨无码黑人大荫蒂| 久久久久久久国产a∨| 狼人久草| 怡春苑东京热| 大茄子熟女AV导航| 91久久国产综合久久| 国产25页| 99re视频这里只有精品| Sekablack无码一区| 精品国产www久久| 天美传媒一二三区永久网站| 18禁久极品美女久久哦哟呀!| 久欲AV| 亚洲一区日韩精品中文字幕| 夜夜影视四色| 久久大香蕉手机高清| 中文字幕视频免费| 久久精品—区二区三区内射| 国产欧美成人第一页在线观看| 欧美性爱五月天| 日韩噜噜69| 久久中文字幕在线观看| 性在久久久久久| 91熟女熟妇视频网站| 偷拍片久久| 福利视频香蕉免费一区二区在线| 免费的黄片wwwwww| 9精品在线| 精品久久久久久久| 国产自偷自拍一区| 欧美熟妇亚洲版| 91狠狠| 日韩av乱伦| 日本男人插女人的逼黄色| 久久久久久久97| 午夜黄色免费在线观看| 东北老女人的激情视频| 精品九九| 女优免费一区二区永久| 欧亚韩国999| 精品无码不卡视频| 中文有码第五页| 精品九区| 伊人激情| 草久在线| 操91| 久久久亚洲精品中文字幕人妻| 人妻 中文 日韩| 亚洲淫乱骚妇AV| 黄片视频观看| 中文字幕视频在线观看一区二区| 男同专区一区二区三区在线| 中文字幕一区二区三区视频播放| 四虎影视永久在线观看精品免费网站| 人人操人人摸人人看人人插| 国产精品高潮久久AV| 三级日韩一区二区三区| 久久嫩草国产成人一区| 91大神精品长腿在线观看网站| 精品免费一区二区三区在线亚洲人成| 青青色在线观看| 淮穴色AV| 97蜜桃综合| 俞拍久久国应视频| 青青草原人妻| 欧美精品成人一区二区在线观看| 精精夜夜| 国产成人精品必看| 97视频www| 天天干夜夜操网| 欧美桃色网| 五月天激情小说| 极品另类| 白丝jkav| av凤凰久久久| 精品久久久久久久| 亚洲精品欧美专业| 日本丝袜人妻内射| 亚洲一区二区中文字幕| 性色一线| 久久青青草原免费视频| 国产AV天美传媒一区二区三区 | 啊啊啊啊好疼| 成人在线视频二区| 午夜无遮挡男女啪啪视频| 高潮综合网| 日韩啪啪网| 久久精品一区二区一8| 2017大香蕉国产精品久久| 国产精品久久久久亚洲av| 欧美天天影院| 久久久久久久久久久久久9999| 天天日天天搞天天干| 午夜精品久久久久久久| 亚洲91少妇| 五月天久久综合网| 国产乱不卡| 日韩人妻操B| 国产精品毛片?v一区二区三区| 欧美另类天堂| 国产精品乱码久久久久久久久久久久| 国产AV久久野战精品| 久久精品操| 亚洲色性情三级| 亚洲啪啪性视频| 亚欧无码线免费观看视频| 午夜福利在线合集| 黄色污污污污污污网站| 日韩欧美国产一区二区三区四区| 国产精品一区二区三| 加勒比日本在线| 天天日天天爽| 黄片免费看的| 性综合网| 日日爽熟女| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久九七| 久久国产三区| 精品v日韩欧美国产| 亚洲一区在线观看欧洲 | 青青网三级视频| 国产乱人伦AVA麻豆软件.| 老司机福利青青草| 亚洲色图片区| 懂色av中文字幕一区二区三区天美| 怡红院视频在线| 99操碰| 欧美日韩国产高清在线一二三区 | 无码精品蜜桃一区二区三区ww| 91精品国产91久久青草| 久热伊人| 日韩成人人妻网站| 久草精品视频| 欧美熟女妇同| 成人日韩中文字幕| 少妇无码太爽| 婷婷日韩一区二区三区中文字幕在线| 人人射人人操人人摸| 伊人精品久久网站| 国产无码三级视频在线观看| 国产精品操| 中国熟妇| 加勒比aⅴ| 青草伊人网| 欧美午夜熟妇黑人精品91| 免费97视频| 久久精品视频一区三区小泽玛利亚| 日本女厕偷拍| 久久这里精品国产99丫e6| 国产精品青青草| 亚州精人品大香蕉| 超碰亚洲欧美日韩无| 欧美黑人性猛交91| 中文字幕二区日韩天堂| 日韩有码一区三区| 久久五月份| www.97在线| 午夜性| 白丝少妇一区二区| 动漫av中文| 啊啊啊啊啊啊啊在线| 天天大干大香蕉| 日韩欧美蜜桃精品久久中文字幕久久| 亚洲在钱| 91色夜| 91东北熟女| 人人操人人摸avav| 色就色综合| 欧日a| 99视频内射三四| 亚洲欲色9532548967一区| www.欧精品| 欧美 传媒 麻豆 日韩 偷拍| 97国产天堂岛| 丁香7月婷婷| 97超碰欧美精品| 国内偷拍精品一区二区| 无码国产Av| 亚洲AV成人无码一区二区三区在线观看 | 任你艹| 色呦呦、国产精品| 精品一国2| 亚洲天在线| 性夜影院爽黄A爽免费动漫| 亚洲AV无码乱码| 国产精品自在线发布| 噜噜噜狠狠色综合| 蜜桃视频精品一区二区三区| 国外91| 美女啊啊啊啊啊啊| 熟妇的味道HD中文字幕| 国产精品老师| 欧美日韩黄色片一区二区三区四区人与兽做爱| 熟女AV一区| 91女日逼| 综合 欧美 亚洲 日本| 亚洲综合成人网| 综合干干干av久久久综合网| 性九九九九九九| 婷婷爽人人婷婷爽视频| 一区二区三区黄色片a| 五月色网| 麻豆 亚洲 97| 999综合网| 色爱三区| 日韩精品99久久久久久中文字幕| 久久日韩肥臀| 中文字幕国产| 天天欧美色| 精品少妇人妻一区二区三区| 黄片视频观看| 五月天婷婷影院| 天天超级碰碰碰| 中国AAAAAA黄色片| 亚洲人妻av| 91欧美综合在线| 白丝一区| 五月丁香六月激情综合| 青草园大香蕉| 亚洲欧洲中文日韩女优乱码| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久九九九九九九热| 欧美九九九| 亚洲成a人在线观看久| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 99天堂网| 日韩色图 一区二区| 日韩啊V| 91 手机在线播放 绯色| 99视频自拍区| 最新中文字幕在线亚洲| 天天天天天天天天综合| 天天澡天天爽日日AV| 六月丁香啪啪| 久99在线免费观看视频| 黑人精品成人一区二区三区| 蜜桃一区二区三区| 久久亚州精品成人Av无| 熟妇一区二区三区| 国产h小视频在线观看免费| 色五月激情网| 精品人妻一区二区三区四区| 久久久久9| 成人草草视频| 亚洲国产激情国产av| 曰本道人妻久久久在线不卡色视频| 51久久夜色精品国产麻豆| 欧美狠狠操| 91视频精品| 97这里都是精品| 中文字幕天堂在线| 麻豆性爱视频在线播放| 国产精品久久天天干| 96AV久久久| 无遮挡又黄又刺激的视频| 日日日啊啊啊| 午夜.DJ高清在线观看免费7| 夜夜综合| 91快色色色色色| 欧洲站一级二级三级h| 岛国成人av在线播放网址| 国产精品对白自产拍| 丁香九月婷婷| 亚洲无992tv| 日本不卡码黄色| 熟妇的味道HD中文字幕| 久草久日| 五月天婷婷影院| 大色综合| juliaann丝袜大战黑鬼| 午夜电影在线观看无码专区| 熟女91网| 97自拍视频在线| 91老熟女视频| 小骚逼被操的爽不爽| 国产精品免费视频人成| 亚洲高清欧美总合| 欧美一级欧美三级在线观看| 欧美经典一区二区三区| 午夜福利合集| 97国产精品国| A V视频日本| 中韩中文字幕在线观看| 97亚洲一区| 丰满人妻无码一区二区三区| 青青草大香蕉视频| 亚洲色图欧美色图制服丝袜| 色成人Www精品永久观看| 综合五月天| 欧美狠狠操| 国产成人精品日本亚洲语言| 少妇久久久| 色天堂在线观看| 亚洲操逼网| 久综合国内精品自在自线| 曰本特级特黄特色黄色A级网站高清在线免费看 | 91亚洲黑人| 夜夜天天噜狠狠爱2021| 4虎在线观看| 超碰97最新人妻| 婷婷丁香六月| 熟女精品va中文字幕| 精品人妻av区天天看片| 超碰97在线色男人??| 性爱动态120秒| 欧美亚洲尤物久久| 97欧美精品| 后入福利| 大香蕉综合久久| 熟女精品一区二区三区| www国产天美久久久| 欧美超碰97| 色欧美色交综合| 久久久久久久久久久久黄色| 一区二区偷拍拍视频| 久久久无码av精| 欧美特大AA级黄片| 亚洲色图欧美色图另类图片| 亚洲se电影| 97超视频在线观看| 夜夜高潮夜夜爽高清视频一| 成人午夜视频免费播放| 亚洲AV秘 精品久久老牛影视| 亚洲欧美日韩偷拍色图| 蜜桃网熟妇| 最新9久久久9免费视频| 青青青青草av在线观看| 亚洲最大91网| 五月天婷婷成人网| 影音先锋中文字幕日本好一区二区| 亚洲啪啪视频免费| 亚洲一区二区在线观看91| 少妇人妻在线| 久久久久久久久久久久欧美日| 18岁禁 茉莉成人久久| 日韩情色视频| 久久久工口| 男人的天堂在线有码| 成人午夜无码视频| 3p国产色噜噜一区| 日韩av一级黄片| 亚洲欧美在线观看2021| AV网站高清无码在线观看| 亚洲色系另类精品国产| 少妇人妻太紧太深av| 呦呦影院| www.色吧5.com| 边做饭边操逼逼| 18禁止看精品中文字幕| 国产自制av蜜乳| 超碰在线人妻中文字幕| 亚洲熟伦熟妇AV无码春色| 精品无码久久久久久久杏吧| 午夜小电影在线插入淫高潮| 97色网| 无码不卡亚洲成?人片| 欧美色网| 久久这里只精品免费福利| 久久性爱视频99| 隔壁邻居波多野结衣中文字幕 | 欧美三级免费伊人| 国产精品亚洲四五区在线观看| 97se综合网| 一本大道综合伊人精品热热| 色天堂在线观看| 四虎影视永久在线观看精品免费网站| 国产精品色| 91N综合网| 精品一区二区三区丰满熟女-亚洲欧美一区| 欧美翘臀视频网站一区二区三区| 97视频在线播放| 国产v片在线免费观看| 老司机深夜影院18未满| av凤凰久久久| 日本熟妇一区二区三区| 中文字幕视频2区| 欧美日韩婷婷中文| 精品9999| 天美传媒婬乱| 免费黄色片。| 久久这里只精品99re66图| 青青国产精品在线| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产精品视频播放| 国产传媒美日韩av| 99久热精品99re6热| 白嫩妹子国产骚| 天天日天天干少妇日| 亚洲av强奸乱伦| 精品久久在线区一区| 精品九九九九九九九九九| 青青青草原| 人妻精品视频一区二区三区| 操婢日韩| 狠狠干婷婷| 中国黑人三级片网站上区| 久久久久九九九九九| 国产深夜福利| 蜜乳AV一区二区三区四| 午夜人妻精品综合在线| 性色国产东北露脸精品视频| 大香蕉性欧美| 无码一区二区精品视频久久久春药| 92人人操人人| 男人的天堂色偷偷青青草视频婷婷网| 亚洲人综合| 国产在线综合福利网站| 日韩AC| 欧美综合色站| 欧洲视频在线| 中日韩久久久| 91丝袜美女| 91久久精品美女高潮喷水| 麻豆视频国产一区二区| 九热视频| 成人久久久精品| 亚洲网站一区二区在线| 亚洲图片偷拍视频区| 91丝袜激情在线| 日韩兔费看黄片| 日本女人操逼| 97视频在线视频| 久久国产在线一区二区| 黑丝少妇| 欧洲自拍第一页| 欧美日韩不卡a片| 久久久久久久久久久人妻| 老熟乱一区二区三区四区| 最新三级网址| 伊人久久大香蕉线AV五月天| 中文字幕乱码在线| 97色干| 蜜桃午夜视频一区二区 | 伊人黄色视频免费观看| 日韩美女高潮喷水视频| 乱伦一二三| 欧插网站| 97干在线| 亚洲色天堂日韩中| 97在线免费公开视频| 亚欧高清v| 91精品人妻五十路| 国产精品制服丝袜清纯唯美 | 午夜福利无毒不卡| 中文字幕亚洲欧美在线不卡| 久久78| 国产欧美伊人| 久久精品一区二区| 精品精品精品| 国产97在线视频| 熟妇人妻精品一区二区视频色欲| 美女十八禁| 婷婷操逼| 无码粉嫩白虎一线天b区| 婷婷伊人网| 老熟女阿 国产91| 久/久精品99看9| 99热这里都是精品| 九九热精品| 天天干电影| 成年女人一区| 亚洲高清视频在线免费观看| 亚洲乱色视频一区、二区在线| 国产又黄又粗又猛大片| 中文久久一区| 天天色黄色影院天天操| 制服诱惑亚洲一区二区三区在线观看| www.99中文字幕| 中文一区二区| 99热最新| 色悠久| 91精品成人| 成人八戒网站| 密臀在线视频| 亚洲国产精品乱码在线观看| 日韩操逼性鲍| 久久国产999| 色吧五月| 黄片视频观看| 校园春色亚洲无码| 蜜桃无码AV一区二区| 免费视频97| 情色五月天久久久| 日本高清_区二区三区| 草B在线| 天天影视综合网欧美精品| 亚洲黄色视频在线观看视频| 碰人碰碰人人开房人肉| 一区二区 韩日AV| 麻豆综合一区av| 97视频在线观看网站| 日韩AV一区二区三区四四| 在线观看亚洲成人精品| 夜夜春夜夜操| 日本熟妇熟色97一本在线观看| 亚洲精品毛片在线观看| 久伊人网78| 男女91| 婷婷五月天色色| 另类TS人妖一区二区三区| 玖玖无码超碰| 天堂精品小草| 久操精品网| 女欧美一区二三区| 国产精品夜夜夜| 国产偷仑| 婷婷综合五月天| 亚洲综合图文| 天天爽夜夜爽夜夜爽精| 东京热,男人的天堂| 久久综合精品一区二区三区| 亚洲色图欧美视频| 五月天我淫我色av| 9久9久9久9久视频网站| 亚洲成人精品久久久| 99性视频| 亚洲av影音先锋| 成人五月天丁香激情综合| 色99久草| 亚熟hd视频在线| 欧美精品在线观看| 亚洲中文字幕网| www.黄色在线| 9国产超碰| 78精品| AV在线播放网址| 樱花草社区www中国| 私色综合网| 日韩成人综合网| 久久美女国产| 成人蜜乳小视频网站| 日韩精品一二三| 日韩欧美天堂| 亚洲青色欧美| 上床不卡网站| 亚洲精品久久久久久久久豆丁网| 欧美黄片视频在线观看免费| 国产亚洲精品美女久久久久久2021| 大香蕉伊人网| 亚洲色人| 97手机日韩| 久操国产在线| 又黄又硬又粗又长国产视频| 91少妇通奸网站| 精品久久九| 北京美女一区二区| 欧美性暴力猛交XXXX | 粉嫩久久久极品| 欧美天堂亚洲电影院一区在线播放| 亚洲情色一区三区| 国产精品经典一卡久久久 | 中文字幕一区二区无码成人| 欧美爱国产综合、| 97国产精品久久久久| 欧美色图91p| 韩国国产欧美情侣视频在线| 东北女人| 一区二区视频你懂的| 欧美青青视频| 欧洲自拍色图gif在线| 狠狠色一区二区中文字幕| 91丝袜激情在线| 天天看高清麻豆| 97精品在线| 97亚洲国产| 亚洲做性| 国产精品久久泡妞网站| 精品天堂| 日韩av在线精品观看| 亚洲 小说 欧美 激情 另类| 国产三级在线现体验区| 高清国产成人无码|