乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      整合IDEA Maven SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

       Frank_Chia 2018-01-30

      這是一個整合IDEA+Maven+SSM框架的高并發(fā)的商品秒殺項目。我們將分為以下幾篇文章來進(jìn)行詳細(xì)的講解:

      • 01 Java高并發(fā)秒殺項目之業(yè)務(wù)分析與DAO層

      • 02 Java高并發(fā)秒殺項目之Service層

      • 03 Java高并發(fā)秒殺項目之web層

      • 04 Java高并發(fā)秒殺項目之高并發(fā)優(yōu)化

      項目的效果圖

      秒殺商品列表

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      開始秒殺提示界面

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      秒殺結(jié)束提示界面

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      新建一個Maven項目

      以IntelliJ IDEA為例,點擊File > New > Project > Maven

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      然后點擊Next繼續(xù);

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      填寫相關(guān)信息,點擊Next;

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      最后點擊Finish,完成創(chuàng)建。

      如果右下角彈出下面這個提示,點擊Enable Auto-Import

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      創(chuàng)建webapp目錄

      點擊File > Project Structure

      步驟1

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟2

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟3

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟4

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟5

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟6

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟7

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      步驟8

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      構(gòu)建pom文件

      Maven項目創(chuàng)建好了,接下來我們要添加一些jar包的依賴,也就是在pom.xml中添加各種開源組件的坐標(biāo)。

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      完整的代碼,請查看項目里的pom.xml文件

      到此,我們項目的初始化工作完成。

      秒殺系統(tǒng)業(yè)務(wù)分析

      秒殺系統(tǒng)業(yè)務(wù)流程如下:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      由圖可以發(fā)現(xiàn),整個系統(tǒng)其實是針對庫存做的系統(tǒng)。用戶成功秒殺商品,對于我們系統(tǒng)的操作就是:

      1. 減庫存

      2. 記錄用戶的購買明細(xì)。下面看看我們用戶對庫存的業(yè)務(wù)分析:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      記錄用戶的秒殺成功信息,我們需要記錄:1、誰購買成功了。2、購買成功的時間/有效期。3、付款/發(fā)貨信息。這些數(shù)據(jù)組成了用戶的秒殺成功信息,也就是用戶的購買行為。

      為什么我們的系統(tǒng)需要事務(wù)?看如下這些故障:1、若是用戶成功秒殺商品我們記錄了其購買明細(xì)卻沒有減庫存。導(dǎo)致商品的超賣。2、減了庫存卻沒有記錄用戶的購買明細(xì)。導(dǎo)致商品的少賣。對于上述兩個故障,若是沒有事務(wù)的支持,損失最大的無疑是我們的用戶和商家。在MySQL中,它內(nèi)置的事務(wù)機制,可以準(zhǔn)確的幫我們完成減庫存和記錄用戶購買明細(xì)的過程。

      MySQL實現(xiàn)秒殺的難點分析:當(dāng)用戶A秒殺id為10的商品時,此時MySQL需要進(jìn)行的操作是:1、開啟事務(wù)。2、更新商品的庫存信息。3、添加用戶的購買明細(xì),包括用戶秒殺的商品id以及唯一標(biāo)識用戶身份的信息如電話號碼等。4、提交事務(wù)。若此時有另一個用戶B也在秒殺這件id為10的商品,他就需要等待,等待到用戶A成功秒殺到這件商品然后MySQL成功的提交了事務(wù)他才能拿到這個id為10的商品的鎖從而進(jìn)行秒殺,而同一時間是不可能只有用戶B在等待,肯定是有很多很多的用戶都在等待拿到這個行級鎖。秒殺的難點就在這里,如何高效的處理這些競爭?如何高效的完成事務(wù)?在后面第4個模塊如何進(jìn)行高并發(fā)的優(yōu)化為大家講解。

      我們這個系統(tǒng)需要完成秒殺的哪些功能?先來看看天貓的一個秒殺庫存系統(tǒng):

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      大家看了是不是覺得很復(fù)雜?當(dāng)然不用擔(dān)心,我們只是實現(xiàn)秒殺的一些功能:1、秒殺接口的暴露。2、執(zhí)行秒殺的操作。3、相關(guān)查詢,比如說列表查詢,詳情頁查詢。我們實現(xiàn)這三個功能即可。接下來進(jìn)行具體的編碼工作,首先是建立數(shù)據(jù)庫以及Dao層的編碼。

      建立數(shù)據(jù)庫

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      完整的數(shù)據(jù)庫sql代碼,在項目的sql文件夾里的ngu_seckill.sql

      創(chuàng)建實體類

      先創(chuàng)建秒殺商品類com/nnngu/entity/Seckill.java

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      創(chuàng)建秒殺狀態(tài)類com/nnngu/entity/SuccessKilled.java

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      為實體類創(chuàng)建對應(yīng)的mapper接口,也就是dao接口

      com/nnngu/dao/SeckillMapper.java

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      com/nnngu/dao/SuccessKilledMapper.java

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      創(chuàng)建對應(yīng)的mapper.xmlresources目錄下創(chuàng)建com.nnngu.dao包,然后創(chuàng)建SeckillMapper.xmlSuccessKilledMapper.xml,如下圖:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      創(chuàng)建Mybatis的配置文件mybatis-config.xml

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      mybatis-config.xml配置文件的內(nèi)容參照項目的源代碼

      建立連接數(shù)據(jù)庫的配置文件jdbc.properties

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      注意:

      jdbc.properties
      里面的屬性要根據(jù)自己的情況進(jìn)行修改。

      建立Spring的dao的配置文件

      創(chuàng)建applicationContext-dao.xml如下圖:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      applicationContext-dao.xml

      文件的具體代碼請參照項目的源代碼。

      測試

      創(chuàng)建測試類com/nnngu/dao/SeckillMapperTest.java
      如下圖:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      該文件的具體代碼請參照項目的源代碼。

      測試結(jié)果

      測試查詢所有商品的方法queryAll()

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      測試結(jié)果如下:

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

      到此,我們成功完成了Dao層開發(fā)及測試。

      源代碼請復(fù)制下鏈接:

      data:text/html;charset=UTF-8;base64,

      5p625p6E5biI5a2m5Lmg5Lqk5rWB576k5Y+35pivNTc1NzUxODU0Cg==

      復(fù)制粘貼在網(wǎng)站即可!

      整合IDEA+Maven+SSM框架高并發(fā)的商品秒殺項目之業(yè)務(wù)分析與DAO層

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多