CRM第一天:客户关系管理系统的环境搭建和注册
【摘要】 子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个SSH框架的客户关系管理系统。
目录
1.CRM项目(客户关系管理系统)
1.1CRM的概述(了解)
1.2CRM有哪些模块
2.CRM项目环境搭建
2.1第一步:创建WEB项目,引入jar包
2.2第二步:引入配置文件
2.3第三步:创建相关的...
子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个SSH框架的客户关系管理系统。
目录
1.CRM项目(客户关系管理系统)
1.1CRM的概述(了解)
CRM即客户关系管理,指企业用CRM技术来管理与客户之间的关系。它的目标是通过提高客户的价值、满意度、赢利性和忠实度来缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道。
1.2CRM有哪些模块
2.CRM项目环境搭建
2.1第一步:创建WEB项目,引入jar包
2.2第二步:引入配置文件
- Struts2框架
-
- Web.xml
-
-
<!-- Struts2配置核心过滤器 -->
-
-
<filter>
-
-
<filter-name>struts</filter-name>
-
-
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
-
-
</filter>
-
-
-
-
<filter-mapping>
-
-
<filter-name>struts</filter-name>
-
-
<url-pattern>/*</url-pattern>
-
-
</filter-mapping>
-
-
- Struts2.xml
-
-
-
<?xml version="1.0" encoding="UTF-8" ?>
-
-
<!DOCTYPE struts PUBLIC
-
-
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
-
-
"http://struts.apache.org/dtds/struts-2.3.dtd">
-
-
<struts>
-
-
<!-- 配置Struts2的常量 -->
-
-
<constant name="struts.action.extension" value="action"/>
-
-
-
-
-
-
</struts>
- Spring框架
- Jdbc.properties
-
-
jdbc.driverClass=com.mysql.jdbc.Driver
-
-
jdbc.url=jdbc:mysql:///crm
-
-
jdbc.username=root
-
-
jdbc.password=123456
- Log4j.properties
-
-
### 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
- ApplicationContext.xml
-
-
<?xml version="1.0" encoding="UTF-8"?>
-
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
-
xmlns:context="http://www.springframework.org/schema/context"
-
-
xmlns:aop="http://www.springframework.org/schema/aop"
-
-
xmlns:tx="http://www.springframework.org/schema/tx"
-
-
xsi:schemaLocation="http://www.springframework.org/schema/beans
-
-
http://www.springframework.org/schema/beans/spring-beans.xsd
-
-
http://www.springframework.org/schema/context
-
-
http://www.springframework.org/schema/context/spring-context.xsd
-
-
http://www.springframework.org/schema/aop
-
-
http://www.springframework.org/schema/aop/spring-aop.xsd
-
-
http://www.springframework.org/schema/tx
-
-
http://www.springframework.org/schema/tx/spring-tx.xsd">
-
-
-
-
<!-- 引入外部属性文件=============================== -->
-
-
<context:property-placeholder location="classpath:jdbc.properties"/>
-
-
-
-
<!-- 配置C3P0连接池=============================== -->
-
-
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
-
-
<property name="driverClass" value="${jdbc.driverClass}"/>
-
-
<property name="jdbcUrl" value="${jdbc.url}"/>
-
-
<property name="user" value="${jdbc.username}"/>
-
-
<property name="password" value="${jdbc.password}"/>
-
-
</bean>
-
-
-
-
-
-
<!-- Spring整合Hibernate -->
-
-
<!-- 引入Hibernate的配置的信息=============== -->
-
-
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
-
-
<!-- 注入连接池 -->
-
-
<property name="dataSource" ref="dataSource"/>
-
-
<!-- 配置Hibernate的相关属性 -->
-
-
<property name="hibernateProperties">
-
-
<props>
-
-
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
-
-
<prop key="hibernate.show_sql">true</prop>
-
-
<prop key="hibernate.format_sql">true</prop>
-
-
<prop key="hibernate.hbm2ddl.auto">update</prop>
-
-
</props>
-
-
</property>
-
-
-
-
</bean>
-
-
-
-
-
-
</beans>
- web.xml
-
-
<!-- Spring的核心监听器 -->
-
-
<listener>
-
-
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-
-
</listener>
-
-
-
-
<!-- 加载Spring的配置文件的路径的,默认加载的/WEB-INF/applicationContext.xml -->
-
-
<context-param>
-
-
<param-name>contextConfigLocation</param-name>
-
-
<param-value>classpath:applicationContext.xml</param-value>
-
-
</context-param>
- Hibernate框架(交给Spring管理)
2.3第三步:创建相关的包结构
2.4第四步:创建相关的页面
2.3第五步:创建相关的类
2.3第六步:将相关的类配置到Spring中
-
<!-- 配置Action -->
-
-
<bean id="userAction" class="com.albertyy.crm.web.action.UserAction" scope="prototype">
-
-
</bean>
-
-
<!-- 配置Service -->
-
-
<bean id="userService" class="com.albertyy.crm.serviceImpl.UserServiceImpl">
-
-
</bean>
-
-
<!-- 配置Dao -->
-
-
<bean id="userDao" class="com.albertyy.crm.daoImpl.UserDaoImpl">
-
-
</bean>
-
-
3.用户模块-实现用户注册
3.1编写一个注册页面
3.2创建数据库表
-
-
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;
-
3.3创建实体和映射
实体类: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
-
<?xml version="1.0" encoding="UTF-8"?>
-
-
<!DOCTYPE hibernate-mapping PUBLIC
-
-
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-
-
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
-
-
<hibernate-mapping>
-
-
<!-- 建立类与表的映射 -->
-
-
<class name="com.albertyy.crm.entity.User" table="sys_user" >
-
-
<!-- 建立类中的属性与表中的主键对应 -->
-
-
<id name="user_id" column="user_id" >
-
-
<!-- 主键生成策略 -->
-
-
<generator class="native"/>
-
-
</id>
-
-
-
-
<!-- 建立类中的普通的属性和表的字段的对应 -->
-
-
<property name="user_code" column="user_code" />
-
-
<property name="user_name" column="user_name" />
-
-
<property name="user_password" column="user_password"/>
-
-
<property name="user_state" column="user_state"/>
-
-
</class>
-
-
-
-
</hibernate-mapping>
3.4编写UserAction
-
/**
-
-
-
-
* @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<User> {
-
-
//模型驱动使用的对象
-
-
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:
-
-
<bean id="userAction" class="com.albertyy.crm.web.action.UserAction" scope="prototype">
-
-
<property name="userService" ref="userService"></property>
-
-
</bean>
配置Action访问:
-
<!-- 配置Action -->
-
-
<package name="crm" extends="struts-default" namespace="/">
-
-
<action name="user_*" class="userAction" method="{1}">
-
-
<result name="login">/login.jsp</result>
-
-
</action>
-
-
</package>
3.5编写UserService
-
/**
-
-
-
-
* @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:
-
<!-- 配置Service -->
-
-
<bean id="userService" class="com.albertyy.crm.serviceImpl.UserServiceImpl">
-
-
<property name="userDao" ref="userDao"></property>
-
-
</bean>
3.6编写UserDao
整合Hibernate:
-
<!-- Spring整合Hibernate -->
-
-
<!-- 引入Hibernate的配置的信息=============== -->
-
-
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
-
-
<!-- 注入连接池 -->
-
-
<property name="dataSource" ref="dataSource"/>
-
-
<!-- 配置Hibernate的相关属性 -->
-
-
<property name="hibernateProperties">
-
-
<props>
-
-
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
-
-
<prop key="hibernate.show_sql">true</prop>
-
-
<prop key="hibernate.format_sql">true</prop>
-
-
<prop key="hibernate.hbm2ddl.auto">update</prop>
-
-
</props>
-
-
</property>
-
-
-
-
<!-- 引入映射文件 -->
-
-
<property name="mappingResources">
-
-
<list>
-
-
<value>com/albertyy/crm/entity/User.hbm.xml</value>
-
-
</list>
-
-
</property>
-
-
</bean>
-
Dao中继承HibernateDaoSupport类:
-
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
-
//保存方法
-
@Override
-
public void save(User user) {
-
this.getHibernateTemplate().save(user);
-
}
-
-
}
Dao中注入SessionFactory:
-
<!-- 配置Dao -->
-
-
<bean id="userDao" class="com.albertyy.crm.daoImpl.UserDaoImpl">
-
-
<property name="sessionFactory" ref="sessionFactory"></property>
-
-
</bean>
3.7配置Spring的事务管理
-
<!-- 配置事务管理器 -->
-
-
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
-
-
<property name="sessionFactory" ref="sessionFactory"/>
-
-
</bean>
-
-
-
-
<!-- 开启注解事务 -->
-
-
<tx:annotation-driven transaction-manager="transactionManager"/>
在业务层添加注解:@Transactional
-
@Transactional
-
-
public class UserServiceImpl implements UserService {
-
-
// 注入Dao
-
-
private UserDao userDao;
-
-
-
-
public void setUserDao(UserDao userDao) {
-
-
this.userDao = userDao;
-
-
}
效果展示:
文章来源: albertyang.blog.csdn.net,作者:Albert Yang,版权归原作者所有,如需转载,请联系作者。
原文链接:albertyang.blog.csdn.net/article/details/85014640
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)