久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

SSM+JSP超市進銷存系統(tǒng):從原理剖析到環(huán)境部署避坑指南

SSM+JSP超市進銷存系統(tǒng):從原理剖析到環(huán)境部署避坑指南 簡介面向畢業(yè)設(shè)計與超市管理場景的進銷存管理系統(tǒng)采用Java語言開發(fā)基于Spring、SpringMVC、MyBatis整合框架搭配MySQL數(shù)據(jù)庫以B/S結(jié)構(gòu)實現(xiàn)。系統(tǒng)劃分管理員、員工、前臺三類角色管理員可管理用戶、員工、商品分類、商品信息、商品維護、入庫出庫記錄、銷售統(tǒng)計、留言板及訂單員工處理商品與出入庫記錄前臺首頁提供商品瀏覽、新聞資訊、留言反饋與購物入口覆蓋超市進銷存的完整業(yè)務(wù)鏈路。壓縮包內(nèi)共1390個文件以JSP動態(tài)頁面、Java業(yè)務(wù)源碼、JavaScript腳本、CSS樣式表為主輔以PNG/GIF圖片、XML配置文件、SQL數(shù)據(jù)庫腳本、Word論文和PPT答辯材料整體約31.22MB目錄結(jié)構(gòu)清晰便于定位代碼與文檔。已有110人學(xué)習(xí)下載適合需要完成畢業(yè)設(shè)計或課程設(shè)計的計算機專業(yè)學(xué)生可參考其多角色權(quán)限設(shè)計、進銷存流程實現(xiàn)及SSM整合思路。1. 從課設(shè)到簡歷為什么一套 SSMJSP 的超市進銷存管理系統(tǒng)到今天還有人做每年臨近畢業(yè)季「基于 SSMJSP 的 XX 超市進銷存管理系統(tǒng)」都是 Java 方向課程設(shè)計和畢業(yè)設(shè)計里出現(xiàn)頻率極高的選題。家百利超市進銷存管理系統(tǒng)就是這類項目的典型代表技術(shù)棧固定為 Spring SpringMVC MyBatis頁面層用 JSP業(yè)務(wù)范圍圈定在超市的進貨、銷售和庫存管理三條主線上。很多同學(xué)覺得這套技術(shù)?!咐稀沟∏∈沁@種老而穩(wěn)的組合把 Java Web 開發(fā)里最核心的東西——對象管理、請求流轉(zhuǎn)、SQL 操作、事務(wù)控制——完整地串了一遍。這套系統(tǒng)解決的不是什么高并發(fā)難題而是讓中小型超市的進銷存數(shù)據(jù)從 Excel 表格和手寫單據(jù)變成能對得上賬的數(shù)據(jù)庫記錄。適合正在做畢設(shè)或課設(shè)的學(xué)生也適合想快速補一套完整 SSM 項目經(jīng)驗的初級工程師照著源碼捋一遍業(yè)務(wù)閉環(huán)。2. 技術(shù)選型拆解SSMJSP 這套組合的邊界與合理性2.1 三個框架的分工Spring 管對象、SpringMVC 管請求、MyBatis 管 SQL在做任何一個 SSM 項目之前先把三個框架的邊界畫清楚后面讀源碼才不會迷路。Spring 負責(zé)對象管理也就是把 Service、Mapper 這些類交給容器統(tǒng)一創(chuàng)建和注入同時承擔(dān)事務(wù)管理和 AOP 切面SpringMVC 負責(zé)請求分發(fā)從瀏覽器進來的 URL 經(jīng)過 DispatcherServlet 找到對應(yīng)的 Controller 方法再返回視圖或數(shù)據(jù)MyBatis 負責(zé)數(shù)據(jù)庫訪問把 SQL 寫在 XML 映射文件或注解里返回的對象自動映射成 Java 實體。三者各管一段出了問題排查范圍天然被切開了。在源碼工程里這三個框架的協(xié)作關(guān)系可以從兩個配置文件里看出來。一個典型的 Spring 配置片段長這樣!-- 開啟注解掃描Controller 之外的所有 Bean 都從這里注冊 -- context:component-scan base-packagecom.jiabaili.service / context:component-scan base-packagecom.jiabaili.dao / !-- 數(shù)據(jù)源配置驅(qū)動、地址、賬號、密碼 -- bean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSource property namedriverClassName valuecom.mysql.jdbc.Driver / property nameurl valuejdbc:mysql://localhost:3306/jbl_supermarket?characterEncodingutf8 / property nameusername valueroot / property namepassword value123456 / /bean !-- 把數(shù)據(jù)源交給 MyBatis 的 SqlSessionFactory -- bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean property namedataSource refdataSource / property namemapperLocations valueclasspath:com/jiabaili/mapper/*.xml / /bean !-- 掃描 Mapper 接口動態(tài)生成實現(xiàn)類 -- bean classorg.mybatis.spring.mapper.MapperScannerConfigurer property namebasePackage valuecom.jiabaili.dao / /bean這段配置的邏輯是先掃描 Service 和 DAO 接口再把數(shù)據(jù)源注入 MyBatis 的會話工廠最后通過 MapperScannerConfigurer 把 DAO 接口和 XML 里的 SQL 綁定起來。參數(shù)里有三個地方需要根據(jù)實際環(huán)境改數(shù)據(jù)庫地址、賬號密碼、mapper XML 的掃描路徑。不少源碼工程的坑就出在 mapperLocations 的路徑寫錯導(dǎo)致啟動時報Invalid bound statement (not found)。這個報錯的意思是接口方法找到了但對應(yīng)的 SQL 沒加載進來優(yōu)先檢查路徑和 XML 文件名是否和接口名一一對應(yīng)。2.2 JSP 不過時只是被用錯了地方頁面層為什么不適合無腦前后端分離近幾年前后端分離成了默認姿勢但 SSMJSP 這套組合并沒有被淘汰。JSP 的核心優(yōu)勢是服務(wù)端渲染Java 代碼和 HTML 可以混編數(shù)據(jù)從 Controller 塞進 Model 之后直接在頁面上用 EL 表達式和 JSTL 標簽取出來不需要額外起 Node.js 服務(wù)也不需要解決跨域問題。對于超市進銷存這種以表單和表格為主的后臺管理系統(tǒng)頁面交互不復(fù)雜JSP 的開發(fā)效率反而高于 VueAxios 那一套??匆幌略创a里典型的進貨單 JSP 頁面片段感受一下數(shù)據(jù)是怎么從后端流到頁面的% page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % html head title進貨單列表/title /head body table border1 tr th進貨單號/th th供應(yīng)商/th th進貨日期/th th總金額/th /tr c:forEach items${purchaseList} varpurchase tr td${purchase.purchaseNo}/td td${purchase.supplierName}/td td${purchase.purchaseDate}/td td${purchase.totalAmount}/td /tr /c:forEach /table /body /html這里最需要注意的是${purchase.purchaseNo}這種 EL 表達式它背后對應(yīng)的是 Purchase 實體類的getPurchaseNo()方法。如果實體類沒有生成 getter頁面上會直接空白而且不報錯。新手最容易在這里翻車MySQL 里字段是purchase_noJava 實體屬性是purchaseNoMyBatis 開啟了駝峰映射就能對上沒開啟就要在 XML 里寫resultMap做手動映射。JSP 頁面取值取不到的時候先回 Mapper XML 里看 resultMap 或 resultType 配的是什么再回實體類里看 getter 是否存在不要第一反應(yīng)去改頁面。2.3 源碼工程的目錄結(jié)構(gòu)三個包和一個 resources 目錄拿到家百利進銷存系統(tǒng)的源碼工程第一件事不是急著運行而是先看目錄結(jié)構(gòu)。傳統(tǒng)的 SSM 項目按 MVC 分層源碼里一般會有一個頂級包名比如com.jiabaili下面按 controller、service、dao、entity 四個子包組織。entity 里放和數(shù)據(jù)庫表對應(yīng)的實體類dao 里寫接口service 里寫業(yè)務(wù)邏輯controller 里寫請求映射。resources 目錄下放著 Spring 配置文件、MyBatis 映射文件和 MyBatis 全局配置。src/main/java/com/jiabaili/ ├── controller/ # 頁面跳轉(zhuǎn)和請求參數(shù)接收 │ ├── LoginController.java │ ├── PurchaseController.java │ └── SaleController.java ├── service/ # 業(yè)務(wù)邏輯層事務(wù)邊界在這里 │ ├── PurchaseService.java │ └── SaleService.java ├── dao/ # MyBatis Mapper 接口 │ ├── PurchaseDao.java │ └── SaleDao.java └── entity/ # 數(shù)據(jù)庫表對應(yīng)的實體 ├── Purchase.java └── Product.java src/main/resources/ ├── spring/ # Spring 和 SpringMVC 配置文件 ├── mapper/ # MyBatis 的 XML 映射文件 └── mybatis-config.xml # MyBatis 全局配置拿到源碼先核對這個結(jié)構(gòu)。很多從網(wǎng)盤下載的源碼工程包名和實際目錄對不上或者少了 mapper 文件夾運行起來全是「找不到符號」。我一般會先全局搜索RequestMapping把所有 Controller 里的 URL 路徑列出來和數(shù)據(jù)庫表名對照一遍就能大概猜出這個系統(tǒng)的功能模塊劃分。超市進銷存系統(tǒng)的功能通常圍繞六個模塊轉(zhuǎn)登錄、商品管理、供應(yīng)商管理、進貨管理、銷售管理、庫存查詢源碼里的 Controller 類基本和這六個模塊一一對應(yīng)。3. 數(shù)據(jù)庫設(shè)計與業(yè)務(wù)閉環(huán)進銷存的核心不只是三張表3.1 七張核心表從商品表到庫存流水表的設(shè)計邏輯進銷存系統(tǒng)聽起來就是「進貨、賣貨、查庫存」但表結(jié)構(gòu)不能只設(shè)計三張表。如果進貨單和銷售單不拆主表和明細表一條進貨記錄里多個商品就無法存儲如果庫存只存當(dāng)前數(shù)量不記錄每次變動出了問題根本沒法追溯。常見的做法是設(shè)計七張表商品表、供應(yīng)商表、進貨單表、進貨明細表、銷售單表、銷售明細表、庫存表。有的系統(tǒng)還會加一張庫存流水表每次入庫出庫都追加一條記錄。表名核心字段作用t_productid, product_no, product_name, spec, unit, price商品主數(shù)據(jù)t_supplierid, supplier_name, contact, phone, address供應(yīng)商檔案t_purchaseid, purchase_no, supplier_id, purchase_date, total_amount, operator進貨單主表t_purchase_itemid, purchase_id, product_id, quantity, price, amount進貨單明細t_saleid, sale_no, sale_date, total_amount, operator銷售單主表t_sale_itemid, sale_id, product_id, quantity, price, amount銷售單明細t_stockid, product_id, quantity, last_update_time實時庫存兩個主表各自掛一個明細表這是進銷存系統(tǒng)里最核心的表結(jié)構(gòu)設(shè)計。主表存一筆單據(jù)的公共信息單號、日期、總金額、操作人明細表存這一筆單據(jù)里每個商品的數(shù)量和金額。以進貨為例一次采購 10 種商品t_purchase 表只多一條記錄而 t_purchase_item 表多 10 條。這樣設(shè)計的好處是兩個維度都能查按單號查整個進貨批次按商品查這個商品在不同批次里的進貨價。3.2 一次進貨動作背后的三次寫操作事務(wù)邊界的經(jīng)典示范看一個進銷存系統(tǒng)的源碼質(zhì)量最有效的辦法是看進貨邏輯的 Service 實現(xiàn)。一次進貨不是單純的 insert而是三個動作往進貨主表和明細表插入單據(jù)數(shù)據(jù)同時還要更新庫存表里的商品數(shù)量。這三個動作必須在一個數(shù)據(jù)庫事務(wù)里任何一個失敗都要全部回滾。下面是一個簡化版的進貨 Service 代碼Service public class PurchaseService { Autowired private PurchaseDao purchaseDao; Autowired private PurchaseItemDao purchaseItemDao; Autowired private StockDao stockDao; Transactional(rollbackFor Exception.class) public void addPurchase(Purchase purchase, ListPurchaseItem items) { // 動作一插入進貨單主表返回主鍵 ID purchaseDao.insertPurchase(purchase); // 動作二遍歷明細列表逐條插入進貨明細表 for (PurchaseItem item : items) { item.setPurchaseId(purchase.getId()); purchaseItemDao.insertItem(item); // 動作三更新庫存表商品存在則加數(shù)量不存在則插入 int affected stockDao.increaseStock(item.getProductId(), item.getQuantity()); if (affected 0) { Stock stock new Stock(); stock.setProductId(item.getProductId()); stock.setQuantity(item.getQuantity()); stockDao.insertStock(stock); } } } }這段代碼值得注意的地方有兩個。第一是Transactional(rollbackFor Exception.class)這個參數(shù)不是默認值——Spring 的事務(wù)默認只在拋出 RuntimeException 時回滾如果業(yè)務(wù)代碼拋的是自定義的 checked exception不指定 rollbackFor 的話庫存已經(jīng)更新了但單據(jù)沒插進去數(shù)據(jù)就永遠對不上了。第二是increaseStock返回受影響行數(shù)的寫法用affected 0來判斷是更新還是插入本質(zhì)上是一個簡單的「有則改、無則加」邏輯。這個寫法在并發(fā)場景下會有問題但對于課設(shè)和中小型超市的并發(fā)量來說足夠了。3.3 論文里的 E-R 圖和數(shù)據(jù)字典和代碼怎么對照著寫這套源碼附帶的論文里數(shù)據(jù)庫設(shè)計章節(jié)一般是重頭戲E-R 圖和數(shù)據(jù)字典加起來能占去十幾頁。寫論文時有一個常見誤區(qū)E-R 圖畫得很大很全但和數(shù)據(jù)字典里的字段對不上或者數(shù)據(jù)字典里的表和代碼里的建表 SQL 不一致。拿到源碼后我建議把三樣?xùn)|西放在一起核對——論文中的 E-R 圖、數(shù)據(jù)字典、resources 目錄下的建表 SQL 文件。很多版本的源碼里論文里寫了 12 張表實際 SQL 腳本只建了 7 張寫著寫著功能就缺了。數(shù)據(jù)字典的寫法也有套路每張表一個表格字段名、數(shù)據(jù)類型、是否主鍵、是否為空、默認值、說明。寫的時候不要照抄字段名就完事要把業(yè)務(wù)含義寫清楚。比如 t_stock 表的quantity字段說明不能只寫「數(shù)量」應(yīng)該寫「當(dāng)前實時庫存數(shù)量每次入庫加、出庫減由 Service 層事務(wù)保證一致性」。論文答辯時老師喜歡追問的就是這種細節(jié)——「你這個庫存表的更新策略是什么」「進貨單刪除的時候庫存要不要回滾」回答得上來說明系統(tǒng)真的是你寫的回答不上來代碼是不是自己寫的就不好說了。4. 在本地跑通源碼環(huán)境版本組合、配置修改和啟動步驟4.1 版本組合把 JDK、Tomcat、MySQL、Maven 的兼容矩陣先定下來SSMJSP 項目最容易翻車的地方不在代碼而在環(huán)境。網(wǎng)上流傳的源碼工程很多是在不同版本的 JDK、Tomcat、MySQL 下寫的直接拿自己機器上最新的環(huán)境去跑經(jīng)常出現(xiàn)各種玄學(xué)報錯。先給一組經(jīng)過驗證的兼容組合JDK 1.8、Tomcat 8.5、MySQL 5.7、Maven 3.6.3。這套組合和絕大部分 SSMJSP 課設(shè)源碼的編寫環(huán)境一致也是我建議優(yōu)先嘗試的組合。組件推薦版本說明JDK1.8SSM 項目基本都在 Java 8 上開發(fā)避免直接用 JDK 11Tomcat8.5支持 JSP 2.3 和 Servlet 3.1兼容性最好MySQL5.75.x 版本對 JDBC 驅(qū)動的兼容性比 8.x 省心Maven3.6.3依賴管理用3.8 有時會因中央倉庫策略報錯JDK 和 Maven 的環(huán)境變量配置是老生常談但要檢查是否真的生效可以在命令行執(zhí)行java -version和mvn -v確認輸出的版本號不是系統(tǒng)預(yù)裝的其他版本。MySQL 要注意 root 賬號的密碼是否和源碼里的jdbc.properties配置一致這是連接失敗的第一大原因。另外不建議一上來就用最新的 MySQL 8.0 和 Tomcat 10——Tomcat 10 的包名從javax.servlet改成了jakarta.servlet老 SSM 項目里的javax導(dǎo)入全會報 ClassNotFoundException不是改一行配置能解決的。4.2 從導(dǎo)入到啟動的七步操作以命令行方式跑通整個工程拿到源碼后按下面這幾步操作能避開大多數(shù)坑。先檢查 JDK 和 Maven 版本再導(dǎo)入數(shù)據(jù)庫腳本然后修改三個配置文件最后啟動 Tomcat。我用命令行的方式來寫因為很多網(wǎng)上下的源碼工程并不帶 IDE 配置直接用 Maven 命令驗證最靠譜。# 第一步確認 JDK 版本 java -version # 期望看到 1.8 字樣 # 第二步確認 Maven 版本 mvn -v # 期望看到 Apache Maven 3.x # 第三步創(chuàng)建數(shù)據(jù)庫并導(dǎo)入 SQL 腳本 mysql -u root -p # 在 MySQL 里執(zhí)行CREATE DATABASE jbl_supermarket DEFAULT CHARSET utf8mb4; # 然后退出 mysql 命令行回到系統(tǒng)命令行執(zhí)行下面這行 mysql -u root -p jbl_supermarket sql/jbl_supermarket.sql # 第四步編譯并打包工程 mvn clean package -DskipTests # 看到 BUILD SUCCESS 說明編譯通過 # 第五步部署到 Tomcat cp target/jbl-supermarket.war /path/to/tomcat/webapps/ # 第六步啟動 Tomcat /path/to/tomcat/bin/startup.sh # 第七步查看啟動日志 tail -f /path/to/tomcat/logs/catalina.out # 看到 Deployment of web application archive ... has finished 說明部署成功第三步里的 SQL 腳本是源碼自帶的建表和初始數(shù)據(jù)文件一般在項目根目錄的sql/或db/文件夾下。導(dǎo)入前先打開看一下確認里面有沒有CREATE DATABASE語句——如果有就不需要手動創(chuàng)建數(shù)據(jù)庫直接全量導(dǎo)入即可如果沒有就先建庫再指定庫名導(dǎo)入。第五步里部署 war 包之前我習(xí)慣把 Tomcat 的webapps目錄下原來自帶的ROOT、docs等文件夾清掉避免訪問 8080 端口時跳到 Tomcat 默認首頁讓人誤以為項目沒部署成功。4.3 三個必須改的配置數(shù)據(jù)庫連接、根路徑和字符編碼工程跑起來之前有三個配置項要逐個核對。第一個是數(shù)據(jù)庫連接信息通常在src/main/resources下的jdbc.properties里把jdbc.url、jdbc.username、jdbc.password改成自己本機的值。第二個是項目的上下文根路徑如果 war 包名是jbl-supermarket訪問地址就是http://localhost:8080/jbl-supermarket/登錄頁面的 URL 如果寫死了/login會跳轉(zhuǎn)到 Tomcat 根路徑下找不到資源。第三個是字符編碼JSP 頁面、Servlet 過濾器、數(shù)據(jù)庫連接串三處都要統(tǒng)一成 UTF-8缺一個就會出現(xiàn)中文亂碼。!-- web.xml 里配置 Spring MVC 的字符編碼過濾器必須在所有過濾器最前面 -- filter filter-nameencodingFilter/filter-name filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class init-param param-nameencoding/param-name param-valueUTF-8/param-value /init-param init-param param-nameforceEncoding/param-name param-valuetrue/param-value /init-param /filter filter-mapping filter-nameencodingFilter/filter-name url-pattern/*/url-pattern /filter-mapping這段過濾器的forceEncoding參數(shù)很容易被忽略。如果不設(shè)成 trueSpring 只會在請求參數(shù)里帶有編碼信息時才會覆蓋默認編碼設(shè)了 true則強制所有請求和響應(yīng)都使用 UTF-8。很多本地開發(fā)環(huán)境沒問題、部署到服務(wù)器就亂碼的情況都是因為這臺服務(wù)器上的容器默認編碼不是 UTF-8。把這段配置加進去之后JSP 頁面頭部的contentTypetext/html;charsetUTF-8和數(shù)據(jù)庫連接串里的characterEncodingutf8三處對齊中文顯示問題基本就根治了。5. 避坑指南SSMJSP 項目最容易翻車的 5 個檢查點5.1 分頁查詢失效返回全表數(shù)據(jù)現(xiàn)象在商品列表頁點擊第二頁結(jié)果頁面把全部商品一次性列出來了或者點下一頁沒反應(yīng)SQL 日志里查出來的數(shù)據(jù)量是全部記錄數(shù)。原因SSM 項目里分頁通常用 PageHelper 插件但 PageHelper 的版本必須和 MyBatis 版本兼容。另一個常見原因是 MyBatis 全局配置里沒有注冊 PageHelper 的攔截器導(dǎo)致調(diào)用PageHelper.startPage()后沒有任何攔截效果。還有一種情況是startPage()后面緊接著的不是第一條查詢語句中間多了一條別的 SQLPageHelper 會把分頁參數(shù)作用到錯誤的查詢上。解決先確認 Maven 依賴里引入的是com.github.pagehelper:pagehelper再在mybatis-config.xml中注冊攔截器plugins plugin interceptorcom.github.pagehelper.PageInterceptor property namehelperDialect valuemysql / property namereasonable valuetrue / /plugin /pluginsreasonabletrue這個參數(shù)的作用是當(dāng)頁碼超出總頁數(shù)時自動跳到第一頁或最后一頁而不是報錯。排查時還要注意PageHelper.startPage( pageNum, pageSize )后面必須緊跟第一條select查詢中間不能有其他 SQL 或邏輯判斷。血淚經(jīng)驗是有人在一行日志輸出語句放在中間分頁就神秘失效了這不是玄學(xué)是 PageHelper 基于 ThreadLocal 的實現(xiàn)機制決定的。5.2 中文亂碼JSP 頁面改了 charset 也沒用現(xiàn)象登錄后首頁全是問號商品名稱顯示成「???」或者頁面能顯示中文但插入到數(shù)據(jù)庫里的值變成了亂碼。原因亂碼的傳播鏈條是「瀏覽器 → Tomcat → Servlet 過濾器 → 數(shù)據(jù)庫連接 → MySQL 表結(jié)構(gòu)」五個環(huán)節(jié)。只改 JSP 頁面的charsetUTF-8解決的是響應(yīng)方向的問題請求方向如果 Tomcat 的 URIEncoding 沒配置POST 請求體是 UTF-8 但 Tomcat 默認按 ISO-8859-1 解碼到 Java 代碼里就已經(jīng)是亂碼了。數(shù)據(jù)庫連接串沒加characterEncodingutf8從 Java 到 MySQL 也會亂碼。解決按順序檢查三處。第一處是jdbc.properties里的連接串確保包含useUnicodetruecharacterEncodingutf8第二處是web.xml里的 CharacterEncodingFilter已在上文給出第三處是 MySQL 建表語句里的字符集如果表結(jié)構(gòu)本身是 latin1代碼層全是 UTF-8 也救不回來。檢查已存在的表用這條 SQLSHOW TABLE STATUS FROM jbl_supermarket;看到latin1的行執(zhí)行ALTER TABLE t_product CONVERT TO CHARACTER SET utf8mb4;把整張表轉(zhuǎn)過來。記住一點UTF-8 和 utf8mb4 的差別在于 emoji 和生僻字不要省錢用 utf8直接上 utf8mb4 最穩(wěn)妥。5.3 Service 層兩個數(shù)據(jù)庫操作一個成功一個失敗沒回滾現(xiàn)象進貨時報了「明細不能為空」的異常但重新登錄系統(tǒng)發(fā)現(xiàn)庫存數(shù)量已經(jīng)增加了或者銷售單沒插入成功庫存卻被扣減了。原因最常見的兩個原因一是Transactional注解加在了類上但類的掃描路徑?jīng)]覆蓋到Spring 容器里這個 Service 根本不是一個代理對象二是事務(wù)方法內(nèi)部 catch 了異常并吞掉Spring 感知不到異常就不會回滾。還有一個隱蔽的原因Transactional默認只對 RuntimeException 回滾業(yè)務(wù)拋出的 checked exception比如自定義的BizException不會觸發(fā)回滾。解決把注解寫成Transactional(rollbackFor Exception.class)并且不要在大事務(wù)方法里用 try-catch 吞異常。如果確實需要捕獲異常做邏輯處理處理完之后要重新拋出或手動調(diào)用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()。通過 Spring 的聲明式事務(wù)別自己手動寫回滾邏輯那是把簡單問題復(fù)雜化。5.4 Tomcat 部署后 ClassNotFoundException但 Maven 編譯是成功的現(xiàn)象mvn package順利打出 war 包部署到 Tomcat 后卻報ClassNotFoundException: com.mysql.jdbc.Driver或者報找不到某個 Mapper 類。原因Maven 打包時依賴沒有打進去或者打進了重復(fù)的 jar。SSM 項目要在pom.xml里把 Spring、MyBatis、MySQL 驅(qū)動等依賴連同一同打進 war 包如果某個依賴被標記為provided作用域打包時會跳過它。另一個常見情況是 Tomcat 的lib目錄里放了一份老版本的 Servlet API和項目里引入的版本沖突。解決在項目根目錄執(zhí)行mvn dependency:tree看 MySQL 驅(qū)動和 MyBatis 的依賴樹上有沒有provided或compile標簽。然后在 Tomcat 的webapps目錄找到布署的 war 包解壓目錄進入WEB-INF/lib用ls | grep mysql確認驅(qū)動 jar 確實在。不推薦手動往 Tomcatlib目錄里扔 jar那樣會把所有部署在這個 Tomcat 上的項目都影響屬于擴大了排查范圍。5.5 JSP 頁面上 EL 表達式原樣輸出取不到值現(xiàn)象頁面上顯示的是${product.productName}這一串字符串而不是商品名稱本身瀏覽器里查看源碼能看到 EL 表達式?jīng)]被解析。原因JSP 頁面的isELIgnored被設(shè)成了 true或者 web.xml 的 Servlet 版本聲明太低JSP 2.0 以下默認不解析 EL。還有一種情況是 Controller 里往 Model 塞數(shù)據(jù)的 key 和頁面上取的 key 不一致比如 Controller 里寫model.addAttribute(productList, ...)頁面里取的是product。解決在 JSP 頁面頭部顯式聲明% page isELIgnoredfalse %同時檢查 web.xml 的命名空間是不是 Servlet 3.0 及以上版本。如果頁面確認要使用 JSTL 的${}表達式頁面頂部要加上% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %。排查順序是先看 JSP 頂部有沒有聲明再看 web.xml 版本最后看 Controller 里的 key 名和頁面是否一致。EL 表達式取不到值不像 Java 編譯錯誤有明確報錯頁面靜默空白很多人卡在這里半小時發(fā)現(xiàn)只是 key 少寫了一個字母。6. 給進銷存系統(tǒng)加統(tǒng)計報表從 JSP 表格到可視化圖表的升級路徑6.1 用 JFreeChart 在服務(wù)端生成圖片還是前端用 ECharts 拿 JSON 畫圖進銷存系統(tǒng)的論文里通常會提到「統(tǒng)計報表」模塊但很多源碼實現(xiàn)只是用 JSP 再畫一個表格把進貨總額、銷售總額列出來談不上可視化。做這個模塊的升級時有兩種方案。方案一是在 Java 端用 JFreeChart 生成柱狀圖或餅圖圖片直接把圖片路徑塞給 JSP 的img標簽展示優(yōu)點是純 Java 實現(xiàn)不需要前端引入第三方庫但圖表交互能力弱調(diào)整樣式得重新生成圖片。方案二是在 Controller 里把統(tǒng)計數(shù)據(jù)封裝成 JSON 返回給 JSPJSP 里用 ECharts 渲染靈活性和美觀度都更好。我傾向方案二因為它把前后端職責(zé)分得更清楚而且這套 JSON 接口將來改造前后端分離時可以無縫遷移。JSP 頁面里只需要加一段 JavaScriptscript src${pageContext.request.contextPath}/static/js/echarts.min.js/script script // 從后端接口取統(tǒng)計數(shù)據(jù)接口返回 [{name: 牛奶, value: 120}, ...] fetch(${pageContext.request.contextPath}/statistics/saleRank) .then(response response.json()) .then(data { const chart echarts.init(document.getElementById(saleChart)); chart.setOption({ title: { text: 本月商品銷量 TOP10 }, tooltip: {}, xAxis: { data: data.map(item item.name) }, yAxis: {}, series: [{ type: bar, data: data.map(item item.value) }] }); }); /script這段代碼用 fetch 調(diào)后端接口取 JSON然后喂給 ECharts邏輯很直白。需要說明的是Controller 里對應(yīng)的接口方法要返回ResponseBody并且把統(tǒng)計 SQL 的結(jié)果映射成Map或ListMap的格式ECharts 拿到后才能正確渲染。自己動手升級這個模塊時重點不在代碼本身而是統(tǒng)計口徑——銷量是按銷售明細表的 quantity 匯總銷售額是按 amount 匯總兩個 SQL 都要GROUP BY product_id后用ORDER BY SUM(...) DESC LIMIT 10控制返回條數(shù)。6.2 三個值得動手的改造方向Spring Boot 化、數(shù)據(jù)權(quán)限、緩存如果這套 SSMJSP 系統(tǒng)是用來找工作面試的項目不建議停留在「跑通即可」建議往三個方向動手改一改。第一個方向是 Spring Boot 化把 XML 配置改成application.yml啟動方式從 Tomcat 部署變成mvn spring-boot:run這個改造過程能把 Servlet 和 Spring 的底層理解再夯實一遍。第二個方向是數(shù)據(jù)權(quán)限給不同角色的登錄用戶配置不同的數(shù)據(jù)范圍——普通員工只能看到自己的操作記錄店長能看到全店數(shù)據(jù)這個功能在面試時很加分。第三個方向是首頁庫存預(yù)警加一層緩存把庫存低于閾值的商品列表緩存起來改數(shù)據(jù)庫時主動清緩存不涉及 Redis 的話先用ConcurrentHashMap手動實現(xiàn)一個簡單的 CacheUtil 類理解清楚緩存穿透和緩存一致性的概念后再上 Redis。我自己做這個課設(shè)題目時踩過最深的坑是事務(wù)回滾——當(dāng)時進貨單插入成功但明細插入時主鍵沖突沒拋異常導(dǎo)致庫存更新了兩次。后來養(yǎng)成了一個習(xí)慣寫完一個涉及多表更新的 Service 方法先故意制造一個錯誤跑一遍確認數(shù)據(jù)沒變再寫正常的業(yè)務(wù)邏輯。這個習(xí)慣幫我避免了好幾次線上事故。做課設(shè)和畢設(shè)也是一樣的道理代碼跑通只是起點把每個邊界情況都驗證過一遍答辯時才硬氣。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
黄色毛片A片| 成年人黄色小视频网站| 亚洲一卡2卡3卡4卡乱码网站| 精品小视频在线| 欧美日韩插逼视频| 日韩在线性爱免费视频| 躁躁日曰躁2020| 国产精品一区二区手机看片| 91综合国产精品| 亚洲av综合色区图片亚洲| 日韩精品系列| 99色视频| 中文?日韩?免费?精品| 67914亚洲精品| 丝袜足交视频| 九一国产精品| 日韩欧美经典在线观看| 婷婷性网| 伊人国产视频| 三级片大波波| 性做久久久久久免费观看软件| 亚洲天堂男人天堂网| 亚州精人品大香蕉| 思思热在线cao| 99re9这里只有精品| 久久精品国产亚洲AV片多多| 亚洲不雅视频1区二区| 亚洲日本韩国极品一区二区| 国产日韩区| 中文三一区| 国产精品久久9| 18禁在线视频| JuliaAnnXXX888| 久久久久久久久久久久久9999| 破苞ⅩXXX性无码动漫无码| 葡萄牙性视频一二区| 日韩无码服务区| 伊人97超碰| 一类无码操逼视频| 国产精品操| 日欧毛片久久| 婷婷伊人一区| 九月AV| 伊人女女资源在线观看| 久久伊人五月天| 一级片视频啪啪| 老司机福利青青草| #NAME?| 啊啊啊啊啊啊啊在线| 黄色大片一区二区密桃丝袜| 色色色色电影网| a片在线播放| 成人精品无码| 国产精品女生av| 大学生口爆吞精| 五月婷婷六月丁香网址| 久久久久久午夜男人的天堂| 99亚洲人人| 男人天堂 天天射| 日本天天人人狠狠在线日美女 | 夜夜欢天天干| 波多野42部激情无码喷潮| 在线人成亚洲视频免费观看| 色在线亚洲视频www| 成年人性爱日韩| 97人人干人人操| a天堂视频| 加勒比日本在线| 亚洲熟女乱综合一区二区三区| 亚洲欧美一区二区三区在钱蜜桃| 亚州成人a∨| 黄页大片在线观看| 天天爽天天| 欧美日韩人人精品| 大逼色网站| 中文字幕一区二区三区50路| 亚洲综合中文字幕有码| 人妻日日干| 97人人草| 欧美性特| 日韩十八禁| 久久久精品,3| 97免费视频在线| 13小男生GAY自慰脱裤子| 亚欧日韩成人| 日本高清有码网址视频| 婷婷丁香五月综合| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 啊啊啊快操我视频| 亚洲高清91| 久久加勒比| 成人日韩3| 97精品综合久久| 免费看黄视频亚洲网站| 91久久精品蜜臀| 色天欧美| 在线国产福利网址导航| 亚洲AV乱码专区国产噜噜亚洲| 二三四区精品| 中国91AV| 熟妇操花| 天天操天天日天天干| 欧美成人性活片| 亚洲欧美国产日本一区二区三区| 色网亚洲人| 欧美日韩国产另类综合| 精品无吗久久| 无码精品久久久久久亚洲| 13小男生GAY自慰脱裤子| 色一情一乱一乱一区91Av| 久久久禁| 国内亚洲精彩视频在线| 亚洲五区熟女| 国产成人99久久亚洲综合| 久久亚洲AV成人精品无码| 精品91摸| 97操| 91精品国产高清久久久久久,亚洲成人 | 在线视频一区二区传媒| 热的中文 热的有码 热的国产| 欧美色999| 东京热激情视频一二三区| 欧美丝袜亚洲| 国产成人久久久精品免费AV| 无码精品啪啪啪一区二区三区三州| 国产女人视频三四五区| 性色av网站| 色综合99999| 亚洲视频精选| 玖玖大干人妻| 岛国视频免费在线观看| 久污| 色优久久| 欧美亚洲激情| 国产中文福利| 99在线精品视频| 综合久久2017| 夜夜狼人妻| jizz啪啪| 亚洲色图综合网| 99久久e免费热视| 日本孕妇孕交| 亚洲一区中文字幕一区| 美女久久久| 女色视频社区| 成人三一级一片aaa| 日韩欧亚中文在线| 曰韩精品九九无码| 91av熟女人妻| 啊啊啊久久久视频| 99热伊人| 欧美性爱日韩性爱| 99re这里只有精品2| 91蜜臀熟女| AV一起草在线| 97久久免费| 操逼天美3区| 男人的天堂三级| 成人性爱av| 一二三四视频在线社区中文字幕| 无码少妇精品一区二区60岁老人| 国产精品精品系列在线观看| 校园春色家庭伦理欧美激情| 天综合网| 97摸视频| 成人无遮挡毛片免费看| 亚州一区二区| 后入式999| 91国产精品熟女| 白天啪啪晚上啪啪视频| 84YTCOM性无码| 中文一区在线日| 成功精品影院| 国产v亚洲v日韩v欧美v片另类| 中出91| 日本综合色图| 啊啊啊骚| 欧美熟女逼久久久久久| 欧美天堂第二区| 天天添天天干电影| 色婷婷丁香| 97高清啪啪| 日韩操逼HD| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 91碰碰碰| 国产亚洲日本| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 亚洲成a人v欧美综合天堂下载| 精品99999久久久久久| 无遮挡男女激烈动态图| 精品一区96| 久久这里是精品| 超碰美女97| 亚洲九九视频| 99热导航| 国产欧美在线观看免费观看| 日韩人妻一区二区| 国产美女mm131爽爽爽爽| 免费A V在线| 亚码激情| 亚洲欧洲网站免费观看| 日日干夜夜骑| 一区二区蜜臀| 青春草A| 日本三级久| 鲁鲁色综合网| 亚洲有薄码区日本系列中文字幕| 国产小u女在线观看| 亚洲天堂AV在线播放| 亚洲图片色图欧美另类| 亚洲性综合9| 99久视频| 1956日韩精品| 亚洲精品丝袜| 精品一二三区女同 | 粉嫩在线一区二区懂色| 日韩国产欧美伦理在线| 欧美日韩性爱无码| 99久在线精品99re8| 久久九九99| 日韩美女久久一区二区三区| 午夜免费视频1000| 又黑又大又粗| 成熟熟女国产精品一区二区| 久久精品男人的天堂| 亚洲精品男人的天堂| 淮穴色AV| 欧美色图91p| 精品国产乱码久久久| 亚洲精品久久久久毛片A片拉屎 | 久久久久久久久9| 熟女精品一区二区三区| 97人妻免费中文字幕| 欧美在线电影| 人妻献身系列第54部| 亚州一区二区成人片免费| 又黄又爽在线观看视频| 久久一本大香蕉| 青青草一区二区三区四| 色哟哟-国产专区| 久久人人爽av亚洲精品天堂桃色 | 伦激情人妻另类人妻| 欧美综合传媒| 欧美九一精品久久久熟妇| 亚洲区 欧美区| 日本欧美一区二区三区免费| 色色热| 一二视频神马久久传媒| 思思热在线视频在线| 91精品大奶人妻| 亚洲第91页| 久久久96| 亚洲天堂人妻一区二区| 久久久久96| 国产精品自在线发布| 日韩激情视频| 东京太热久久久| 91中文字幕在线观看| 日韩国产成人自拍视频| 天美传媒AV国产在线| 2024黄色视频| 96AV久久久| 一区二区乱码福利| 密臀在线免费观看| 日本精品一级二级三级| 内射日韩大臀美女| jazzjazz国产精品麻豆| 黄色小说亚洲| 性爱Av免费| 久湿久久| 翔田千里av一区二区三区| 欧美综合在线第一页| 国产精品三级视频网站| 日韩一级二级三级在线不卡观看完整| 9l视频自拍9l九色成人| 日韩国产欧美伦理在线| 亚欧视频在线| 国产精品一区人妻精品阁在线| 天天综合麻豆视频| 亚洲AV秘无码一区..| 日美免费黄片| 一区二区三区探花在线观看| 亚洲人妻色图| 中文字幕在线24| 色色毛片| 91亚洲图片| 强奸乱伦资源| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 国产av色网| 欧美熟妇亚洲版| 久久久免费一级黄片| 中文字幕99999| 免费超碰97久久| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲综合另类小说色区亚洲成av人片在www| 91无码人妻| 99精品丰满人妻无| 成人性爱高清视频免费看| 亚洲人妻久久| 98超碰日本| 色盈盈影院| 97人肏| 亚洲欧美成人在线| 粉嫩av在线一区二区| 亚洲春色一区二区三区| 91痴汉| 黑人粗大V S日韩女优视频| 欧美色图片91| 国产精品天美传媒| 亚洲五月丁香花狠狠干一区二区三区| 日va操| 99在线免费公开视频| 性天堂| 午夜操一操| 9Ⅰ超碰| 蜜臀久久99精品久久久久久-DVD原版全| 伊人久日| 国产精品97超碰| 熟女久久久| 91激情国产| 欧美日韩不卡传媒| 中文字幕第7页| 久久久久密| 伊人991| 日本一区二区不卡精品| 美女t无毒不卡不卡| 少妇被玩视频二三区| 人妻美腿丝袜日韩| 久热一区二区| 免费A V在线播放| 日本色色色| caopeng97| 激情第四色| 欧美草草高清日韩视频| 91狠狠狠| 啊啊啊 在线观看| 青草草免费网站av| 亚洲欧洲无码97久久精品| 夜夜久久| 操熟女91| 大香蕉视频一二三区| 粉嫩粉嫩一区性色AV片| 日韩一区二区精品视频| 日韩三级在线观看mp4| 蜜桃精品视频一区二区三区| 午夜爽爽爽| 日韩国产成人自拍视频| 91在线限制级| 国产成人五月天丁香花| 精品国产91av一区二区三区| 五月丁香六月激情| 午夜精品人妻二区三区| 女同女同恋久久级三级| 人妻在线中出视频| 久久久久久性爱免费视频| 亚洲AV无码国产精品久久久久| 亚洲国产综合久久久性感熟妇| 日韩AV噜噜噜一区二区三区四区 | 日韩在线观看AV| 免费1级a做爰片观看| 91麻豆天美国产欧美| 色97欧美| 99婷婷| 成人九九| 青青草中文-久久青草精品一区二区三 | 伊人九九| 免费黄色片子| 久久亚洲日韩熟女精品| 国产成人久久久精品免费AV| 大香交| 日本女人操逼| 9久久精品| 亚洲天堂久久久久久粉红视频| 立川理惠无码一区二区| 婷婷五月花| 少妇诱惑视频| 激情五月天校园春色网| 国产在线精品偷| 大香蕉综合在线| 欧美性爱精品一区二区| 欧美精品成人一区二区在线观看| 伊人久久亚洲色欲综合网站| 97超碰国产精品| 操老熟女AV| 天操老女人| 欧美久久婷| 国产精品情侣啪啪| 蜜臀精品1区2区| 天天流夜夜操| 免费的av网| 人人手机欧洲亚洲国产人妻| 日本天天吊| 午夜情侣自拍网站| 夜夜高潮夜夜爽高清视频一 | 国产51色综合久久免费| 翔田千里无码中出中文字幕| 国产中文精品一区二区在线观看| 1769一区二区| www.91色综合| 色综合潮| 69久久久久久久久久久久久| 日本精品加勒比海一区| 少妇高潮九九九九| 欧美18老人禁| 国产日韩精品人妻久久久久色欲网站| 91碰超| 欧美亚洲尤物久久| 婷婷香蕉| 性色高清在线| 97在线无精品| 男同专区一区二区三区在线| 国产色产精品在线观看| 国内毛片婷婷六月色| 激情小说成人日本无码一| 日韩性爱高清免费视频| 91久久国产综合久久| 嗯嗯啊啊用力视频免费| 啊啊啊久久久视频| 国内外内射高清视频| 韩日色费| 97最新在线播放视频| 久久婷婷色综合一区二区三区| 亚殴在线| 欧洲精品久久| 国产久久久久久| 岛国在线免费视频| 欧美 熟女 日韩| 爱妻综合网| 青娱乐淫乱1314| 夜精品久无码| 欧美97视频| 抽插亚洲无码| 国产精品亚洲一级av第二区| 亚洲成人网站在线观看| 91亚州欧美| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 蜜臀亚洲中文| 99久久久| 亚洲无吗在线视频| 野狼激情网| 国产免费一区| 免费中文综合精品| 人妻少妇视频在线播放| 五毛骚逼极品美女怕怕| www.色吧5.com| 国产无马av| 青青国产在线拍揄自揄拍| 91制服丝袜| 人人 操人人 操人人| 蜜乳av首页| 草伊人高潮喷水超碰| 国产欧美另类久久久精品课程| 日韩簧片免费看| 熟女人妻久久中文字幕一二区| 人妻丝袜肏逼| 亚洲无线码欧洲精品区别| 激情五月天网| 狠狠入| 日韩av一级黄片| 超碰人妻中文在线| 日韩操p| 午夜天天碰综合视频| 日曰骚久久精品| 在线观看色视频| 91挑色欧美| 九九精品美女高溯喷水| 99热一区二区三区四区| 免费a在线播放v| 亚洲网污污污污| 无码精品久久| 蜜臀久久99精品| 亚洲欧美国产中文视频| 久久一留热品黄| 日韩国产精品人妻无码久久久| 人妻丝袜无 码视频专区| 中文字幕av一区二区三区人妻少妇| 国产日韩区| 日日骚 av| 国产对白刺激视频| 老司机午夜福利视频一区二区| 天天草夜夜草高潮片| 久久久久久久久久久久黄色 | 99久久精品国产高潮| 1204av韩国| 人人操人人操人人人操| 亚洲黄a三级三级三级看三级| 91av一区二区在线观看| 中文字幕人妻色偷偷久久皮| 免费一级性爱久久| 91操人| 日韩人妻免费精品| 18精品一二区| 久久超碰爱| 91欧美大片| 天天操天天射青青草| 尤物网站91| 蜜桃精久三区| 嫩草一区二区在线观看| 丰满熟妇大乳做爰| 少妇高潮99p| 84YTCOM性无码| 亚洲天堂人人妻| 岛国视频免费在线观看| 丰满人妻一区二区三区免费| 国产传媒1234区| 欧美色图亚洲色| 涩爱AV在线| 日韩不卡在线一区二区| 不卡视频一区蜜桃视频| 欧美情色贴图| 蜜桃久久综合视频| 不卡一区二区日本视频| 色香AV| 中文字幕女同在线| 亚洲欧洲另类| 很黄很色的视频在线观看| www男人天堂| 75大香蕉| 久久伊人大香蕉| 女性喷水高潮在线观看| 免看60秒涩涩视频| 色月天AV导航| 99精品在线观看| 日本三级A片网站com| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 99超级碰免费视频| 亚洲精品性爱片| 久久黄人人爽视频| 国产第11页| 九九热精品在线| 日本人人操人人操| ,成人免费啪啪视频| 加勒比色99999| 少妇极品熟妇人妻无码| 台湾佬激情综合| 在线国产一区二区av| 18禁看网站一区| 日本黄色精品| 天操天操夜操夜月月年年操操| 日本天堂网| 日本在线一二| 色综合九九| 国产成人一级av88| 中国AV美女| 偷拍 亚洲 欧美| 小电影欧美91| 大白逼三四级| 精品视频久久区| 97免费免费视频网| 精品一区二区三区最新| 天天日天天插| 亚洲黄色影视| 五月婷色| 丁香六月婷婷久久综合| 丁香五月电影| 1024香蕉视频| 91麻豆天美国产欧美| 国产最火爆久久国产网站网站| 99色热| 精品国产乱码久久久影院| 国产丝袜高跟美女av免费观看| 婷婷丁香一区二区三区| 五月婷亚洲精品天堂| 亚洲男人天堂手机版| 青青草大香蕉视频| 夜夜躁狠狠躁日日躁av| 欧美日韩在线小说 | 国产精品乱码久久久、久久| 日韩特一级久久| 视频黄站| 超碰99在线| 天天做天天爱| 乱操乱伦AV| 8x福利精品第一福利视频导航| 亚洲AV成人无码一二三久久| 日本精品网站在线中文| 亚洲一区二区三区不卡国产欧美| 黄色AAAAAAAAAAA大片| 三级网色| 婷婷九月| 成人熟女视频一区二区三区| 一区二区视频你懂的| 伊人aaa| 91热色| 久久黄人人爽视频| 伊人操你| 黄色高清无码无码破解免费暗网| 激情网五月天| 久久中日麻豆| 青青操日韩| 一区二区三区国产在线播放 | 欧美日韩免费专区在线| 都市激情人妻一区二区青青操视频| 精品无码产区一区二| 亚洲色阁| 福利视频一区二区微拍| 五月丁香综合激情| 亚洲成人精品久久久| 天欧美在线| 亚洲91色| 国产精品成人蜜臀AV在线| av天堂影视中文在字幕在线中文| 台湾大香蕉99热| 国产精品对白自产拍| 亚洲av青草久久一区二区| 亚洲精品无码成人久久久99| 亚洲色色色| 欧美色图成人网一区二区| 超碰欧美97资源| 国产精品精品系列在线观看| 欧美成人午夜免费福利785| 91久久精品国产| 热热色AV| 亚洲欧美日韩免费电影| 欧州色图区| 欧美,亚洲,日韩,v,天堂,手机在线观看| 少妇久久久| hd成人一区二区在线| 久久国产视频专区一二三| 欧美小说区视频区| 做爱A级亚欧| 九九九九九九九九九九九免费国产| 欧美性天天影院| 久操91视频| 人妻嗯啊啊在线播放| 亚洲色图欧美色图制服诱惑| 黄片视频观看| 亚洲日韩AV视色| 亚洲做性| 久久性爱大全| 超碰97久久国| 国产最新小视频在线播放下载 | 国产亚洲99久久精品熟| 久久久久久亚洲精品不卡人乳| 亚洲天堂资源| 亚洲中文一区二区三区| 久久国模av| 亚洲电影中字一区二区| 麻豆色99999| 国产精品免费视频人成| 俞拍自拍| 久久久久久国产精品免费网站| 色五月69夫妻| 被窝影院午夜看片无码| 色婷婷aV一区二区三区麻豆综合| 免费视频97| 亚洲nv男人的天堂网| 天天操福利视频综合网站| 亚洲av淫乱| 四虎影视永久在线观看精品免费网站 | 日本影视久久免费| 五月天春色激情网| 国产乱伦视频污| 日韩一区二区熟女| 9国产超碰| 五月婷婷hd| 在线有码中文字幕| 好看的久久不射无码影视影院| 免费观看性欧美一级| 97 超碰 人人做 人人爱| 岛国在线免费视频| 国产一区二区三区,在线观看观看| 色就色综合| 欧美日本不卡| 色综合五月天| 免费人成毛片乱码| 在线亚洲精品久久久| 懂色天天爱天天日天天射天天澡| 亚洲日韩久久精品一区| 色青青久久影视| 女生看匆91网站| 亚洲综合小说另类图欧美视频激情小说色五月天 | 亚洲夜色在线| 日韩一区二区精彩视频| 欧美在线中M| 欧美一区二区亚洲天堂| 亚洲日韩电影| 高潮综合网| 天天色播亚洲综合网站| 97资源久久| 亚洲色图欧美色图制服丝袜| 亚洲一欧洲中文字幕在线 | 中文字幕二区日韩天堂| 久久国产熟女影院| 九九九只有精品| 久久超碰爱| 涩涩涩综合| 嗯嗯啊啊啊好爽| 亚洲综合另类欧美久久久| 黄色在线网站| 人妻精品一区二区| 97在线青| 欧美日不卡| 激情小说成人日本无码一| 躁躁躁日日躁2020| 亚洲天堂日本| 白丝1区2区3区| 国产情侣自拍在线播放| 一起草三级AV电影在线观看| 日日摸日日碰| 四虎永久在线精品免费网址 | 女人香蕉久久毛毛片精品| 亚洲综合113页| 日韩AV一起草| 人人摸.人人色| 五十路三区在线| 啊啊啊要高潮了| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲图片在线| 国产性感在线观看| 五月天成人综合| 日韩色欲久久一二三四区| 日韩射精| 欧美综合综合| 天天操人人操骚逼网站| 炮色五月| 激情六月天| 久久精品国产亚洲AV高级北京| 立川理惠被中出无码| 天天欧美97| 蜜臀av网址| 最新av在线| 亚洲AV资源| 久久久久13| 久久五月丁香| 日韩不卡av一二三| 啪啪啪精品视频| 亚洲色图尤物视频| 精品国产av一区二区三区四区入口| 我要色综合网站| 精人妻无码一区二区三区伊人直播| 国产婷婷一区| 人人喜人人妻| 青青草日本无码| 亚洲熟妇AV日韩熟妇在线| 黑丝日韩av丝袜av| 亚洲棕合电彰| 老师充足的奶水小说| 国产夜夜艹| 有码人妻系列| 日韩超碰精品综合| 884t在线| 国产乱人妻精品入口| 国产青视频| 日韩精品人妻中文字幕久久久| 亚州精品丝袜-不卡成人免费| 天天操女人| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 97操| 久久精品一区二区一8| 蜜臀久久99精品久久久电影| 蜜桃av色偷偷av老熟女| 国产精品 视频| 国产亚洲福利第一页丝袜| 日韩有码 一区二区三区| 国产欧美日本亚洲精品| 中文日本免费高清| 亚洲成人美女无吗| 狠狠操综合| 黄色网址久久精品欧美喷水| 香蕉99秘 精品一区丁香| 用力操死我| 蜜桃精品视频一区| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 久久久久成人蜜桃精品| www四虎| 1204金沙人妻懂旧版免费| 婷婷久草| 天天干夜夜鈤| 2021国产成人精品久久| 家庭乱伦国产| 久久东京国产精品视频| 亚洲色图超碰在线| 懂色AV中文| 国产精品乱码久久久、久久| 九九九久久久W精品| 欧美中出| 中文字幕中文字幕一区二区| 丁香五月婷婷基地| 成人熟女视频一区二区三区| 亚洲和欧美裸体美女双飞视频| 欧美体内射精| 久久专区| 国产精品一级毛片不卡视| 婷婷尹人大香蕉免费| 亚洲免费97免费| 婷婷精品久久av影视| 欧美日本成人一区二区| 404操逼福利视频| 五月天色图影视| 都市激情人妻一区二区青青操视频 | 国产午夜精品在线观看| 日韩欧美午夜视频在线| 九九毛片这里只有精品| 久久原创中文| 不卡av免费在线网址| 亚洲最大的综合性av| 99啪| 久热精品在线| 操逼天美3区| 青青草原人妻| 欲综合网| 国产亚洲美日韩Aⅴ中文字幕无码成人| 九九色综合| 91精品又粗又猛又爽| 欧美日本成人一区二区| 国产精品视频精品一二| 国产肏屁眼视频| 综合久久99| 国产亚洲国产超碰| 欧洲精品一二三在线| 亚洲一区二区在线观看91| 爱我干综合| 综合激情一一91| 欧美日韩*字幕一区| 亚洲五月丁香花狠狠干一区二区三区 | 97超碰久久| 丁香婷婷大香蕉| 日日妻色网| 成人av影院在线观看| 久久久久久性爱片| 欧美在线天堂| 91丨九色丨东北熟女| 操老熟女AV| 中文字幕精品一区二区精| 成人久久无码www| 啊啊啊好多水| 国产刺激视频| 人人做人人妻人人夜视频| 偷拍超碰| 韩三级a视频在线观看| 富二代亚洲精品99| 激情综合网亚洲| 狠狠中文字幕| 精品九九九| 亚洲中文字幕97久久精品少妇| 亚洲美女高潮喷水视频| 日韩性爱再线视频| 国产亚热在线久久| 国产亚洲禁久一区二区| 欧美激色| 国产一级黄色片在线观看| 插入粉嫩少妇视频| 人妻日日干| 人妻少妇精品无码专区二区密桃| 亚洲无码久久久久久久| 91色人| 伊人久久婷婷| 少妇精品久久| 欧美爆操91| 欧美探花网| 99日免费视频中文字幕| 日韩一级片在线看| 人妻久久| 精品久久久av| 欧美伊人久久综合网| 粉嫩少妇自慰在线| 探花熟女,姿勢到位,體驗感也到位| 豆1无夜无码| 无码国产精品午夜不卡(| 天天干夜夜鈤| 密臀在线免费观看| 91在线视频免费播放| julia ann久久| 操碰97| 国产成人91一区二区三区| a人欧美综合天堂麻豆| 亚欧成人中文字幕一区| 天天色综合影视网| 欧美狠狠弄| 国产日韩欧美亚洲精品95| 视频在线97| 91久久精品国产| 亚欧免费| 快播久久人人aV| 99中出在线| 国产精品自拍xxxx| 中出欧美| 青青伊人久久| 在线 制服丝袜中出 人妻| 日韩有码 一区二区三区| 男人的天堂无码| 天堂蜜桃无码视频一区二区| 精品国产无码中文| 欧美男人的天堂| 久久精品国产99国产精品亚洲| 国产女人91精品嗷嗷嗷嗷| 亚洲欧美情色| 蜜臀无码一区二区| 内射中出日韩在线观看视频| 一本一道波多野毛片中文在线| 这里都是精品| 亚洲欧洲第二视频在线观看色图| 五月天婷婷基地| 亚洲一区二区三区不卡国产欧美| 超碰97综合在线| 久久久久78| 人妻日日夜夜精品| 九九性爱网| 色欲无码人妻日韩欧美精品| 精品久| 久久婷婷一区| 中文字幕人乱码中文字的预防方法 | 国产一区二区视频在线播放| 久久草草亚洲蜜桃臀| 日产精品久久久一区二区| 亚洲视频一二区| 女同亚洲欧美一二三区久久电影| 熟女字幕| 久久久久人妻二区精品叶可怜| 无码人妻1727| 色约约一区=区三区| 学生妹天天看| 国产精品suv一区| 亚洲中文制服诱惑| 99热精品在线观看| 亚洲福利中文字幕在线| 久久国产热视频97电影| 人人干黄色| 中文字幕一区二区视频在线观看| 97精品人妻一二三四| 东方亚洲在线操逼天堂| 成人热久久精品| 天天综和| 欧美少妇第一页| 亚洲国产精品久久久久婷婷青年| 国产亚洲在线观看| 看一级黄色视频| 国产一区二区视频在线播放| 激情综合网五月婷婷五月天| 韩国一级婬片A片无码天美| 黄色AV免费| 91欧洲国产成人久久精品网站| 少妇天堂| 青青青青操国内视频在线| 中文字幕黄色一起草| 国产9熟妇视频网站| 色97国产69香蕉| 欧美淫乱视频| 9久9久9久9久视频网站| 亚洲中字慕不卡| 后入式福利| 中文字幕第二页| 亚洲深夜福利| 伊人久久AV诱惑悠悠| AV中亚| 天天干人人看综合| 一区AV| 亚瑟国产精品久久无码| 麻花豆传媒剧国产MV出差| 上海一级黄片| 97公开久久| 区二区亚洲婷| 精品久久艹| 成人草草视频| 亚洲激情视频| 襙一襙| 又大又长又粗又爽又黄| 日韩人妻免费精品| 中文字幕成人| 中文字幕国产精品1区| 台湾佬中文娱乐自偷自拍| 高跟伊人julia ann| 日韩精品一区,二区 九九...老司机| 精品久久久久成人码免| 一本色道久久综合精品婷婷| 2017大香蕉| 国产又黄又爽又刺激久久久久久| 无码精品一区二区三区潘金莲| 国产精品久久久鸭无码的功能| 色情成人五月天| 美女高潮视频91| 97超碰总站| 草草草视频| 两女互慰AV高潮喷水在线观看| 亚洲精品影视老司机| 99热婷婷| 久久亚州高清| 四虎免费在线播放| 立川理惠被中出无码| 极品尤物自安慰| 久久黄黄| 亚洲凸凹超碰成人| 97天天摸天天爽| 韩日性爱av| 91丝袜美女国产| 97在线无精品| 日韩在线电影| 人妻一区视频| 久久手机好看网站| 天操天操夜操夜月月年年操操| 蜜臀99久久| 黑人精品成人一区二区三区| 久久99国产综合精品女同| 久久曰曰| 青女偷拍网| 亚洲免费成人在线高清无码视频| 乱色视频中文字幕| 日韩 欧美 校园一区| 亚洲色图欧美色18直播在线| 国产精品99精品视频网站| 九九伊人网| 国产少妇高潮| a'v在线资源| 成年女人18级毛片毛片免费观看| 欧美成不卡网| 无套后入双马尾| 色婷婷视频| 中文字幕一区二区三区人妻少妇在线| 日本精品一区二区三| 狠狠色伊人亚洲综合网站色| 丁香五月偷拍| 九热超碰| 三级特黄60分钟播放| 久久久影院| 亚洲一区二区av| 欧美日韩操操操| 91处女视频在线观看| 久热一区二区| 五月婷丁香| 久久精品无码熟妇一区二区三区视频导航 | 被窝影院午夜看片无码| 日韩另类色图| 久久久555| 岛国成人av在线播放网址| 1000午夜黄色| 日韩熟女乱伦中出| 亚洲棕合电彰| PMv在线观看| 97网址www| 久久免费少妇| 91色综| 97爱亚洲| 国产成人资源| 青青色在线观看| 日韩另类色图| 亚洲高清自拍| 99色悠悠| 秋霞 色色| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 99热伊人| 99热婷婷| 久久精品无码一区二区三区| 狠狠激情综合狠狠操中文字幕| 久久久精品一区二区| 国产精品久久久久久无码红治院| 亚洲视频,小说| 嫩草在线视频| 91强在线播放| 把腿张开老子CAO烂你| 日韩中文9| 99日精品欧美国产| 99草精| 五月丁香色综合| 97综合国产| 成人精品电影| 黄色大片免费在线| 欧美综合网1| 激情综合网五月婷婷五月天| 亚洲好色人妻| 东京热亚洲一区二区| 操国产高清| 欧美婷婷久久| 97人妻免费中文字幕| 亚洲不卡一| 亚洲精品男人的天堂| 91这里只有精品| 97色诱| 性开放中文AV高清无码免费看| 九草九九九| 99精品视频在线观看| 天美精品原创av片国产| 美国久久一二三四| 嫖老熟女A片一二三区| 96超碰网| 91最新综合| 国产亚洲精品美女久久久m| 97爱爱官网| 九九九综合精品| 韩国午夜理伦三级好看| 九久久九九久视频| 高清不卡视频| 国产第25页在线观看| 99热一区二区三区四区| 亚洲综合性感在线| 在线v中文字幕一区二区三区| 亚洲不雅视频1区二区| 亚洲精品天天影视综合网 | 99999这里都精品| 男人的天堂啪啪啪啪啪蜜桃不卡| 思思热在线视频免费| 欧美洲精品一级| 久久天天摸| 人妻中文字幕日韩电影| 日本色日夜干| 亚洲色图 图片| 超碰97久| 麻豆九九九| 日本女人操逼| 免费一级性爱久久| 亚洲熟女诱惑| 偷拍片久久| 亚洲AV无码| 色婷婷丁香| 波多野42部无码喷潮在线观看| 久久久精精精| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91亚洲欧美综合高清在线| 69精品在线| 人人考人人摸人人干| 欧美熟爽综合| 亚洲综合在线高清| 嫖老熟女A片一二三区| 香蕉欧美| 97亚洲色图| 福利大香蕉| 在线黄色污污网站| 99超碰色| 亚洲色欲天天人妻无码系列专区| 亚欧免费| 国产精品美女久久久久久网站| 蜜桃AV天堂| 国产青青美女玩逼视频| 超碰国产情侣自拍网| 狠狠综合网| 亚洲aV性爱| 51一区二区三区| 偷拍三区| 久热精品在线国产| 日本精品一区二区三区四区的功能| 在线小说视频一区| 九九热在线精品视频| 欧美色图私拍91| 欧美中文字幕男人天堂久久精品| 99免费在线视频| 国产久久久久久久久一区二区| 激情干在线| 午夜爽爽爽在线观看永久入口姬片| 91露脸熟女专区| 色哟哟AⅤ| 亚洲精品国语在线播放| 亚洲欧美综合| 91日韩| 91五十路| 一起草在线视频| 91天堂网| 超碰在线人人射| 大象AV在线| 中文一区二区三区影院| 国产熟妇 码视频户外直播| 视频二区美腿制服人妻欧美| 0755午夜福利视频| 亚洲交性| 午夜在线播放| 国产97在线 | 亚洲| 久久久久久久97| 国产女大学生AV| 亚洲成人激情小说视频| 国产日韩无码一区二区三区久久区| 在线视频 亚洲精品|