亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java高并發秒殺API之業務分析與DAO層

  • 避免重復秒殺,(訂單表使用商品ID和用戶手機號碼作為聯合主鍵;插入訂單表數據時使用ignore,在主鍵沖突的時候,返回0,即不插入數據。)


    查看全部
  • 3.?????? 配置sqlSessionFactory對象 會話工廠

    <!--3.配置sqlSessionFactory對象-->

    ??? <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

    ?????? ?<!--注入數據庫連接池-->

    ??????? <property name="dataSource" value="dataSource"/>

    ??????? <!--配置mybatis全局配置文件:mybatis-config.xml-->

    ??????? <property name="configLocation" value="classpath:mybatis-config.xml"/>

    ??????? <!--掃描entity包,使用別名-->

    ??????? <property name="typeAliasesPackage" value="org.seckill.entity"/>

    ??????? <!--掃描sql配置文件:mapper需要的xml文件-->

    ??????? <property name="mapperLocations" value="classpath:mapper/*.xml"/>

    ??? </bean>


    查看全部
  • 2. ?配置數據庫連接池

    <!--2.數據庫連接池-->

    ??? <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

    ??????? <!--配置連接池基本屬性-->

    ??????? <property name="driverClass" value="${driver}"/>

    ??????? <property name="jdbcUrl" value="${url}"/>

    ??????? <property name="user" value="${username}"/>

    ??????? <property name="password" value="${password}"/>

    ??????? <!--c3p0連接池的私有屬性-->

    ??????? <property name="maxPoolSize" value="30"/>

    ??????? <property name="minPoolSize" value="10"/>

    ??????? <!--關閉鏈接后不自動commit-->

    ??????? <property name="autoCommitOnClose"value="false"/>

    ??????? <!--獲取鏈接超時時間-->

    ??????? <property name="checkoutTimeout" value="1000"/>

    ??????? <!--當獲取連接失敗時重試次數-->

    ??????? <property name="acquireRetryAttempts" value="2"/>

    ??? </bean>


    查看全部
  • 1. ?配置數據庫相關參數

    查看全部
  • 1)? 更少的編碼:只寫接口,不寫實現。接口能說明參數,行為,結果集。

    2)? 更少的配置:

    別名(原來是包名+類名 ?mybatis只需要寫原生的類名)

    自動掃描配置文件:XML文件

    Mapper自動實現DAO接口,并自動注入spring容器

    3)? 足夠的靈活性:自己定制SQL,自由傳參,結果集自動賦值

    XML提供SQL?? + ??DAO接口提供Mapper


    查看全部
  • 通過MyBatis實現實現SuccessKilledDao接口

    MyBatis核心的點在于可以自由控制SQL

    ?

    后續MyBatis如何整合SPRING以及如何編寫單元測試


    查看全部
  • 【mapper-SeckillDao.xml】

    Resource –> new -> directory創建一個目錄放置mybatis的sql的映射”mapper”

    在mapper下創建映射關系。Mapper->new->file創建SeckillDao.xml(命名規范:DAO的名字.xml).? 為DAO方法的接口提供sql語句

    實現SeckillDao.xml

    reduceNumber減庫存

    queryById根據id查詢秒殺對象

    queryALL根據偏移量查詢秒殺商品列表


    查看全部
  • 【mybatis-config.xml】

    Resource –> new -> file 創建一個mybatis全局的配置文件”mybatis-config.xml”

    從官方文檔找到mybatis的全局配置 XML的一個標簽約束

    <configuration>?

    <settings>


    查看全部
  • [SuccessKilledDao]

    InsertSuccssKilled 插入購買明細,可過濾重復

    queryByIdWithSeckill根據id查詢SuccessKilled并攜帶秒殺產品對象實體


    查看全部
  • 實現DAO的接口

    [SeckillDao]

    reduceNumber減庫存

    queryById根據id查詢秒殺對象

    queryALL根據偏移量查詢秒殺商品列表


    查看全部
  • mvn archetype:create -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp

    -DgroupId=org.seckill -DartifactId=seckill:標注項目的坐標

    org.seckill:項目名

    -DarchetypeArtifactId=maven-archetype-webapp:使用webapp原型去創建項目

    使用以上命令項目創建失敗


    mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp

    使用以上命令項目創建成功


    查看全部
  • mvn archetype:generate -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp

    創建成功

    查看全部
  • myBatis整合Spring目標

    查看全部
  • 初始的自增id設為1000

    AUTO_INCREMENT=1000


    查看全部
  • MySql有多重存儲引擎供我們使用,但是可以支持事務的存儲引擎只有InnoDB

    查看全部

舉報

0/150
提交
取消
課程須知
《Java高并發秒殺API》是系列課程,共四門課,分別為業務分析和DAO層,Service層,Web層和高并發優化。本門課程是第一門課程,學習前需要了解如下知識: 1、精通JavaWeb基礎 2、熟悉SpringMVC、Spring和MyBatis框架
老師告訴你能學到什么?
1、掌握秒殺業務 2、能夠進行SpringMVC+Spring+MyBatis的整合開發 3、能夠進行秒殺業務DAO層的設計與實現

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!