美文网首页
Java高并发秒杀 API_业务分析与DAO层

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

作者: MikeShine | 来源:发表于2019-11-13 19:30 被阅读0次

    写在前面

    之前想要做这个东西,但是由于种种原因,去做了 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层

          本文链接:https://www.haomeiwen.com/subject/rrukictx.html