SSH企业案例_CRM客户管理系统(五):CRM权限拦截器&SSH纯注解整合
38/100
发布文章
oZuoShen123
未选择文件
文章目录
1、CRM综合练习:客户拜访记录
客户拜访记录管理
客户拜访记录需求的概述
一个系统的用户(公司业务员
),业务员
需要对客户
进行拜访,对拜访的过程进行记录。业务员(用户)和客户(客户)之间关系(需要具体业务具体分析:一对多 —— 公司产品比较单一,只允许一个业务员对应多个客户。多对多 —— 大公司有不同的产品,不同产品下有不同业务员都可以接触到同一个客户,一个客户可以对应多个业务员)。大部分情况创建成多对多。
多对多建表原则:
创建中间表,中间表中至少两个字段分别作为外键指向多对多双方的主键。
客户拜访记录的准备工作
创建表
//如果想要让时间存入数据库的时候有时分秒就存datetime
CREATE TABLE `sale_visit` (
`visit_id` varchar(32) NOT NULL,
`visit_cust_id` bigint(32) DEFAULT NULL COMMENT '客户id',
`visit_user_id` bigint(32) DEFAULT NULL COMMENT '负责人id',
`visit_time` datetime DEFAULT NULL COMMENT '拜访时间',
`visit_addr` varchar(128) DEFAULT NULL COMMENT '拜访地点',
`visit_detail` varchar(256) DEFAULT NULL COMMENT '拜访详情',
`visit_nexttime` date DEFAULT NULL COMMENT '下次拜访时间',
PRIMARY KEY (`visit_id`),
KEY `FK_sale_visit_cust_id` (`visit_cust_id`),
KEY `FK_sale_visit_user_id` (`visit_user_id`),
CONSTRAINT `FK_sale_visit_cust_id` FOREIGN KEY (`visit_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_sale_visit_user_id` FOREIGN KEY (`visit_user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建实体和映射
创建实体
创建映射
注意:这里没有在客户和用户配置拜访记录的集合,因为在客户和用户的使用时用不到拜访记录,当然也可以自己加
再次注意:搞完这一小节之后运行404,弄了半天是因为没加"/",服了
创建相关类:Action、Service、Dao
注意点:
1、Action中要加actionSupport!!!
2、Action中的接收网页的变量最好自己初始化,否则报错
3、Action中的模型要自己先创建
4、404就检查struts和application(先看错误)
将相关类进行配置
Bean管理交给Spring的XML
属性注入使用注解方式(我使用xml方式
)
<bean id="saleVisitService" class="service.serviceImpl.SaleVisitServiceImpl">
<property name="dao" ref="saleVisitDao"/>
</bean>
<bean id="saleVisitDao" class="dao.daoImpl.SaleVisitDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="saleVisitAction" class="web.action.SaleVisitAction" scope="prototype">
<property name="service" ref="saleVisitService"/>
</bean>
客户拜访记录的列表显示
修改menu.jsp的提交路径
编写Action的findAll的方法
编写Service
在页面显示数据
注意:这里的format其实是:YYYY-MM-dd,如果是mm的话月份显示会错误
客户拜访记录的保存
修改menu.jsp的链接地址
编写Action中的saveUI方法
跳转到添加页面
异步加载数据
编写findcust和finduser方法(写法差不多)
日期控件的使用
1、把jquery文件夹复制到webcontent下
2、把add.html中引入jquery的代码等复制到jsp中
3、把jsp中的空间id更改为script一致即可
编写Action的save方法
编写Service
客户拜访记录的条件查询
修改了Action的findAll的方法
关于统计分析管理
统计分析管理其实就是,查询除某个行业所有的个数占比这样的数据
具体的数据可以通过柱状图或者饼状图表达,可以使用JFreeChart(Java)控件来表现
2、权限拦截器
实现一个权限拦截器
编写类继承拦截器类
配置拦截器
3、SSH整合(纯注解-没有自己手动写该案例-了解)
搭建SSH注解开发的环境
第一步:创建web项目,引入jar包
SSH整合的jar包
Struts2的注解开发包:
struts2-convention-plugin-2.3.24.jar ----Struts2的注解开发包。
第二步:引入配置文件
web.xml
Struts2的过滤器
Spring的监听器
jdbc.properties
log4j.properties
applicationContext.xml
第三步:创建相关的包和类(crm)
第四步:引入相关页面(crm)
保存客户
第五步:编写Action的save方法
第六步:配置Action
在Spring中配置Action,Action交给Spring管理(使用注解方式)
开启组件扫描
在类上添加注解:
在struts中配置Action,Action负责处理请求和页面跳转
第七步:Action调用业务层
Service交给Spring管理
Action中注入Service:用Resource
在Action的方法中调用业务层:直接调用save方法
第八步:在Service中调用DAO
将DAO交给Spring管理:与第七步一样,用@Repository
在Service中注入DAO:用Resource并直接调用save方法
第九步:创建实体和映射(映射使用的是注解)
现在映射使用注解实现(将表和类建立关系,将表中的字段和类中属性建立关系)
第十步:在Spring中整合Hibernate
第十一步:在DAO中使用模板
不能让DAO继承HibernateDaoSupport,因为属性注入不能使用注解方式。
自己在DAO中注入模板
定义Hibernate模板
注入模板:@Resource
在DAO中使用模板完成保存:直接调用save
第十二步:配置事务管理
配置事务管理器
开启注解事务
在业务层添加注解:@Transactional
文章目录
1、CRM综合练习:客户拜访记录
客户拜访记录管理
客户拜访记录的准备工作
客户拜访记录的列表显示
客户拜访记录的保存
客户拜访记录的条件查询
关于统计分析管理
2、权限拦截器
实现一个权限拦截器
3、SSH整合(纯注解-没有自己手动写该案例-了解)
搭建SSH注解开发的环境
保存客户
1、CRM综合练习:客户拜访记录
客户拜访记录管理
客户拜访记录需求的概述
一个系统的用户(公司业务员),业务员需要对客户进行拜访,对拜访的过程进行记录。业务员(用户)和客户(客户)之间关系(需要具体业务具体分析:一对多 —— 公司产品比较单一,只允许一个业务员对应多个客户。多对多 —— 大公司有不同的产品,不同产品下有不同业务员都可以接触到同一个客户,一个客户可以对应多个业务员)。大部分情况创建成多对多。
多对多建表原则:
创建中间表,中间表中至少两个字段分别作为外键指向多对多双方的主键。
拜访记录分析
客户拜访记录的准备工作
创建表
//如果想要让时间存入数据库的时候有时分秒就存datetime
CREATE TABLE sale_visit
(
visit_id
varchar(32) NOT NULL,
visit_cust_id
bigint(32) DEFAULT NULL COMMENT ‘客户id’,
visit_user_id
bigint(32) DEFAULT NULL COMMENT ‘负责人id’,
visit_time
datetime DEFAULT NULL COMMENT ‘拜访时间’,
visit_addr
varchar(128) DEFAULT NULL COMMENT ‘拜访地点’,
visit_detail
varchar(256) DEFAULT NULL COMMENT ‘拜访详情’,
visit_nexttime
date DEFAULT NULL COMMENT ‘下次拜访时间’,
PRIMARY KEY (visit_id
),
KEY FK_sale_visit_cust_id
(visit_cust_id
),
KEY FK_sale_visit_user_id
(visit_user_id
),
CONSTRAINT FK_sale_visit_cust_id
FOREIGN KEY (visit_cust_id
) REFERENCES cst_customer
(cust_id
) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT FK_sale_visit_user_id
FOREIGN KEY (visit_user_id
) REFERENCES sys_user
(user_id
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
关系
创建实体和映射
创建实体
salevisit
创建映射
注意:这里没有在客户和用户配置拜访记录的集合,因为在客户和用户的使用时用不到拜访记录,当然也可以自己加
再次注意:搞完这一小节之后运行404,弄了半天是因为没加"/",服了
映射
映射
创建相关类:Action、Service、Dao
注意点:
1、Action中要加actionSupport!!!
2、Action中的接收网页的变量最好自己初始化,否则报错
3、Action中的模型要自己先创建
4、404就检查struts和application(先看错误)
将相关类进行配置
Bean管理交给Spring的XML
属性注入使用注解方式(我使用xml方式)
客户拜访记录的保存
修改menu.jsp的链接地址
saveUI
编写Action中的saveUI方法
saveUII
跳转到添加页面
tianjia
异步加载数据
script
编写findcust和finduser方法(写法差不多)
findcust
日期控件的使用
1、把jquery文件夹复制到webcontent下
2、把add.html中引入jquery的代码等复制到jsp中
3、把jsp中的空间id更改为script一致即可
引入日期控件
编写Action的save方法
保存
编写Service
save方法
客户拜访记录的条件查询
修改了Action的findAll的方法
拜访记录
关于统计分析管理
统计分析管理其实就是,查询除某个行业所有的个数占比这样的数据
具体的数据可以通过柱状图或者饼状图表达,可以使用JFreeChart(Java)控件来表现
2、权限拦截器
实现一个权限拦截器
编写类继承拦截器类
权限
配置拦截器
111
222
3、SSH整合(纯注解-没有自己手动写该案例-了解)
搭建SSH注解开发的环境
第一步:创建web项目,引入jar包
SSH整合的jar包
Struts2的注解开发包:
struts2-convention-plugin-2.3.24.jar ----Struts2的注解开发包。
第二步:引入配置文件
web.xml
Struts2的过滤器
Spring的监听器
监听器
jdbc.properties
log4j.properties
applicationContext.xml
第三步:创建相关的包和类(crm)
第四步:引入相关页面(crm)
保存客户
第五步:编写Action的save方法
save
第六步:配置Action
在Spring中配置Action,Action交给Spring管理(使用注解方式)
开启组件扫描
saomiao
在类上添加注解:
leizhujie
在struts中配置Action,Action负责处理请求和页面跳转
action配置
第七步:Action调用业务层
Service交给Spring管理
service
Action中注入Service:用Resource
在Action的方法中调用业务层:直接调用save方法
第八步:在Service中调用DAO
将DAO交给Spring管理:与第七步一样,用@Repository
在Service中注入DAO:用Resource并直接调用save方法
第九步:创建实体和映射(映射使用的是注解)
现在映射使用注解实现(将表和类建立关系,将表中的字段和类中属性建立关系)
实体映射
第十步:在Spring中整合Hibernate
hibernate
第十一步:在DAO中使用模板
不能让DAO继承HibernateDaoSupport,因为属性注入不能使用注解方式。
自己在DAO中注入模板
定义Hibernate模板
moban
注入模板:@Resource
在DAO中使用模板完成保存:直接调用save
第十二步:配置事务管理
配置事务管理器
开启注解事务
注解事务
在业务层添加注解:@Transactional