前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CRM第一天:客户关系管理系统的环境搭建和注册

CRM第一天:客户关系管理系统的环境搭建和注册

作者头像
AlbertYang
发布2020-09-08 14:47:12
5130
发布2020-09-08 14:47:12
举报

子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个SSH框架的客户关系管理系统。

1.CRM项目(客户关系管理系统)

1.1CRM的概述(了解)

CRM即客户关系管理,指企业用CRM技术来管理与客户之间的关系。它的目标是通过提高客户的价值、满意度、赢利性和忠实度来缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道。

1.2CRM有哪些模块

2.CRM项目环境搭建

2.1第一步:创建WEB项目,引入jar包

2.2第二步:引入配置文件

  • Struts2框架
  • Web.xml
代码语言:javascript
复制
<!-- 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
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD StrutsConfiguration 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
代码语言:javascript
复制
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 verboselogging change 'info' to 'debug' ###
# error warn info debug trace

log4j.rootLogger= info,stdout

  • ApplicationContext.xml
代码语言:javascript
复制
<?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
代码语言:javascript
复制
<!-- 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中

代码语言:javascript
复制
<!-- 配置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创建数据库表

代码语言:javascript
复制
CREATETABLE `sys_user` (
  `user_id` bigint(32) NOT NULL AUTO_INCREMENTCOMMENT '用户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创建实体和映射

代码语言:javascript
复制
实体类:User
/**  
*@Title: User.java
*@Package com.albertyy.crm.entity
*@Description: TODO
*@author yangxianyang  
*@date 2018年12月13日上午11:40:10
*@version V1.0  
*/
packagecom.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_INCREMENTCOMMENT '用户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;
 */
publicclass User {
   private Long user_id;
   private String user_code;
   private String user_name;
   private String user_password;
   private String user_state;
publicLong getUser_id() {
         return user_id;
}
publicvoid setUser_id(Long user_id) {
         this.user_id = user_id;
}
publicString getUser_code() {
         return user_code;
}
publicvoid setUser_code(String user_code) {
         this.user_code = user_code;
}
publicString getUser_name() {
         return user_name;
}
publicvoid setUser_name(String user_name) {
         this.user_name = user_name;
}
publicString getUser_password() {
         return user_password;
}
publicvoid setUser_password(String user_password) {
         this.user_password = user_password;
}
publicString getUser_state() {
         return user_state;
}
publicvoid 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

代码语言:javascript
复制
/**  
* @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 implementsModelDriven<User> {
    //模型驱动使用的对象
     private User user=newUser();
     @Override
     public User getModel(){
         return user;
     }
     //注入Service
     private UserServiceuserService;
     public voidsetUserService(UserService userService) {
         this.userService =userService;
     }
     /*
     * 用户注册的方法
     */
     public Stringregister(){
         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

代码语言:javascript
复制
/**  
* @Title:UserServiceImpl.java
* @Packagecom.albertyy.crm.serviceImpl
* @Description:TODO
* @authoryangxianyang  
* @date 2018年12月13日 上午11:40:55
* @versionV1.0  
*/
package com.albertyy.crm.serviceImpl;
importcom.albertyy.crm.dao.UserDao;
importcom.albertyy.crm.entity.User;
importcom.albertyy.crm.service.UserService;
importcom.albertyy.crm.utils.MD5Utils;
/**
 *        项目名称:CRM   类名称:UserServiceImpl  类描述:   创建人:yangyangyang  
 * 创建时间:2018年12月13日 上午11:40:55  修改人:yangyangyang   修改时间:2018年12月13日
 * 上午11:40:55  修改备注:   @version      
 */
public classUserServiceImpl 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:

代码语言:javascript
复制
<!-- 配置Service -->
 <bean id="userService" class="com.albertyy.crm.serviceImpl.UserServiceImpl">
 <property name="userDao" ref="userDao"></property>
 </bean>

3.6编写UserDao

整合Hibernate:

代码语言:javascript
复制
<!-- 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类:
publicclass UserDaoImpl extends HibernateDaoSupport implements UserDao {
 //保存方法
 @Override
 publicvoid save(User user) {
     }
}
Dao中注入SessionFactory:
<!-- 配置Dao -->
 <bean id="userDao" class="com.albertyy.crm.daoImpl.UserDaoImpl">
 <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>

3.7配置Spring的事务管理

代码语言:javascript
复制
<!-- 配置事务管理器 -->
 <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
 <property name="sessionFactory" ref="sessionFactory"/>
 </bean>
 <!-- 开启注解事务 -->
 <tx:annotation-driven transaction-manager="transactionManager"/>
在业务层添加注解:@Transactional
@Transactional
publicclass UserServiceImpl implementsUserService {
 // 注入Dao
 private UserDao userDao;
 publicvoid setUserDao(UserDao userDao) {
 this.userDao = userDao;
 }

页面展示:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AlbertYang 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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的事务管理
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档