SpringBoot小结

一.业务描述

基于Spring,MyBatis , SpringBoot , Thymeleaf技术实现商品模块的增删改查操作。

  1. 从商品库查询商品信息,井格商品信息呈现在页面上
  2. 从商品库查询商品信息后,点击页面上删除超链接,基于id删除当前行记录
  3. 在Goods列表页面,添加添加按钮,进行添加页面,然后在添加页面输入商品相关信息,然后保存到数据库
  4. 在商品列表页面,点击update选项,基于商品id查询当前行记录然后格其更新到goods - update页面!SpringBoot小结_第1张图片

二.步骤:

项目环境初始化

  1. 数据库初始化
  2. 创建项目并添加依赖(创建项目时指定项目核心依赖: JDBC API,MybatisFramwork, MySOLDriver, Thymeleaaf ,Spring web)
  3. 项目创建以后分析其结构
  4. 项目配置文件application. xml内容初始化

三.商品业务实现

1.查询

  1. Pojo类定义:定义Goods对象,用于封装从数据库查询到的商品信息。
  2. 在GoodsDao接口中定义商品查询方法以及SQL映射,基于此方法及SQL映射获取所有商品信息
  3. GoodsService接口及商品查询方法定义, GoodsService接口实现类GoodsServiceImp1定义及方法实现
  4. 定义GoodsController类,井添加doGoodsUI方法,添加查询商品信息代码,井将查询到的商品信息存储到model,井返@goods页面。
  5. 在templates/ pages目录中添加goods . htm1页面,井在body中添加htm1元索,在运行内部使用thymeleaf标签届性获取数据

2.删除

  1. 在GoodsDao接口中定义商品删除方法以及SQL映射
  2. 在GoodsService接口中添加删除方法,在GoodsService的实现类GoodsServiceImp1中添加deleteById方法实现
  3. 在GoodsController中的添加doDeleteById方法
  4. 在goods.htm1页面中添加删除超链接

3.添加

  1. 在GoodsDao中添加用于保存商品信息的接口方法以及SQL映射
  2. 在GoodsService接口中添加业务方法,用于实现商品信息添加,在GoodsSerivceImpl类中添加接口方法实现
  3. 在GoodsController类中添加用于处理商品添加请求的方法
  4. 在GoodsController类中添加用于返回商品添加页面的方法
  5. 在templates的pages目录中添加goods - add . html页面

4.修改

  1. 在GoodsDao中添加基于id查询商品信息的方法及SQL映射
  2. 在GoodsDao中添加基于id执行Goods商品更新的方法及SQL映射
  3. 在GoodsService中添加基于id查询商品信息和更新商品信息的方法
  4. 在GoodsServiceImpl中基于id查询商品信息和更新商品信息
  5. 在GoodsController中添加基于id查询商品信息
  6. 在GoodsController中添加更新商品信息
  7. 在templates目录中添加goods - update. htm1页面!

    SpringBoot小结_第2张图片

三、项目小节

1、项目结构小结

  1. Pojo包中用来存放Goods实体类,封装商品信息
  2. 在dao包中创建Dao接口,接口中定义查询、删除、添加(保存)方法和SQL映射
  3. 在service包中创建GoodService接口以及GoodsServiceImpl实现类,接口中定义查询、删除、添加等方法
  4. controller包中存放GoodsController类,添加doGoodUI方法实现商品查询功能、doDeleteById方法实现
  5. 删除功能、saveGoods实现添加(保存功能)
  6. 其中html页面属于表示层,dao属于数据访问层,其中用于编写@Update、@Delete、@Update等注解及SQL语句,service属于业务逻辑层。

应用层逻辑:

SpringBoot小结_第3张图片

2、三种常见的报错

  1. 400:客户端提交的数据与服务端接收的参数不一致
    解决方案:检查Goods类封装的属性,get和set方法等是否有拼写错误
  2. 404:访问资源不存在
    解决方案:检查url是否编写正确,Controller类是否忘记添加注解
  3. 500:服务器端出现错误
    解决方案:查看控制台中的caused by

3、判断接口上是否有注解:

1. 方法一:

Class cls=GoodsDao.class;//获得接口的字节码对象
boolean flag=clsisAnnotationPresent(Mapper.class);//判断Mapper注解是否在cls上
System.out.println(flag);

2.方法二:
Mapper mapper=cls.getDeclaredAnnotation(Mapper.class);//获取指定的声明的注释类型的声明的注释

 if(mapper!=null) {
     System.out.println("GoodDao接口上有mapper注解");
 }

获取GoodsDao中findGoods方法上的@Select注解中的SQL语句

 Method method=cls.getDeclaredMethod("findGoods");
Select select=method.getDeclaredAnnotation(Select.class);
     String sql=select.value();
     System.out.println(sql);
 }

四.项目启动及运行过程中出现的问题和分析

1、基于Spring.MyBatis,SpringBgot.Thymeleaf技术实现商品模块的增删改查操作。在创建项目时,要添加指定依赖:

JDBC API
Mxbatis Framework
MySQL Driver
Tbymeleaf
Spring Web


Paio,类用于封装从数据库查询到商品的信息心
Dao接口中定义商品查询方法以及SQL映射获取所有商品信息+
Service接口定义商品查询方法。
Service接口实现类实现查询方法。
GoodsController控制层添加doGoodsUl方法,添加商品查询代码,并将查询到的商品信息存储到model中,并返回给页面。

2、项目启动及运行时可能发成生的问题,例如:

(1)数据库连接不上

1.检查连接池的url和账号配置。
2.检查本地连接是否可以连接到数据库。
3. Mysgl 服务是否启动

(2)模板不存

1.配置文件中的前缀或后缀不正确.
2.没有按配置路径存放
3.输入过程 单词是否正确
4.路径是否缺少

实战总结:

1、NoSuchBeanException
image

2、NullPointException

image
3、client href

image

4、restful url

image

5、thymeleaf cache
image

6、SQL完整性约束异常
SpringBoot小结_第4张图片

7、依赖注入失败
SpringBoot小结_第5张图片
8、连接数据库的url配置

SpringBoot小结_第6张图片

9、path config
image

10、save goods

image
11、update goods

image
12、update page parse

image
13、thymeleaf Expressions

image

你可能感兴趣的:(java,spring,springboot)