修改客户列表页面上的链接地址

编写web层

首先,我们要在CustomerAction类中编写一个删除客户的方法。删除客户时,我们一定得先查询再删除,为什么啊?因为到时候咱可以做级联删除,即在删除客户的时候,顺便把这个客户下面的联系人也删掉,如果你不先查询再删除,那么你只能删客户,这个客户下面的联系人是删不掉的。还有一点需要考虑,就是我们在删除客户的时候,如果这个客户有客户资质图片,那么这图片需不需要删除掉呢?假设需要将这图片删除掉了,那我们肯定得知道图片的路径,图片的路径也得从数据库里面查询出来。总而言之,删除客户时,咱得先查询再删除。

然后,我们还得在Struts2配置文件中(即struts.xml)对CustomerAction进行如下的配置,即删除客户成功后,直接重定向到客户列表展示页面中。

编写service层

首先,在CustomerService接口中添加一个根据客户ID查询客户的方法声明和一个删除客户的方法声明,如下:

package com.meimeixia.crm.service;import org.hibernate.criterion.DetachedCriteria;import com.meimeixia.crm.domain.Customer;
import com.meimeixia.crm.domain.PageBean;/*** 客户管理类的业务层的接口* @author liayun**/
public interface CustomerService {void save(Customer customer);PageBean<Customer> fingByPage(DetachedCriteria detachedCriteria, Integer currentPage, Integer pageSize);Customer findById(Long cust_id);void delete(Customer customer);}

然后,在以上接口的一个实现类(CustomerServiceImpl.java)中去实现上面两个方法。

package com.meimeixia.crm.service.impl;import java.util.List;import org.hibernate.criterion.DetachedCriteria;
import org.springframework.transaction.annotation.Transactional;import com.meimeixia.crm.dao.CustomerDao;
import com.meimeixia.crm.domain.Customer;
import com.meimeixia.crm.domain.PageBean;
import com.meimeixia.crm.service.CustomerService;/*** 客户管理的业务层的实现类* @author liayun**/
@Transactional
public class CustomerServiceImpl implements CustomerService {//注入客户的daoprivate CustomerDao customerDao;public void setCustomerDao(CustomerDao customerDao) {this.customerDao = customerDao;}//业务层保存客户的方法@Overridepublic void save(Customer customer) {customerDao.save(customer);}//业务层分页查询客户的方法@Overridepublic PageBean<Customer> fingByPage(DetachedCriteria detachedCriteria, Integer currentPage, Integer pageSize) {PageBean<Customer> pageBean = new PageBean<Customer>();//封装当前的页数pageBean.setCurrentPage(currentPage);//封装每页显示的记录数pageBean.setPageSize(pageSize);//封装总记录数//得调用dao来查询Integer totalCount = customerDao.findCount(detachedCriteria);pageBean.setTotalCount(totalCount);//封装总页数Double tc = totalCount.doubleValue();Double num = Math.ceil(tc / pageSize);pageBean.setTotalPage(num.intValue());//封装每页显示的数据集合Integer begin = (currentPage - 1) * pageSize;//计算从哪儿开始?List<Customer> list = customerDao.findByPage(detachedCriteria, begin, pageSize);pageBean.setList(list);return pageBean;}//业务层根据id去查询客户的方法@Overridepublic Customer findById(Long cust_id) {return customerDao.findById(cust_id);}//业务层删除客户的方法@Overridepublic void delete(Customer customer) {customerDao.delete(customer);}}

编写dao层

首先,在CustomerDao接口中添加一个根据客户ID查询客户的方法声明和一个删除客户的方法声明,如下:

package com.meimeixia.crm.dao;import java.util.List;import org.hibernate.criterion.DetachedCriteria;import com.meimeixia.crm.domain.Customer;/*** 客户管理的dao的接口* @author liayun**/
public interface CustomerDao {void save(Customer customer);Integer findCount(DetachedCriteria detachedCriteria);List<Customer> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize);Customer findById(Long cust_id);void delete(Customer customer);}

然后,在以上接口的一个实现类(CustomerDaoImpl.java)中去实现上面的两个方法。

package com.meimeixia.crm.dao.impl;import java.util.List;import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;import com.meimeixia.crm.dao.CustomerDao;
import com.meimeixia.crm.domain.Customer;/*** 客户管理的dao的实现类* @author liayun**/
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {//dao中保存客户的方法@Overridepublic void save(Customer customer) {this.getHibernateTemplate().save(customer);}//dao中带条件去统计个数的方法@Overridepublic Integer findCount(DetachedCriteria detachedCriteria) {//还得给DetachedCriteria对象设置条件,你要没设置条件,就查询所有了。//因为我们现在要发送类似select count(*) from xxx where [条件]这样的sql语句detachedCriteria.setProjection(Projections.rowCount());List<Long> list = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);if (list.size() > 0) {return list.get(0).intValue();}return null;}//dao中分页查询客户的方法@Overridepublic List<Customer> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize) {//在查询之前,先要把DetachedCriteria对象中的count那个地方给清空掉,去掉之后,默认就是查所有detachedCriteria.setProjection(null);return (List<Customer>) this.getHibernateTemplate().findByCriteria(detachedCriteria, begin, pageSize);}//dao中根据id去查询客户的方法@Overridepublic Customer findById(Long cust_id) {return this.getHibernateTemplate().get(Customer.class, cust_id);}//dao中删除客户的方法@Overridepublic void delete(Customer customer) {this.getHibernateTemplate().delete(customer);}}

至此,客户管理模块中删除客户的功能,我们就已经实现了,至于测试的话,我就不再这里测试了(偷懒了),反正是好使的!

CRM客户关系管理系统开发第七讲——实现客户管理模块中删除客户的功能相关推荐

  1. CRM客户关系管理系统开发第十三讲——实现联系人管理模块中修改联系人的功能

    修改联系人列表页面上的链接地址 编写LinkManAction的edit方法 首先,我们要在LinkManAction类中编写一个跳转到联系人编辑页面的方法.在该方法中,我们不仅要查询出某个联系人,而 ...

  2. CRM客户关系管理系统开发第十七讲——实现客户拜访记录管理模块中分页查询客户拜访记录列表的功能

    在CRM客户关系管理系统中,客户的拜访是很重要的一个环节,由业务员面见客户并介绍公司的相关的业务,在业务员回到公司以后,需要对此次的拜访的整个过程记录下来,记录中需要包含拜访的客户的姓名,拜访的时间以 ...

  3. 联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码

    联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码 客户拜访记录的列表的显示, 客户拜访记录的保存, 客户拜访记录查询(条件 ...

  4. CRM客户关系管理系统开发第十八讲——实现客户拜访记录管理模块中保存客户拜访记录的功能

    跳转到客户拜访记录添加页面 要想实现客户拜访记录管理模块中的保存客户拜访记录的功能,首要前提就是点击新增客户拜访超链接之后要能跳转到客户拜访记录添加页面.前面我们都做完两个模块了,做到这一点还不是依葫 ...

  5. java计算机毕业设计-移动公司crm客户关系管理系统开发与实现-源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计-移动公司crm客户关系管理系统开发与实现-源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计-移动公司crm客户关系管理系统开发与实现-源程序+mysql+系 ...

  6. CRM客户关系管理系统开发第一讲——搭建开发环境

    这个小项目是我们学习完Spring,Hibernate,Struts2这三个框架后,为了加深对它们的理解所做的SSH项目,为CRM客户关系管理系统. CRM客户关系管理系统的概述 什么是CRM客户关系 ...

  7. CRM客户关系管理系统开发第十九讲——实现客户拜访记录管理模块中条件查询客户拜访记录列表的功能

    在客户拜访记录列表页面上准备一些筛选条件 首先,咱得在客户拜访记录列表页面上准备一些筛选条件,不妨我们按照拜访时间来进行筛选.之前咱在实现联系人管理模块中条件查询联系人列表的功能时,文本输入框使用的是 ...

  8. PHP客户关系项目,【php源码】最新企业客户关系管理系统CRM源码|Thinkphp开发企业客户关系管理系统响应式源码 线索发掘、商机转化、客户挖掘、客户关怀、报表统计等...

    源码介绍: 悟空CRM主要面向于中小型企业,帮助中小型企业降低工作强度,提升工作效率,并有效提升项目成功率,提高企业效益. 悟空CRM能全面跟踪业务员的项目跟进流程,从线索录入.商机转换.成为客户,到 ...

  9. CRM客户关系管理系统开发第二讲——实现用户的注册和登录功能

    实现用户注册功能 创建用户表 首先创建一个数据库(例如crm),并在该数据库下新建一张用户表,笔者这里使用的数据库是MySQL. create database crm; use crm;CREATE ...

  10. 电销CRM客户关系管理系统开发12大核心功能

    电销CRM管理系统软件是一款专门针对电销行业开发的客户关系管理软件,它能够帮助企业实现对顾客信息的可视化,智能化,自动化管理,提高电销效率和客户满意度.电销行业在传统互联网营销,新媒体营销,短视频营销 ...

最新文章

  1. 优化嵌套查询 || 优化OR条件
  2. 用MFC显示一张图片
  3. 正点原子stm32f429 pcb_正点原子【STM32-F407探索者】第十六章 电容触摸按键实验
  4. Google小组研发模式分析
  5. LeetCode 547. 朋友圈(图的遍历BFS DFS)
  6. Spark SQL and DataFrame Guide(1.4.1)——之DataFrames
  7. Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引@51cto)
  8. hdu 2234(IDA*)
  9. 如何在JavaWeb程序中使用tld文件
  10. 爬虫mm131明星照片
  11. asp.net实现一个简易购物车功能。
  12. 给 QuickTime 播放器添加方向键快进/快退功能
  13. php第三方支付宝支付,第三方对接-支付宝支付接入教程
  14. 从桌面运维转到网工后,我是怎样成为大厂高级网工的
  15. 关于JPsh极光推送的基本用法和通知介绍
  16. springboot页面模板thymeleaf的简单用法
  17. 大型网站技术架构-读后感
  18. iPad最值得期待的切实改进构想
  19. 2022 VeLO: Training Versatile Learned Optimizers by Scaling Up
  20. sqoop导入时候显示ERROR

热门文章

  1. 股指期货开户的条件和流程
  2. 学习:对抗神经网络 - 恶意软件
  3. 永磁同步电机最大转矩电流比(PMSM-MTPA)Simulink仿真教程
  4. 基于FOC矢量算法的MTPA控制在变频洗衣机上的应用
  5. vulhub-靶场实战-安装
  6. Spring cloud和规则引擎urule整合代码
  7. 超越postman,国产接口联调工具新选择-ApiPost
  8. JMeter之接口测试脚本编写
  9. 浅谈HTTP接口性能测试脚本的编写
  10. 概率图模型(05): 揭示局部概率模型, 稀疏化网络表示(Structured-CPDs)