ssm项目:制造装备物联及生产管理平台(ERP项目)
本人负责模块:人员监控和系统管理
人员监管模块:
部门管理分模块:
需求:实现增删改查功能
一、 select查询所有:
操作流程:
通过dao层接口的select注解中添加的sql语句,从Database中取出数据
service层中定义一个包含查询所有方法的接口,再添加service接口的实现类,实现类中通过@Autowired注解,取一个dao,在实现类中重写findAll方法;findAll方法中通过调用dao的方法实现DB中的方法调取到service层。
前面调取DB数据的步骤可以通过写测试类判断成功与否。
二、新增操作
操作流程:
首先需要响应的是点击增删改刷新四个按钮的通用方法,即请求名为add_judge、update_judge、delete_judge,统一响应方式为下图
点击添加按钮后会弹出一个弹窗,显示的是一个jsp页面,所以需要添加一个返回department_add字符串的方法,略过;
在弹出的jsp页面中填写好我们的部门名称后就可以执行插入数据的操作了,总体逻辑是:前台(直接将提交的数据封装成一个对象)——>Controller用一个方法直接接收其作为参数,再作为serviceImpl的方法,serviceImpl内部通过dao的方法判断其有没有插入成功。
注意:
此处的dao层和service层的方法的返回值,前者是int,后者是boolean
为什么能dao层的insert方法是向数据库中插入数据,却会返回一个int的数值类型呢?
数据库插入数据的操作成功,都会返回一个数值,表示影响了多少行,所以可以以此判断数据插入成功与否。
又因为在前台传来的这个请求,它要求的返回值类型为Json,如下图
所以在controller 中的判断逻辑如下:
技术难点和碰到的Bug总结
问题1.
取出的数据部分可以正常显示,部分数据的值为null
适用范围:所有存在从Database取数据的操作
原因:JavaBean的成员变量名称与数据库里表的属性名不匹配,导致取不出数据。
解决办法:在dao层的取数据的方法之前加一个@Results注解,如下图
问题2:
如何在前台Jsp页面显示增删改查按钮?如下图
解决办法:
在这个界面对应的controller中 实现查询所有的方法中添加如下代码:
原理未理解,复习下httpServletRequest再回来看
问题3:
BUG
Bug1:
@RequestMapping注解正常,方法也正常编写,但是返回类型为Json数据的请求始终报404找不到资源的异常
原因:响应请求类型为Json数据的方法,想要正常返回一个Json数据集,必须在方法上方加上一个注解:@ResponseBody,这样才能够正常的返回Json数据集