第一步:使用Maven命令创建webapp骨架项目
- 骨架xml,放进本地(你的目录默认.m2)
- 修改项目默认设置加入命令-DarchetypeCatalog=local
- cmd中执行
mvn archetype:generate -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeCatalog=local
4.最后结果:Buildsuccess
5.导入pom.xml
项目框架的搭建
- 修改自动生成内容 :web.xml中默认使用2.3版本(el表达式不工作),替换成高版本(tomcat下webapps/examples/WEB-INF/web.xml)
- 补全目录
补全依赖:
IDEA中pom自动提示
第一部分:日志
java日志:slf4j,log4j,logback,common-logging。其中slf4j是规范/接口,剩下的是实现。
这里使用的是:slf4j+logback形式
第二部分:数据库相关依赖
数据库驱动+连接池
//数据库驱动
<scope>runtime</scope>
第三部分:DAO依赖:这里使用的是mybatis
mybatis自身的依赖
mybatis和spring的整合
第四部分:servlet web相关依赖
standard+jstl+jackson+servlet-api
最重要的一个部分:spring依赖
spring核心依赖:core + beans + context
springdao层依赖:jdbc + tx(声明式事务)
spring web相关依赖:web + webmvc
spring test相关依赖: test
用手写方式来创建表
每个数据库表最好有一个“create_time”字段表示:该条记录创建时间
联合主键:可以过滤重复秒杀
补充:mysql 5.7.18 版本,字段名是加的` (反引号) ,而不是 ’ (单引号)。报错如下:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''seckill_id'
BIGINT NOT NULL AUTO_INCREMENT COMMENT ‘商品库存id’,
延伸 :MySQL中单引号、双引号和反引号的区别
- 反引号一般在Esc键的下方,和~在一起。它是为了区分MySQL的保留字与普通字符而引入的符号。
- 一般我们建表时都会将表名,库名都加上反引号来保证语句的执行度。
- 在标准 SQL 中,字符串使用的是单引号。
- MySQL对 SQL 的扩展,允许使用单引号和双引号两种。