Java高并发秒杀 API_业务分析与DAO层

写在前面

之前想要做这个东西,但是由于种种原因,去做了 django。今天我们要开始 Java Spring 框架的学习


相关技术

  1. MySql
  • 表设计
  • SQL 技巧
  • 事务和行级锁
    这个不知道是什么东西
  1. MyBatis
  • DAO 层设计与开发
  • MyBatis合理使用
  • MyBatis 和 Spring 整合
  1. Spring
  • Spring IOC整合 Service
    这里是说依赖注入
  • 声明式事务运用
  1. SpringMVC
  • Restful 接口设计和使用
  • 框架运作流程
  • Controller 开发技巧
  1. 前端
  • 交互设计
  • Bootstrap
  • jQuery
    插件、ajax等等
  1. 高并发
  • 高并发分析
  • 优化思路和实现

2-2 创建项目和依赖

基于 Maven 创建项目

这里不要用命令行做,直接用 idea 来创建maveb项目就行了。一路next,然后 groupId 和 artifactId 按照他给的输入就行。


4-1 数据库设计与编码

这里的数据库设计与编码,就是跟我们 django 中 Models 的设计是一样的。不过在 java 后台中,没有类似对应的可以直接操作数据库的模块,需要我们手动写入数据库。所以才说为什么 SQL 语言或者说 数据库相关知识很重要。
这个教学中,我们在 main 目录下新建了一个 sql 目录,用于存放数据库表单相关的配置情况(数据库初始化脚本),这里命名为 schema.sql
最终呢,需要手动到 mysql 中将这些命令执行,从而创建相关的表单和字段。


4-2 DAO 实体和接口编码

创建实体 entity

对应上一步创建的2个表单,这里需要创建两个实体(entity)类,其中类对应一个表单,类中的成员对应一个字段,同时在类中写入成员的 get & set 方法(快捷键 alt+insert)。


dao实体
实体类内部定义
创建dao接口
dao接口

这里都是 interface 并不是 class,因为没有涉及具体实现。


4-3 基于 myBatis实现 DAO 理论

MyBatis 用来做什么

实际上,MyBatis就是在做映射关系,将数据库和我们上一步创建的实体对象二者联系起来。


MyBatis映射数据库和entity
MyBatis 特点

特点就是需要参数 和 SQL 语言,来最终实现对DAO层实体接口的实现。


MyBatis特点
MyBatis怎么用
  • SQL 写在哪里
    这里我们使用 XML 提供 SQL
  • 如何实现 DAO接口
    这里我们使用 Mapper 自动实现DAO接口。就是说我们的DAO只需要写接口,不用写具体的实现类。只需要告诉 MyBatis 参数的类型,返回的类型等等。

4-4 基于 MyBatis 实现 DAO 编程

MyBatis配置

首先配置 MyBatis mybatis-config.xml,再创建一个 mapper目录用于存放 sql 的映射。都放在 Resource 下


MyBatis配置和mapper

这里有很多配置,包括驼峰命名转换,表的列明转换等等。


MyBatis配置
Mapper中映射的实现

在Mapper目录下,对应前面创建的两个 DAO 接口,这里创建两个mapper的 xml(前面说过这里通过 xml来提供 sql语句)。


mapper中映射的实现

4-6 MyBatis整合 Spring 理论

整合目标
  • 更少的编码
    只写接口,不写实现。


    接口能说明很多事
  • 更少的配置
    1.别名:MyBatis可以自动扫描,不用写包名,自动可以扫描到我们写的类名
    2.配置扫描:自动扫描配置文件。就是这里 dao 对应的sql文件有很多,但是我们并不需要维持一个配置文件。
    3.dao实现:自动实现 DAO 接口,自动注入Spring 容器

  • 足够灵活性
    可以自由传递参数,自由编写 sql

4-7 MyBatis整合 Spring 编码

Spring 配置

在 Resources 目录下,创建 Spring目录,用于存放 spring 的相关配置。首先,新建一个 spring-dao.xml,用于指定dao层的 spring 配置。在这里,具体要配置的有

  • 数据库相关参数
  • 数据库的连接池
  • SQLSessionFactory对象
  • 扫描dao接口包

4-8 DAO层单元测试编码和问题排查

这些测试代码写在test目录下。
我们在 dao层的接口代码中,右键 goto test ,来创建 junit4 的测试代码。idea就会自动在对应的包和目录下创建相关的 test 代码。

配置 Spring 和 junit 整合

整合是为了让 junit 启动时,加载 springIOC 容器。
需要 @RunWith() 接口来加载spring 容器
同时告诉 junit spring的配置文件


配置 Spring 和 junit 整合
注入依赖
test注入 Dao依赖

其实就好像是给一个 Dao 对象而已。

测试代码

之后就是开始编写测试代码了。


具体测试代码

通过就说明我们之前做的所有的关于 DAO 层的工作完成了。

你可能感兴趣的:(Java高并发秒杀 API_业务分析与DAO层)