联系人管理-添加/修改/删除联系人/条件查询/解决与客户之间的问题| CRM客户关系管理系统项目实战五(Struts2+Spring+Hibernate)解析+源代码

联系人管理-添加联系人| CRM客户关系管理系统项目实战五(Struts2+Spring+Hibernate)解析+源代码
联系人保存(添加联系人),修改联系人,删除联系人,条件查询联系人,解决与客户之间的问题,级联删除的问题

一、联系人保存(添加联系人)

1、跳转添加页面(跳转并查询客户)

(1)修改menu.jsp的跳转链接

在这里插入图片描述

(2)编写Action当中是saveUI的方法
  • 在LinkManAction设置注入注入客户管理的Service,customerService以及对应的set方法
    在这里插入图片描述
  • 在appliaction.xml当中的LinkManAction配置注入customerService
    在这里插入图片描述
  • 在LinkManAction,编写跳转的方法将查询的list集合放到值栈当中
    在这里插入图片描述
(3)编写业务层CustomerServiceImpl以及CustomerDaoImpl层的代码

在这里插入图片描述
在这里插入图片描述

(4)在struts.xml当中配置跳转

在这里插入图片描述

2、修改添加页面linkman/add.jsp(改成struts2的标签)

(1)引入Struts2的标签库

在这里插入图片描述

(2)在struts2的from标签的表单上写

在这里插入图片描述
使Struts的表单失效,因为原本Struts的表单就有样式,和css的效果可能混乱,所以在表单上添加theme=“simple”

(3)完善表单提交的路径

在这里插入图片描述

(4)修改表单内容

在这里插入图片描述

(5)测试效果

在这里插入图片描述

3、编写action的方法,在LinkManAction当中编写save方法以及service和dao

(1)编写LinkManAction当中的save方法

在这里插入图片描述

(2)在LinkManServiceImpl当中设置事务以及调用DAO层的save方法

在这里插入图片描述
在这里插入图片描述

(3)在LinkManDaoImpl当中保存linkman到持久层

在这里插入图片描述

(4)在struts.xml当中设置跳转

在这里插入图片描述

(5)测试

在这里插入图片描述
在这里插入图片描述

(6)改进上面的联系人性别相关的设置
  • 在数据库当中将性别设置为男为1,女为2
    在这里插入图片描述
  • 修改linkman的list.jsp,用<s:if></s:if>
    在这里插入图片描述
  • 判断显示对应的数据
    在这里插入图片描述

二、修改联系人

1、修改linkman下的list.jsp页面的跳转链接

在这里插入图片描述

2、编写action的edit方法

在LinkManAction当中编写跳转到编辑页面的方法:edit方法
在这里插入图片描述

3、LinkManServiceImpl

在这里插入图片描述

4、LinkManDaoImpl

在这里插入图片描述

5、在struts.xml当中修改跳转

在这里插入图片描述

6、修改linkman下的edit.jsp

  • 设置from表单提交的路径
    在这里插入图片描述
  • 设置表单属性
    在这里插入图片描述

7、编写LinkManAction当中的update方法

在这里插入图片描述

8、LinkManServiceImpl

在这里插入图片描述

9、LinkManDaoImpl

在这里插入图片描述

10、在struts.xml当中设置跳转

在这里插入图片描述

11、测试

在这里插入图片描述

  • 修改成功
    在这里插入图片描述

三、删除联系人

1、在linkman下的list.jsp修改删除的链接

在这里插入图片描述

2、编写LinkManAction中的delete方法

在这里插入图片描述

3、在LinkManServiceImpl当中

在这里插入图片描述

4、LinkManDaoImpl

在这里插入图片描述

5、在struts.xml当中设置跳转

在这里插入图片描述

6、测试

在这里插入图片描述

  • 成功删除
    在这里插入图片描述

四、条件查询联系人

1、修改linkman下的list.jsp列表页面

在这里插入图片描述

2、修改Action当中的findAll的方法

LinkManAction当中的findAll方法
在这里插入图片描述

3、测试成功

在这里插入图片描述

五、解决与客户之间的问题

1、级联删除的问题

  • 上面的这种情况下,当删除客户的时候无法级联删除联系人(造成数据的不正确),联系人当中的外键置为空
  • 级联删除,在客户删除的时候,先查询再删除
  • 在客户的映射上来进行配置
(1)设置级联删除
  • 在Customer.hbm.xml当中设置cascade=“delete”,将客户所关联的联系人一起删掉
    在这里插入图片描述
(2)测试(在此之前将数据库当中cst_linkman表当中的lkm_cust_id不能为空的属性去掉)
  • 客户的张三11111111111
    在这里插入图片描述
  • 联系人的张三222222222,属于客户张三111111111111111
    在这里插入图片描述
  • 删除张三111111
    在这里插入图片描述
  • 张三222 也被删除
    在这里插入图片描述

2、修改的问题:当修改客户的时候,联系人当中客户的内容会丢失

  • 因为在修改客户的时候没有查询联系人的集合,当我们点击修改,修改了客户(同时修改客户所关联的联系人),因为联系人的集合是空所以就会将外键置空。
  • 当点击修改的时候,页面上只有客户的信息,没有客户关联联系人的信息,也就是说提交的时候会将联系人的集合置空,并且会将客户当中所有的信息都修改包括外键关联的集合(空)。
  • 因为一的一方有外键维护权(客户),当集合为空的时候外键对应的值也为空,
  • 所以需要在一的一方放弃外键维护权
(1)在Customer.hbm.xml当中的 外键配置上设置放弃外键维护权

在这里插入图片描述

(2)测试
  • 联系人张三2222222对应客户张三111111111122222
    在这里插入图片描述
  • 客户张三1111222222
    在这里插入图片描述
  • 变成张三4444444444444
    在这里插入图片描述
  • 查看联系人
    所属客户修改成功
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/107612389