秒杀系统(四)——数据库设计及SSM整合搭建秒杀系统项目

目录

1.数据库表设计

1.1秒杀商品表字段

1.2秒杀订单表字段

1.3秒杀商品详情表字段

1.4秒杀系统用户表字段

1.5秒杀商家表字段

1.6建表SQL语句

2.秒杀系统项目搭建

2.1新建maven项目

2.2添加WEB-INF和web.xml

2.3添加配置文件

2.4创建包结构


 

1.数据库表设计

1.1秒杀商品表字段

  • 主键
  • 商品id
  • 标题
  • 商品图片
  • 原价格
  • 秒杀价格
  • 商家id
  • 添加日期
  • 审核日期
  • 审核转态
  • 开始时间
  • 结束时间
  • 秒杀商品数
  • 剩余库存数
  • 描述

 

1.2秒杀订单表字段

  • 主键
  • 秒杀商品id
  • 支付金额
  • 用户id
  • 商家id
  • 创建时间
  • 支付时间
  • 支付转态
  • 收货人地址
  • 收货人电话
  • 收货人
  • 交易流水号

 

1.3秒杀商品详情表字段

  • 主键
  • 商品id
  • 商家id
  • 商品产地
  • 商品名称
  • 品牌
  • 商品毛重
  • 规格和包装
  • 商品详情图片地址

 

1.4秒杀系统用户表字段

  • 主键
  • 用户姓名
  • 用户账号
  • 用户密码
  • 用户性别
  • 用户年龄
  • 用户住址
  • 用户邮箱

 

1.5秒杀商家表字段

  • 主键
  • 商家姓名
  • 商家店铺名称
  • 商家账号
  • 商家密码
  • 商家经营范围

1.6建表SQL语句


  
  1. DROP TABLE IF EXISTS `msmerchants`;
  2. CREATE TABLE `msmerchants` (
  3.   `merchantsid` int(100) NOT NULL AUTO_INCREMENT COMMENT '商家id,主键自动递增',
  4.   `merchantsname` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商家姓名',
  5.   `merchantsshop` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商家店铺名称',
  6.   `merchantsaccount` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商家账号',
  7.   `merchantspassword` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商家密码',
  8.   `merchantsscope` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '商家的经营范围',
  9.   PRIMARY KEY (`merchantsid`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  11. DROP TABLE IF EXISTS `msorder`;
  12. CREATE TABLE `msorder` (
  13.   `id` int(100) NOT NULL AUTO_INCREMENT COMMENT '主键,自动递增',
  14.   `productid` int(100) DEFAULT NULL COMMENT '秒杀商品ID',
  15.   `payamount` decimal(10,0) DEFAULT NULL COMMENT '支付金额',
  16.   `userid` int(100) DEFAULT NULL COMMENT '用户ID',
  17.   `merchantsid` int(100) DEFAULT NULL COMMENT '商家ID',
  18.   `creationtime` datetime DEFAULT NULL COMMENT '创建时间',
  19.   `paymenttime` datetime DEFAULT NULL COMMENT '支付时间',
  20.   `paymentstatus` int(5) DEFAULT NULL COMMENT '支付状态,0未支付,1已经支付',
  21.   `consigneeaddress` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人地址',
  22.   `consigneephone` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人电话',
  23.   `consignee` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '收货人',
  24.   `tradeserial` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '交易流水号',
  25.   PRIMARY KEY (`id`)
  26. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  27. DROP TABLE IF EXISTS `msproduct`;
  28. CREATE TABLE `msproduct` (
  29.   `id` int(100) NOT NULL AUTO_INCREMENT COMMENT '主键,自动递增',
  30.   `productid` int(100) NOT NULL COMMENT '商品ID',
  31.   `producttitle` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商品标题',
  32.   `productpicture` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '商品图片',
  33.   `originalprice` decimal(10,0) DEFAULT NULL COMMENT '原价格',
  34.   `msprice` decimal(10,0) DEFAULT NULL COMMENT '秒杀价格',
  35.   `merchantsid` int(100) DEFAULT NULL COMMENT '商家id',
  36.   `adddate` datetime DEFAULT NULL COMMENT '添加日期',
  37.   `auditdate` datetime DEFAULT NULL COMMENT '审核日期',
  38.   `reviewstatus` int(5) DEFAULT NULL COMMENT '审核状态,1通过,0未通过',
  39.   `starttime` datetime DEFAULT NULL COMMENT '开始时间',
  40.   `endtime` datetime DEFAULT NULL COMMENT '结束时间',
  41.   `msproductnumber` int(100) DEFAULT NULL COMMENT '秒杀商品数',
  42.   `remaininginventory` int(100) DEFAULT NULL COMMENT '剩余库存',
  43.   `describe` varchar(555) COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
  44.   PRIMARY KEY (`id`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  46. DROP TABLE IF EXISTS `msproductdetails`;
  47. CREATE TABLE `msproductdetails` (
  48.   `id` int(100) NOT NULL AUTO_INCREMENT COMMENT '主键,自动递增',
  49.   `productid` int(100) DEFAULT NULL COMMENT '秒杀商品id',
  50.   `merchantsid` int(100) DEFAULT NULL COMMENT '商家ID',
  51.   `productaddress` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '商品产地',
  52.   `productname` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '商品名称',
  53.   `brand` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '品牌',
  54.   `productweight` double(100,0) DEFAULT NULL COMMENT '商品毛重',
  55.   `productpacking` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '规格和包装',
  56.   `imgaddress` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '商品详情图片地址',
  57.   PRIMARY KEY (`id`)
  58. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  59. DROP TABLE IF EXISTS `msuser`;
  60. CREATE TABLE `msuser` (
  61.   `userid` int(100) NOT NULL AUTO_INCREMENT COMMENT '主键,用户id自动递增',
  62.   `username` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用户姓名',
  63.   `useraccount` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用户账号',
  64.   `userpassword` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用户密码',
  65.   `usersex` varchar(5) COLLATE utf8_bin DEFAULT NULL COMMENT '用户性别',
  66.   `userage` int(50) DEFAULT NULL COMMENT '用户年龄',
  67.   `useraddress` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '用户住址',
  68.   `useremail` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用户邮箱',
  69.   PRIMARY KEY (`userid`)
  70. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

2.秒杀系统项目搭建

2.1新建maven项目

pom.xml 中添加依赖


  
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2.   <modelVersion>4.0.0</modelVersion>
  3.   <groupId>com.albertyy</groupId>
  4.   <artifactId>MsProduct</artifactId>
  5.   <version>0.0.1-SNAPSHOT</version>
  6.   <packaging>war</packaging>
  7.   <dependencies>
  8.        <dependency> 
  9.       <groupId>junit</groupId> 
  10.       <artifactId>junit</artifactId> 
  11.       <version>4.10</version> 
  12.       <scope>test</scope> 
  13.     </dependency> 
  14.     
  15.     <!-- 数据源 --> 
  16.     <dependency> 
  17.         <groupId>commons-dbcp</groupId> 
  18.         <artifactId>commons-dbcp</artifactId> 
  19.         <version>1.4</version> 
  20.     </dependency> 
  21.     
  22.        <dependency> 
  23.        <groupId>mysql</groupId> 
  24.        <artifactId>mysql-connector-java</artifactId> 
  25.        <version>5.1.38</version> 
  26.     </dependency> 
  27.     
  28.     <!-- Mybatis3.4.1 --> 
  29.     <dependency> 
  30.         <groupId>org.mybatis</groupId> 
  31.         <artifactId>mybatis</artifactId> 
  32.         <version>3.4.1</version> 
  33.     </dependency> 
  34.     
  35.     <!-- spring整合mybatis --> 
  36.     <dependency> 
  37.         <groupId>org.mybatis</groupId> 
  38.         <artifactId>mybatis-spring</artifactId> 
  39.         <version>1.3.0</version> 
  40.     </dependency> 
  41.     
  42.     <!-- Spring-4.2.0 --> 
  43.     <dependency> 
  44.         <groupId>org.springframework</groupId> 
  45.         <artifactId>spring-web</artifactId> 
  46.         <version>4.2.0.RELEASE</version> 
  47.     </dependency> 
  48.     
  49.     <dependency> 
  50.         <groupId>org.springframework</groupId> 
  51.         <artifactId>spring-orm</artifactId> 
  52.         <version>4.2.0.RELEASE</version> 
  53.     </dependency> 
  54.     
  55.     <dependency> 
  56.         <groupId>org.springframework</groupId> 
  57.         <artifactId>spring-expression</artifactId> 
  58.         <version>4.2.0.RELEASE</version> 
  59.     </dependency>
  60.       
  61.   </dependencies>
  62. </project>

 

2.2添加WEB-INF和web.xml

Web.xml:


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  5. <context-param>
  6.     <param-name>contextConfigLocation</param-name>
  7.     <param-value>
  8.         classpath:application-context.xml
  9.     </param-value>
  10.   </context-param>
  11.  
  12. <filter>
  13.     <filter-name>characterEncodingFilter</filter-name>
  14.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  15.     <init-param>
  16.         <param-name>encoding</param-name>
  17.         <param-value>UTF-8</param-value>
  18.     </init-param>
  19.   </filter>
  20.   <filter-mapping>
  21.     <filter-name>characterEncodingFilter</filter-name>
  22.     <url-pattern>/*</url-pattern>
  23.   </filter-mapping>
  24.   <listener>
  25.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  26.   </listener>
  27.   <listener>
  28.     <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  29.   </listener>
  30.   <servlet>
  31.     <servlet-name>spring</servlet-name>
  32.     <servlet-class>
  33.       org.springframework.web.servlet.DispatcherServlet
  34.     </servlet-class>
  35.     <load-on-startup>1</load-on-startup>
  36.   </servlet>
  37.   <servlet-mapping>
  38.     <servlet-name>spring</servlet-name>
  39.     <url-pattern>/*</url-pattern>
  40.   </servlet-mapping>
  41.   <display-name>Archetype Created Web Application</display-name>
  42.   </web-app>

 

2.3添加配置文件

application-context.xml


  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" 
  3.   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 
  4.   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:cache="http://www.springframework.org/schema/cache" 
  5.   xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans 
  6.      http://www.springframework.org/schema/beans/spring-beans.xsd 
  7.     http://www.springframework.org/schema/aop 
  8.     http://www.springframework.org/schema/aop/spring-aop.xsd 
  9.     http://www.springframework.org/schema/context 
  10.     http://www.springframework.org/schema/context/spring-context.xsd 
  11.     http://www.springframework.org/schema/tx 
  12.     http://www.springframework.org/schema/tx/spring-tx.xsd 
  13.      http://www.springframework.org/schema/cache 
  14.     http://www.springframework.org/schema/cache/spring-cache.xsd"
  15.      
  16.     <!-- 自动扫描 --> 
  17.     <context:component-scan base-package="com.albertyy.*"/> 
  18.     <!-- 引入外置文件 --> 
  19.     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  20.         <property name="location" value="classpath:jdbc.properties"/> 
  21.     </bean> 
  22.     
  23.     <!--数据库连接池配置--> 
  24.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">   
  25.         <property name="driverClassName" value="${jdbc.driverClassName}"/> 
  26.         <property name="url" value="${jdbc.url}"/> 
  27.         <property name="username" value="${jdbc.username}"/> 
  28.         <property name="password" value="${jdbc.password}"/> 
  29.     </bean> 
  30.   
  31.     <!-- spring和MyBatis完美整合 --> 
  32.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
  33.         <!-- 指定数据源 --> 
  34.         <property name="dataSource" ref="dataSource"/> 
  35.         <!-- 具体指定xml文件,可不配 --> 
  36.         <property name="configLocation" value="classpath:mybatis-config.xml"/> 
  37.         <!-- 自动扫描mapping.xml文件,**表示迭代查找 ,,也可在mybatis-config.xml中单独指定xml文件 --> 
  38.         <property name="mapperLocations" value="classpath:com/albertyy/seckill/dao/xml/PersonDao.xml"/> 
  39.     </bean> 
  40.   
  41.     <!-- 自动扫描dao下的所有dao接口,并实现这些接口,可直接在程序中使用dao接口,不用再获取sqlsession对象 --> 
  42.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  43.     
  44.         <!-- 
  45.         basePackage 属性是映射器接口文件的包路径。 
  46.                  你可以使用分号或逗号 作为分隔符设置多于一个的包路径 
  47.         --> 
  48.         <property name="basePackage" value="com/albertyy/seckill/dao"/> 
  49.         <!-- 
  50.                  因为会自动装配 SqlSessionFactory和SqlSessionTemplate 
  51.                  所以没 有 必 要 去 指 定 SqlSessionFactory或 SqlSessionTemplate 
  52.                  因此可省略不配置; 
  53.                  但是,如果你使 用了一个 以上的 DataSource,那么自动装配可能会失效。 
  54.                  这种 情况下,你可以使用sqlSessionFactoryBeanName或sqlSessionTemplateBeanName属性来设置正确的 bean名称来使用; 
  55.         --> 
  56.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> 
  57.     </bean> 
  58.     
  59.     <!-- 事务管理器  --> 
  60.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  61.         <property name="dataSource" ref="dataSource" /> 
  62.     </bean>   
  63.    
  64.     <!-- 使用声明式事务   -->
  65.     <tx:annotation-driven transaction-manager="txManager" />
  66. </beans>  

jdbc.properties


  
  1. jdbc.driverClassName=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
  3. jdbc.username=root
  4. jdbc.password=123456

mybatis-config.xml


  
  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2. <!DOCTYPE configuration 
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5.   
  6. <configuration> 
  7. <typeAliases> 
  8.         <!-- 别名定义 -->
  9.         <typeAlias type="com.albertyy.seckill.entity.Person" alias="person" />
  10.     </typeAliases>
  11.     
  12. </configuration> 

 

2.4创建包结构

 

 

文章来源: albertyang.blog.csdn.net,作者:Albert Yang,版权归原作者所有,如需转载,请联系作者。

原文链接:albertyang.blog.csdn.net/article/details/86766383

(完)