基于SSM+mysql架构搭建的客户管理系统
采用的主要框架为:Spring + SpringMVC + Mybatis + Bootstrap。
SSM 客户管理系统是基于 SSM 搭建的客户管理系统,其中为了便于新手学习,采用了jsp页面,bootstrap作为基础,pagehelp作为分页插件,这样能使大家更容易的掌握。
依赖
依赖 版本
Spring 5.0.2.RELEASE
Spring MVC 5.0.2.RELEASE
Mybatis 3.4.5
PageHelp 分页插件 5.1.4
Druid 数据源 1.1.16
Lombok 插件 1.18.8
Mybatis 逆向工程 1.3.7
表设计
用户表
这里为了简洁,用户模块只设计了账号和密码,主要用于登录,当然,你可以多增加一些属性,作为后期的用户信息的维护。
CREATE TABLE tb_user
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
username
varchar(255) DEFAULT NULL,
password
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
客户表
相关的客户信息,同样的可以自己增加,这里我就不再阐述。
CREATE TABLE tb_customer
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
name
varchar(255) DEFAULT NULL,
phone
varchar(255) DEFAULT NULL,
email
varchar(255) DEFAULT NULL,
address
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
插件
逆向工程
用于快速生成开发中不断重复的代码,比如说实体类,映射层接口,以及Mybatis XML文件的编写,只需要提供数据库连接的jar地址,数据库名称,账号密码即可一键生成:实体类,Mapper接口,Mapper映射文件。
其中已经帮我们生成了基本的增加、删除、更新方法。下面简单的说明一下方法的作用:
方法名称 方法作用 方法说明
selectByPrimaryKey 根据主键查询 主键是必须的参数
deleteByPrimaryKey 根据主键删除 主键是必须的参数
insert 插入一条数据, 除了id之外,必须要有每个字段值
insertSelective 插入一条数据 只会插入不为空的字段
updateByPrimaryKeySelective 根据主键更新数据 更新的是传入参数不为空的字段
updateByPrimaryKey 根据主键更新数据 更新所有字段
Lombok 插件
lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。通过使用对应的注解,可以在编译源码的时候生成对应的方法,所以不会影响任何运行效率。
下面是简单的举例说明:
import lombok.Data;
@Data // 这个注解已经提供了get,set方法
public class Customer {
private Long id;
private String name;
private String phone;
private String email;
private String address;
}
常用Lombok注解
注解名称 注解使用位置以及作用
@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter 注解在属性上;为属性提供 setting 方法
@Setter 注解在属性上;为属性提供 getting 方法
@Log4j 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor 注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor 注解在类上;为类提供一个全参的构造方法
@Cleanup 可以关闭流
@Builder 被注解的类加个构造者模式
@Synchronized 加个同步锁
@SneakyThrows 等同于try/catch 捕获异常
@NonNull 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法
项目展示:
在这里插入图片描述
在这里插入图片描述
SQL部分源码:
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50713
Source Host : localhost:3306
Source Schema : ssm
Target Server Type : MySQL
Target Server Version : 50713
File Encoding : 65001
Date: 05/06/2019 15:52:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
– Table structure for tb_customer
DROP TABLE IF EXISTS tb_customer
;
CREATE TABLE tb_customer
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
name
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
phone
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
email
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
address
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (id
) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
– Records of tb_customer
INSERT INTO tb_customer
VALUES (1, ‘张三丰’, ‘18386545500’, ‘3210054449@qq.com’, ‘贵州省贵阳市观山湖区云潭南路3号’);
INSERT INTO tb_customer
VALUES (2, ‘王歌’, ‘13498066695’, ‘1234566@cn.gg’, ‘北京市海淀区中关村北大街清华大学’);
INSERT INTO tb_customer
VALUES (3, ‘刘子昂’, ‘16509899000’, ‘42394023@dd.cn’, ‘贵州省普安县窝沿乡关田村红花组’);
INSERT INTO tb_customer
VALUES (5, ‘韩信’, ‘13498066695’, ‘42394023@dd.cn’, ‘贵阳市南明区富源中路龙家寨’);
INSERT INTO tb_customer
VALUES (6, '上官婉儿 ', ‘18594945860’, ‘42394023@dd.cn’, ‘贵州省遵义市务川县涪洋镇当阳村鱼田溪组’);
INSERT INTO tb_customer
VALUES (7, ‘李白’, ‘13498066695’, ‘42394023@dd.cn’, ‘贵州省安龙县栖凤街道办事处西河村段石街组116号’);
INSERT INTO tb_customer
VALUES (8, ‘妲己’, ‘18594945860’, ‘1234566@cn.gg’, ‘贵州省纳雍县百兴镇新街村新街组’);
INSERT INTO tb_customer
VALUES (9, ‘蔡徐坤’, ‘18594945860’, ‘560000@11.com’, ‘贵州省普安县青山镇范家寨村黑树林组’);
INSERT INTO tb_customer
VALUES (10, ‘迪丽热巴’, ‘18386474459’, ‘1234566@cn.gg’, ‘贵州省罗甸县逢亭镇拱里村二组15号’);
INSERT INTO tb_customer
VALUES (11, ‘刘亦菲’, ‘13498066695’, ‘1234566@cn.gg’, ‘贵州省凯里市西门街梁子巷’);
– Table structure for tb_user
DROP TABLE IF EXISTS tb_user
;
CREATE TABLE tb_user
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
username
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
password
varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (id
) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
– Records of tb_user
INSERT INTO tb_user
VALUES (1, ‘tellsea’, ‘123456’);
SET FOREIGN_KEY_CHECKS = 1;