为了账号安全,请及时绑定邮箱和手机立即绑定

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下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!