一.业务描述
基于Spring,MyBatis , SpringBoot , Thymeleaf技术实现商品模块的增删改查操作。从商品库查询商品信息,井格商品信息呈现在页面上
从商品库查询商品信息后,点击页面上删除超链接,基于id删除当前行记录
在Goods列表页面,添加添加按钮,进行添加页面,然后在添加页面输入商品相关信息,然后保存到数据库
在商品列表页面,点击update选项,基于商品id查询当前行记录然后格其更新到goods - update页面!
二.步骤:
项目环境初始化数据库初始化
创建项目并添加依赖(创建项目时指定项目核心依赖: JDBC API,MybatisFramwork, MySOLDriver, Thymeleaaf ,Spring web)
项目创建以后分析其结构
项目配置文件application. xml内容初始化
三.商品业务实现
1.查询Pojo类定义:定义Goods对象,用于封装从数据库查询到的商品信息。
在GoodsDao接口中定义商品查询方法以及SQL映射,基于此方法及SQL映射获取所有商品信息
GoodsService接口及商品查询方法定义, GoodsService接口实现类GoodsServiceImp1定义及方法实现
定义GoodsController类,井添加doGoodsUI方法,添加查询商品信息代码,井将查询到的商品信息存储到model,井返@goods页面。
在templates/ pages目录中添加goods . htm1页面,井在body中添加htm1元索,在运行内部使用thymeleaf标签届性获取数据
2.删除在GoodsDao接口中定义商品删除方法以及SQL映射
在GoodsService接口中添加删除方法,在GoodsService的实现类GoodsServiceImp1中添加deleteById方法实现
在GoodsController中的添加doDeleteById方法
在goods.htm1页面中添加删除超链接
3.添加在GoodsDao中添加用于保存商品信息的接口方法以及SQL映射
在GoodsService接口中添加业务方法,用于实现商品信息添加,在GoodsSerivceImpl类中添加接口方法实现
在GoodsController类中添加用于处理商品添加请求的方法
在GoodsController类中添加用于返回商品添加页面的方法
在templates的pages目录中添加goods - add . html页面
4.修改在GoodsDao中添加基于id查询商品信息的方法及SQL映射
在GoodsDao中添加基于id执行Goods商品更新的方法及SQL映射
在GoodsService中添加基于id查询商品信息和更新商品信息的方法
在GoodsServiceImpl中基于id查询商品信息和更新商品信息
在GoodsController中添加基于id查询商品信息
在GoodsController中添加更新商品信息
在templates目录中添加goods - update. htm1页面!
三、项目小节
1、项目结构小结Pojo包中用来存放Goods实体类,封装商品信息
在dao包中创建Dao接口,接口中定义查询、删除、添加(保存)方法和SQL映射
在service包中创建GoodService接口以及GoodsServiceImpl实现类,接口中定义查询、删除、添加等方法
controller包中存放GoodsController类,添加doGoodUI方法实现商品查询功能、doDeleteById方法实现
删除功能、saveGoods实现添加(保存功能)
其中html页面属于表示层,dao属于数据访问层,其中用于编写@Update、@Delete、@Update等注解及SQL语句,service属于业务逻辑层。
应用层逻辑:
2、三种常见的报错400:客户端提交的数据与服务端接收的参数不一致
解决方案:检查Goods类封装的属性,get和set方法等是否有拼写错误
404:访问资源不存在
解决方案:检查url是否编写正确,Controller类是否忘记添加注解
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
2、NullPointException
3、client href
4、restful url
5、thymeleaf cache
6、SQL完整性约束异常
7、依赖注入失败
8、连接数据库的url配置
9、path config
10、save goods
11、update goods
12、update page parse
13、thymeleaf Expressions