目录

前言

环境搭建

功能列表

查询所有

新增品牌

Servlet代码优化

批量删除

分页查询

条件查询

前端代码优化



前言

JavaWeb(B站黑马)学习笔记 14综合案例


黑马 java资料网盘_Web

环境搭建

新建项目

黑马 java资料网盘_黑马 java资料网盘_02

黑马 java资料网盘_java_03

<dependencies>
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

        <!--mysql 驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.24</version>
        </dependency>

        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <!--Fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>

        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>
        <!-- 添加logback-classic依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- 添加logback-core依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>

    </dependencies>

配置mybatis-config.xml文件

黑马 java资料网盘_servlet_04

项目目录结构

黑马 java资料网盘_开发语言_05

导入数据库      sql文件传不上来,手工建吧

黑马 java资料网盘_黑马 java资料网盘_06

功能列表

查询所有

黑马 java资料网盘_java_07

Dao层

黑马 java资料网盘_开发语言_08

Service层

通过接口实现类的方式编写service解除了web层和service层的耦合性,

当有第二个实现类直接更改为BrandServiceImpl2即可,不然service层代码发送变化的话servlet层也要变

就好比接口是商店,实现类是商品,商店不用换,卖的商品可换

黑马 java资料网盘_java_09

Web层

黑马 java资料网盘_servlet_10

brand.html

黑马 java资料网盘_黑马 java资料网盘_11

黑马 java资料网盘_黑马 java资料网盘_12

黑马 java资料网盘_java_13

黑马 java资料网盘_java_14

黑马 java资料网盘_黑马 java资料网盘_15

新增品牌

黑马 java资料网盘_java_16

Dao层

黑马 java资料网盘_servlet_17

Service层

黑马 java资料网盘_java_18

Web层

黑马 java资料网盘_黑马 java资料网盘_19

brand.html

黑马 java资料网盘_servlet_20

黑马 java资料网盘_servlet_21

黑马 java资料网盘_开发语言_22

Servlet代码优化

黑马 java资料网盘_java_23

黑马 java资料网盘_java_24

HttpServlet中的service负责方法的分发,通过自定义BaseServlet继承HttpServlet重写它的service进行方法分发   根据请求路径最后一段进行方法的分发

黑马 java资料网盘_黑马 java资料网盘_25

BaseServlet

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的法的功能称为java语言的反射机制。

在运行的过程中获取这个对象执行的方法

黑马 java资料网盘_servlet_26

黑马 java资料网盘_开发语言_27

BrandSeervlet

黑马 java资料网盘_servlet_28

黑马 java资料网盘_黑马 java资料网盘_29

批量删除

黑马 java资料网盘_java_30

Dao层

黑马 java资料网盘_Web_31

Service层

黑马 java资料网盘_Web_32

Web层

黑马 java资料网盘_黑马 java资料网盘_33

brand.html

黑马 java资料网盘_黑马 java资料网盘_34

黑马 java资料网盘_servlet_35

此方法为elementui自动获取

黑马 java资料网盘_servlet_36

黑马 java资料网盘_开发语言_37

黑马 java资料网盘_servlet_38

黑马 java资料网盘_开发语言_39

黑马 java资料网盘_黑马 java资料网盘_40

分页查询

分析

黑马 java资料网盘_黑马 java资料网盘_41

黑马 java资料网盘_开发语言_42

自定义model

黑马 java资料网盘_黑马 java资料网盘_43

黑马 java资料网盘_开发语言_44

Dao层

黑马 java资料网盘_Web_45

Service层

黑马 java资料网盘_黑马 java资料网盘_46

Web层

黑马 java资料网盘_开发语言_47

brand.html

黑马 java资料网盘_黑马 java资料网盘_48

黑马 java资料网盘_Web_49

黑马 java资料网盘_Web_50

黑马 java资料网盘_java_51

黑马 java资料网盘_java_52

黑马 java资料网盘_servlet_53

黑马 java资料网盘_开发语言_54

条件查询

黑马 java资料网盘_servlet_55

黑马 java资料网盘_开发语言_56

Dao层

黑马 java资料网盘_Web_57

细节一  条件查询传递参数有三个加了@Param(),写sql语句时使用Brand brand内的字段要加"brand.",如brand.brandName。多条件查询总记录数只传递了一个 直接使用brandName即可。

黑马 java资料网盘_黑马 java资料网盘_58

Service层

黑马 java资料网盘_开发语言_59

黑马 java资料网盘_黑马 java资料网盘_60

黑马 java资料网盘_开发语言_61

Web层

细节二 post提交可以既有url参数又有请求体参数

黑马 java资料网盘_Web_62

brand.html

黑马 java资料网盘_Web_63

细节三 查询所有和分页条件查询可以一起用,因为mybatis用了判断标签,所以当页面没有参数传递时查询语句直接是select * from tb_brand limit ?,?;

黑马 java资料网盘_开发语言_64

黑马 java资料网盘_Web_65

黑马 java资料网盘_java_66

黑马 java资料网盘_servlet_67

前端代码优化

es6新增特性:箭头函数 这样就不用进行搭桥操作了,直接用this即可,这里的this是代表Vue对象的,箭头函数会根据上下文判断this,这样更方便

箭头函数

黑马 java资料网盘_黑马 java资料网盘_68

搭桥操作

黑马 java资料网盘_开发语言_69