子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个SSH框架的客户关系管理系统。
目录
1.CRM项目(客户关系管理系统)
1.1CRM的概述(了解)
1.2CRM有哪些模块
2.CRM项目环境搭建
2.1第一步:创建WEB项目,引入jar包
2.2第二步:引入配置文件
2.3第三步:创建相关的包结构
2.4第四步:创建相关的页面
2.3第五步:创建相关的类
2.3第六步:将相关的类配置到Spring中
3.用户模块-实现用户注册
3.1编写一个注册页面
3.2创建数据库表
3.3创建实体和映射
3.4编写UserAction
3.5编写UserService
3.6编写UserDao
3.7配置Spring的事务管理
效果展示:
CRM即客户关系管理,指企业用CRM技术来管理与客户之间的关系。它的目标是通过提高客户的价值、满意度、赢利性和忠实度来缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道。
struts
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts
/*
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///crm
jdbc.username=root
jdbc.password=123456
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
# error warn info debug trace
log4j.rootLogger= info, stdout
org.hibernate.dialect.MySQLDialect
true
true
update
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
CREATE TABLE `sys_user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_code` varchar(32) NOT NULL COMMENT '用户账号',
`user_name` varchar(64) NOT NULL COMMENT '用户名称',
`user_password` varchar(32) NOT NULL COMMENT '用户密码',
`user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
实体类:User
/**
* @Title: User.java
* @Package com.albertyy.crm.entity
* @Description: TODO
* @author yangxianyang
* @date 2018年12月13日 上午11:40:10
* @version V1.0
*/
package com.albertyy.crm.entity;
/**
*
* 项目名称:CRM
* 类名称:User
* 类描述: 用户实体类
* 创建人:yangyangyang
* 创建时间:2018年12月13日 上午11:40:10
* 修改人:yangyangyang
* 修改时间:2018年12月13日 上午11:40:10
* 修改备注:
* @version
*
*/
/*
* CREATE TABLE `sys_user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_code` varchar(32) NOT NULL COMMENT '用户账号',
`user_name` varchar(64) NOT NULL COMMENT '用户名称',
`user_password` varchar(32) NOT NULL COMMENT '用户密码',
`user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
*/
public class User {
private Long user_id;
private String user_code;
private String user_name;
private String user_password;
private String user_state;
public Long getUser_id() {
return user_id;
}
public void setUser_id(Long user_id) {
this.user_id = user_id;
}
public String getUser_code() {
return user_code;
}
public void setUser_code(String user_code) {
this.user_code = user_code;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
public String getUser_state() {
return user_state;
}
public void setUser_state(String user_state) {
this.user_state = user_state;
}
}
映射文件:User.hbm.xml
/**
* @Title: UserAction.java
* @Package com.albertyy.crm.web.action
* @Description: TODO
* @author yangxianyang
* @date 2018年12月13日 上午11:42:41
* @version V1.0
*/
package com.albertyy.crm.web.action;
import com.albertyy.crm.entity.User;
import com.albertyy.crm.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
*
* 项目名称:CRM
* 类名称:UserAction
* 类描述: 用户管理Action
* 创建人:yangyangyang
* 创建时间:2018年12月13日 上午11:42:41
* 修改人:yangyangyang
* 修改时间:2018年12月13日 上午11:42:41
* 修改备注:
* @version
*
*/
public class UserAction extends ActionSupport implements ModelDriven {
//模型驱动使用的对象
private User user=new User();
@Override
public User getModel() {
return user;
}
//注入Service
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
/*
* 用户注册的方法
*/
public String register(){
userService.register(user);
return NONE;
}
}
注入service:
配置Action访问:
/login.jsp
/**
* @Title: UserServiceImpl.java
* @Package com.albertyy.crm.serviceImpl
* @Description: TODO
* @author yangxianyang
* @date 2018年12月13日 上午11:40:55
* @version V1.0
*/
package com.albertyy.crm.serviceImpl;
import com.albertyy.crm.dao.UserDao;
import com.albertyy.crm.entity.User;
import com.albertyy.crm.service.UserService;
import com.albertyy.crm.utils.MD5Utils;
/**
* 项目名称:CRM 类名称:UserServiceImpl 类描述: 创建人:yangyangyang
* 创建时间:2018年12月13日 上午11:40:55 修改人:yangyangyang 修改时间:2018年12月13日
* 上午11:40:55 修改备注: @version
*/
public class UserServiceImpl implements UserService {
// 注入Dao
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
// 注册方法
@Override
public void register(User user) {
// 对密码进行加密处理
user.setUser_name(MD5Utils.md5(user.getUser_password()));
// '1:正常,0:暂停'
user.setUser_state("1");
// 调用Dao
userDao.save(user);
}
}
注入Dao:
整合Hibernate:
org.hibernate.dialect.MySQLDialect
true
true
update
com/albertyy/crm/entity/User.hbm.xml
Dao中继承HibernateDaoSupport类:
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
//保存方法
@Override
public void save(User user) {
this.getHibernateTemplate().save(user);
}
}
Dao中注入SessionFactory:
在业务层添加注解:@Transactional
@Transactional
public class UserServiceImpl implements UserService {
// 注入Dao
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}