系统功能介绍
这是一个完整的客户管理系统搭建过程,所有源码已经写好了。(Spring + Spring-MVC + MyBatis )使用Maven来管理jar包。
系统架构设计
根据功能不同,项目结构分为以下几个层次:
- 持久对象层:即若干实体类。
- 数据访问层:即dao层,由若干dao接口和MyBatis映射文件组成。
- 业务逻辑层: 由若干Service接口和实现类组成。
- web表现层:主要包括Spring MVC中的Controller类和JSP页面。Controller类主要负责拦截用户请求,并调用业务逻辑中相应组件的业务逻辑方法来处理用户请求,之后将相应的结果返回给JSP页面。
文件组织结构
数据库设计
数据库有三张表用户表、客户表、数据字典表。
系统用户表:
---------------- | 表名(中文) | -------- | 表名(英文) | ------- |
---|---|---|---|---|
---------------- | 系统用户表 | -------- | sys_user | -------- |
字段名 | 类型 | 长度 | 是否主键 | 说明 |
user_id | int | 32 | 是 | 用户id |
user_code | varchar | 32 | 否 | 用户账号 |
user_name | varchar | 50 | 否 | 用户名称 |
user_password | varchar | 32 | 否 | 用户密码 |
user_state | varchar | 1 | 否 | 用户状态(1:正常 0:暂停) |
客户信息表:
---------------- | 表名(中文) | -------- | 表名(英文) | ------- |
---|---|---|---|---|
---------------- | 客户信息表 | -------- | customer | -------- |
字段名 | 类型 | 长度 | 是否主键 | 说明 |
cust_id | int | 32 | 是 | 客户编号 |
cust_name | varchar | 50 | 否 | 客户名称 |
cust_user_id | int | 32 | 否 | 负责人ID |
cust_create_id | int | 32 | 否 | 创建人ID |
cust_source | varchar | 50 | 否 | 客户信息来源 |
cust_industry | varchar | 50 | 否 | 客户所属行业 |
cust_level | varchar | 32 | 否 | 客户级别 |
cust_linkman | varchar | 50 | 否 | 联系人 |
cust_phone | varchar | 64 | 否 | 固定电话 |
cust_mobile | varchar | 16 | 否 | 移动电话 |
cust_zipcode | varchar | 10 | 否 | 邮政编码 |
cust_address | varchar | 100 | 否 | 联系地址 |
cust_createtime | datetime | 否 | 创建时间 |
数据字典表:
---------------- | 表名(中文) | -------- | 表名(英文) | ------- |
---|---|---|---|---|
---------------- | 数据字典表 | -------- | base_dict | -------- |
字段名 | 类型 | 长度 | 是否主键 | 说明 |
dict_id | varchar | 32 | 是 | 数据字典id |
dict_type_code | varchar | 10 | 否 | 数据字典类别代码 |
dict_type_name | varchar | 50 | 否 | 数据字典类别名称 |
dict_item_name | varchar | 50 | 否 | 数据字典项目名称 |
dict_item_code | varchar | 10 | 否 | 数据字典项目代码(可为空) |
dict_sort | int | 10 | 否 | 排序字段 |
dict_enable | char | 1 | 否 | 是否可用1:使用 0:停用 |
dict_memo | varchar | 100 | 否 | 备注 |
系统环境搭建过程
0.创建Maven项目
新建一个project
之前说用Maven管理jar包,所以这里使用idea来新建一个maven项目
这里是需要网络的
下面写组名和项目名
写本地的Maven库
完成
创建java和resources目录
新建完项目以后是没有java和resources目录的这个是需要自己去创建的。
创建完两个目录以后修改两个目录的属性:
创建文件结构
1.准备jar包
所需JAR包
由于本系统集用的是SSM推架开发,因此需要准备这三大程架的jar包除此之外,项目中还涉及数库连接、JSTL标签等,所以还要准备其他JAR包。整个系统所需要准备的jar包。具体如下所示。
1.Spring框架所需的JAR包(10个)
主要包括4个核心模块JAR, AOP开发使用的JAR, JDBC 和事务的JAR。
-
aopalliance-1.0.jar
-
aspectjweaver-1.8.10.jar
-
spring-a0p-4.3.6.RELEASE.jar
-
spring-aspects-4.3.6.RELEASE jar
-
spring-beans-4.3.6.RELEASE jar
-
spring-context-4.3.6.RELEASE.jar
-
spring-core-4.3.6.REL EASE.jar
-
spring-expression-4.3.6.REL EASE.jar
-
spring-jdbc-4.3.6.RELEASE.jar
-
spring-tx-4.3.6.REL EASE.jar
2.Spring MVC框架所需要的JAR包(2个)
- spring-web-4.3.6.REL EASE.jar
- spring-webmvc- 4.3.6.REL EASE.jar
3.MyBatis 框架所需的JAR包(13个)
主要包括核心包msbi-s-4.ja,以及其解压文件夹中 lib目录下的所有JAR.
- ant-1.9.6.jar
- ant-launcher-1.9.6.jar
- asm-5.1.jar
- cglib-3.2.4.jar
- commons-logging- 1.2.jar
- javassist-3.21.0-GA.jar
- log4j-1.2.17.jar
- log4j-api-2.3.jar
- log4j-core-2.3.jar
- mybatis-3.4.2.jar
- ognl-3.1.12.jar
- slf4j-api- 1.7.22.jar
- slf4j-log4j12-1.7.22.jar
4.MyBatis 与Spring 整合的中间JAR (1个)
- mybatis-spring-1.3.1.jar
5.数据库驱动JAR包(1个)
- mysql-connector-java-5.1 40- binjar
6.数据源dbcp所需JAR包(2个)
- commons-dbcp2-2.1.1.jar
- commons-pool2-2.4.2.jar
7.JSTL标签库JAR包(2个)
- taglibs-standard-impl-1 2.5.jar
- taglibs-standard-spec-1.2.5.jar
8.Jackson 框架所需JAR包(3个)
-
jackson- annotations- 2.8.6.jar
-
jackson-core-2.8.6.jar
-
jackson-databind-2.8.6.jar
9.Java工具类JAR (1个)
- commons–lang3–3.4.jar
10.java工具jar包
- jstl-api-1.2.jar
pom中添加依赖
这些jar包不用再一个一个去寻找
在dependencies中添加:
<dependencies>
<!--spring框架所需的jar包10个-->
<!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!--spring MVC 框架所需的jar包 2-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!--MyBatis 框架所需的jar包 13-->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.ant/ant-launcher -->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>1.9.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.ow2.asm/asm -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>5.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/cglib/cglib -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0-GA</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ognl/ognl -->
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.22</version>
<scope>test</scope>
</dependency>
<!--MyBaitis与spring整合中间jar包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!--数据源dbcp所需的jar包-->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<!--JSTL标签库jar包 2-->
<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec -->
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
<version>1.2.5</version>
</dependency>
<!--jackson框架所需jar包-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
</dependency>
<!--java工具类jar-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
配置配置文件的防过滤器
在pom中添加build标签:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
刷新Maven
配置Tomcat
这里配置Tomcat就不再赘述了,网上已经有很多了
2.准备数据库资源
把boot_crm.sql文件的内容在idea新建一个MYSQL窗口
然后执行一遍
方法有很多
这里介绍这一种,还有就是使用Mysql的可视化工具来准备数据库比如navicat等等。
完成展示
3.准备项目环境
1.编写配置文件
这里的5个配置文件都是在resources中配置
创建applicationContext.xml
代码中已经写好,但是导入过去以后要交给spring去管理。
idea检测到这么一个applicationContex的xml文件在顶部会出现一行黄色的提醒,这时候就点ok交给spring管理就好。
成功的标志是:
同样导入另外四个配置文件
分别是:
resource.properites属性文件
spring-mvc.xml文件
db.properties属性文件
mybatis-config.xml文件
修改自己的MySQL密码
在db.properties属性文件
2.引入页面资源
在webapp目录下导入对应的文件
还有一个index.jsp
4.引入类资源
创建持久类、实现dao类、实现Service类、实现Controller、实现页面功能、创建登录拦截器、创建持久化类、实现dao层、实现service层、实现controller、实现页面显示,这些代码已经写好直接导入即可。
建立好目录结构,引入文件。