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

举报
AlbertYang 发表于 2021/02/03 01:02:39 2021/02/03
【摘要】 子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个SSH框架的客户关系管理系统。 目录 1.CRM项目(客户关系管理系统) 1.1CRM的概述(了解) 1.2CRM有哪些模块 2.CRM项目环境搭建 2.1第一步:创建WEB项目,引入jar包 2.2第二步:引入配置文件 2.3第三步:创建相关的...

子曰:学而不思则罔,为了巩固一下学习的框架知识,同时为了增加对框架的实际应用能力,同时增加项目经验。从今天开始做一个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的事务管理

效果展示:


 

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

1.1CRM的概述(了解)

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

 

1.2CRM有哪些模块

2.CRM项目环境搭建

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

2.2第二步:引入配置文件

  1. Struts2框架
      1. Web.xml

 


  
  1. <!-- Struts2配置核心过滤器 -->
  2.      <filter>
  3.          <filter-name>struts</filter-name>
  4.          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  5.      </filter>
  6.      <filter-mapping>
  7.          <filter-name>struts</filter-name>
  8.          <url-pattern>/*</url-pattern>
  9.      </filter-mapping>
      1. Struts2.xml

  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3.      "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4.      "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6.      <!-- 配置Struts2的常量 -->
  7.      <constant name="struts.action.extension" value="action"/>
  8.     
  9.     
  10. </struts>
  1. Spring框架
  1. Jdbc.properties

  
  1. jdbc.driverClass=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql:///crm
  3. jdbc.username=root
  4. jdbc.password=123456
  1. Log4j.properties

  
  1. ### direct log messages to stdout ###
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.Target=System.err
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  6. ### direct messages to file mylog.log ###
  7. log4j.appender.file=org.apache.log4j.FileAppender
  8. log4j.appender.file.File=c\:mylog.log
  9. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  10. log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  11. ### set log levels - for more verbose logging change 'info' to 'debug' ###
  12. # error warn info debug trace
  13. log4j.rootLogger= info, stdout

 

  1. ApplicationContext.xml

  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.      xmlns:context="http://www.springframework.org/schema/context"
  5.      xmlns:aop="http://www.springframework.org/schema/aop"
  6.      xmlns:tx="http://www.springframework.org/schema/tx"
  7.      xsi:schemaLocation="http://www.springframework.org/schema/beans
  8.      http://www.springframework.org/schema/beans/spring-beans.xsd
  9.      http://www.springframework.org/schema/context
  10.      http://www.springframework.org/schema/context/spring-context.xsd
  11.      http://www.springframework.org/schema/aop
  12.      http://www.springframework.org/schema/aop/spring-aop.xsd
  13.      http://www.springframework.org/schema/tx
  14.      http://www.springframework.org/schema/tx/spring-tx.xsd">
  15.     
  16.      <!-- 引入外部属性文件=============================== -->
  17.      <context:property-placeholder location="classpath:jdbc.properties"/>
  18.     
  19.      <!-- 配置C3P0连接池=============================== -->
  20.      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  21.          <property name="driverClass" value="${jdbc.driverClass}"/>
  22.          <property name="jdbcUrl" value="${jdbc.url}"/>
  23.          <property name="user" value="${jdbc.username}"/>
  24.          <property name="password" value="${jdbc.password}"/>
  25.      </bean>
  26.     
  27.     
  28.      <!-- Spring整合Hibernate -->
  29.      <!-- 引入Hibernate的配置的信息=============== -->
  30.      <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  31.          <!-- 注入连接池 -->
  32.          <property name="dataSource" ref="dataSource"/>
  33.          <!-- 配置Hibernate的相关属性 -->
  34.          <property name="hibernateProperties">
  35.               <props>
  36.                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  37.                    <prop key="hibernate.show_sql">true</prop>
  38.                    <prop key="hibernate.format_sql">true</prop>
  39.                    <prop key="hibernate.hbm2ddl.auto">update</prop>
  40.               </props>
  41.          </property>
  42.         
  43.      </bean>
  44.     
  45. </beans>
  1. web.xml

  
  1. <!-- Spring的核心监听器 -->
  2.      <listener>
  3.          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  4.      </listener>
  5.      <!-- 加载Spring的配置文件的路径的,默认加载的/WEB-INF/applicationContext.xml -->
  6.      <context-param>
  7.          <param-name>contextConfigLocation</param-name>
  8.          <param-value>classpath:applicationContext.xml</param-value>
  9.      </context-param>
  1. Hibernate框架(交给Spring管理)

 

2.3第三步:创建相关的包结构

2.4第四步:创建相关的页面

2.3第五步:创建相关的类

2.3第六步:将相关的类配置到Spring中


  
  1. <!-- 配置Action -->
  2.     <bean id="userAction" class="com.albertyy.crm.web.action.UserAction" scope="prototype">
  3.     </bean>
  4.     <!-- 配置Service -->
  5.     <bean id="userService" class="com.albertyy.crm.serviceImpl.UserServiceImpl">
  6.     </bean>
  7.     <!-- 配置Dao -->
  8.     <bean id="userDao" class="com.albertyy.crm.daoImpl.UserDaoImpl">
  9.     </bean>
  10.  

3.用户模块-实现用户注册

3.1编写一个注册页面

3.2创建数据库表


  
  1. CREATE TABLE `sys_user` (
  2.   `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  3.   `user_code` varchar(32) NOT NULL COMMENT '用户账号',
  4.   `user_name` varchar(64) NOT NULL COMMENT '用户名称',
  5.   `user_password` varchar(32) NOT NULL COMMENT '用户密码',
  6.   `user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
  7.   PRIMARY KEY (`user_id`)
  8. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3.3创建实体和映射

实体类:User


  
  1. /**  
  2. * @Title: User.java
  3. * @Package com.albertyy.crm.entity
  4. * @Description: TODO
  5. * @author yangxianyang  
  6. * @date 2018年12月13日 上午11:40:10
  7. * @version V1.0  
  8. */
  9. package com.albertyy.crm.entity;
  10. /**  
  11. *   
  12. * 项目名称:CRM  
  13. * 类名称:User  
  14. * 类描述: 用户实体类 
  15. * 创建人:yangyangyang  
  16. * 创建时间:2018年12月13日 上午11:40:10  
  17. * 修改人:yangyangyang  
  18. * 修改时间:2018年12月13日 上午11:40:10  
  19. * 修改备注:  
  20. * @version   
  21. *   
  22. */
  23. /*
  24.  * CREATE TABLE `sys_user` (
  25.   `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  26.   `user_code` varchar(32) NOT NULL COMMENT '用户账号',
  27.   `user_name` varchar(64) NOT NULL COMMENT '用户名称',
  28.   `user_password` varchar(32) NOT NULL COMMENT '用户密码',
  29.   `user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
  30.   PRIMARY KEY (`user_id`)
  31. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  32.  */
  33. public class User {
  34.    private Long user_id;
  35.    private String user_code;
  36.    private String user_name;
  37.    private String user_password;
  38.    private String user_state;
  39. public Long getUser_id() {
  40.          return user_id;
  41. }
  42. public void setUser_id(Long user_id) {
  43.          this.user_id = user_id;
  44. }
  45. public String getUser_code() {
  46.          return user_code;
  47. }
  48. public void setUser_code(String user_code) {
  49.          this.user_code = user_code;
  50. }
  51. public String getUser_name() {
  52.          return user_name;
  53. }
  54. public void setUser_name(String user_name) {
  55.          this.user_name = user_name;
  56. }
  57. public String getUser_password() {
  58.          return user_password;
  59. }
  60. public void setUser_password(String user_password) {
  61.          this.user_password = user_password;
  62. }
  63. public String getUser_state() {
  64.          return user_state;
  65. }
  66. public void setUser_state(String user_state) {
  67.          this.user_state = user_state;
  68. }
  69.   
  70. }

映射文件:User.hbm.xml


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4.     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6.      <!-- 建立类与表的映射 -->
  7.      <class name="com.albertyy.crm.entity.User" table="sys_user" >
  8.          <!-- 建立类中的属性与表中的主键对应 -->
  9.          <id name="user_id" column="user_id" >
  10.               <!-- 主键生成策略 -->
  11.               <generator class="native"/>
  12.          </id>
  13.         
  14.          <!-- 建立类中的普通的属性和表的字段的对应 -->
  15.          <property name="user_code" column="user_code"  />
  16.          <property name="user_name" column="user_name" />
  17.          <property name="user_password" column="user_password"/>
  18.          <property name="user_state" column="user_state"/>
  19.      </class>
  20.     
  21. </hibernate-mapping>

 

3.4编写UserAction


  
  1. /**  
  2. * @Title: UserAction.java
  3. * @Package com.albertyy.crm.web.action
  4. * @Description: TODO
  5. * @author yangxianyang  
  6. * @date 2018年12月13日 上午11:42:41
  7. * @version V1.0  
  8. */
  9. package com.albertyy.crm.web.action;
  10. import com.albertyy.crm.entity.User;
  11. import com.albertyy.crm.service.UserService;
  12. import com.opensymphony.xwork2.ActionSupport;
  13. import com.opensymphony.xwork2.ModelDriven;
  14. /**  
  15. *   
  16. * 项目名称:CRM  
  17. * 类名称:UserAction  
  18. * 类描述: 用户管理Action 
  19. * 创建人:yangyangyang  
  20. * 创建时间:2018年12月13日 上午11:42:41  
  21. * 修改人:yangyangyang  
  22. * 修改时间:2018年12月13日 上午11:42:41  
  23. * 修改备注:  
  24. * @version   
  25. *   
  26. */
  27. public class UserAction extends ActionSupport implements ModelDriven<User> {
  28.     //模型驱动使用的对象
  29.      private User user=new User();
  30.      @Override
  31.      public User getModel() {
  32.          return user;
  33.      }
  34.      //注入Service
  35.      private UserService userService;
  36.     
  37.      public void setUserService(UserService userService) {
  38.          this.userService = userService;
  39.      }
  40.      /*
  41.      * 用户注册的方法
  42.      */
  43.      public String register(){
  44.          userService.register(user);
  45.          return NONE;
  46.      }
  47. }
  48. 注入service:
  49. <bean id="userAction" class="com.albertyy.crm.web.action.UserAction" scope="prototype">
  50.        <property name="userService" ref="userService"></property>
  51. </bean>

 

配置Action访问:


  
  1. <!-- 配置Action -->
  2.      <package name="crm" extends="struts-default" namespace="/">
  3.          <action name="user_*" class="userAction" method="{1}">
  4.               <result name="login">/login.jsp</result>
  5.          </action>
  6. </package>

 

3.5编写UserService


  
  1. /**  
  2. * @Title: UserServiceImpl.java
  3. * @Package com.albertyy.crm.serviceImpl
  4. * @Description: TODO
  5. * @author yangxianyang  
  6. * @date 2018年12月13日 上午11:40:55
  7. * @version V1.0  
  8. */
  9. package com.albertyy.crm.serviceImpl;
  10. import com.albertyy.crm.dao.UserDao;
  11. import com.albertyy.crm.entity.User;
  12. import com.albertyy.crm.service.UserService;
  13. import com.albertyy.crm.utils.MD5Utils;
  14. /**
  15.  *        项目名称:CRM   类名称:UserServiceImpl   类描述:   创建人:yangyangyang  
  16.  * 创建时间:2018年12月13日 上午11:40:55   修改人:yangyangyang   修改时间:2018年12月13日
  17.  * 上午11:40:55   修改备注:   @version       
  18.  */
  19. public class UserServiceImpl implements UserService {
  20. // 注入Dao
  21. private UserDao userDao;
  22. public void setUserDao(UserDao userDao) {
  23.       this.userDao = userDao;
  24. }
  25. // 注册方法
  26. @Override
  27. public void register(User user) {
  28.       // 对密码进行加密处理
  29.       user.setUser_name(MD5Utils.md5(user.getUser_password()));
  30.       // '1:正常,0:暂停'
  31.       user.setUser_state("1");
  32.       // 调用Dao
  33.       userDao.save(user);
  34. }
  35. }

注入Dao:


  
  1. <!-- 配置Service -->
  2.     <bean id="userService" class="com.albertyy.crm.serviceImpl.UserServiceImpl">
  3.        <property name="userDao" ref="userDao"></property>
  4.  </bean>

 

3.6编写UserDao

整合Hibernate:


  
  1. <!-- Spring整合Hibernate -->
  2.      <!-- 引入Hibernate的配置的信息=============== -->
  3.      <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  4.          <!-- 注入连接池 -->
  5.          <property name="dataSource" ref="dataSource"/>
  6.          <!-- 配置Hibernate的相关属性 -->
  7.          <property name="hibernateProperties">
  8.               <props>
  9.                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  10.                    <prop key="hibernate.show_sql">true</prop>
  11.                    <prop key="hibernate.format_sql">true</prop>
  12.                    <prop key="hibernate.hbm2ddl.auto">update</prop>
  13.               </props>
  14.          </property>
  15.         
  16.          <!-- 引入映射文件 -->
  17.          <property name="mappingResources">
  18.             <list>
  19.                  <value>com/albertyy/crm/entity/User.hbm.xml</value>
  20.             </list>
  21.          </property>
  22. </bean>

Dao中继承HibernateDaoSupport类


  
  1. public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
  2. //保存方法
  3. @Override
  4. public void save(User user) {
  5. this.getHibernateTemplate().save(user);
  6. }
  7. }

 

Dao中注入SessionFactory:

 


  
  1. <!-- 配置Dao -->
  2.     <bean id="userDao" class="com.albertyy.crm.daoImpl.UserDaoImpl">
  3.         <property name="sessionFactory" ref="sessionFactory"></property>
  4.  </bean>

3.7配置Spring的事务管理


  
  1. <!-- 配置事务管理器 -->
  2.      <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  3.          <property name="sessionFactory" ref="sessionFactory"/>
  4.      </bean>
  5.     
  6.      <!-- 开启注解事务 -->
  7.      <tx:annotation-driven transaction-manager="transactionManager"/>

 

在业务层添加注解:@Transactional


  
  1. @Transactional
  2. public class UserServiceImpl implements UserService {
  3.     // 注入Dao
  4.     private UserDao userDao;
  5.     public void setUserDao(UserDao userDao) {
  6.         this.userDao = userDao;
  7. }

效果展示:

 

文章来源: albertyang.blog.csdn.net,作者:Albert Yang,版权归原作者所有,如需转载,请联系作者。

原文链接:albertyang.blog.csdn.net/article/details/85014640

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。