持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
前言
前面两篇介绍了如何搭建微服务开发框架,以及在开发过程中如何引入第三方依赖,并且以给项目添加访问MySQL的持久层框架mybatis进行了实际的操作。
既然是项目那么必然会涉及到数据库的访问,数据库中设计到一张一张的数据表,数据表是根据各个项目不同的业务设计出用来存储业务数据的结构,类似于一张一张的Excel表格。设计出了表结构之后,需要编写SQL脚本,将表结构写入到数据库中。
如果我们一个一个的字段去进行编写,可能比较耗费时间。下面介绍一种如何快速生成SQL脚本的方法,当然次方法有一个前提,需要提前准备好对应的Excel文件。
当然专业的数据库表设计工具可以选择powerdesigner、EZDML、PDMan等。
准备工具
Excel、sublime、Navicat
物料准备
准备工作,需要类似下图的文本。
使用sublime编写SQL脚本
- 复制字段名称列,粘贴到sublime中
- cmd/ctrl+A全部选中
- cmd/ctrl+shift+L进入列模式
- cmd/ctrl+左方向键光标移动到每一行第一列
- shift+有方向键选中第一列,cmd+k+小写L,字母变成小写。(cmd+k+u字母编程大写)
构建SQL语句结构
- 移动光标到每一行第一列添加符号`
- cmd+方向右键到每一行末尾,添加符号`
- 添加空格
- 粘贴每个字段的类型
- 空格,添加
DEFAULT NULL COMMENT - 空格,添加符号'',复制每个字段的中文描述到符号''中间
- 移动光标到每行末添加逗号,
- 将内容复制到SQL语句中
CREATE TABLE `xxx` (
`id` bigint(50) NOT NULL COMMENT '主键ID',
`querySequenceNo` VARCHAR ( 50 ) NOT NULL COMMENT '投保查询码',
`areaCode` VARCHAR ( 10 ) DEFAULT NULL COMMENT '地区代码',
`userCode` VARCHAR ( 30 ) DEFAULT NULL COMMENT '用户代码',
`companyCode` VARCHAR ( 8 ) DEFAULT NULL COMMENT '公司代码',
`queryDate` datetime DEFAULT NULL COMMENT '投保查询时间',
`queryInvalidDate` datetime DEFAULT NULL COMMENT '查询失效时间',
`billDate` datetime DEFAULT NULL COMMENT '签单日期',
`effectiveDate` datetime DEFAULT NULL COMMENT '起保日期',
`expireDate` datetime DEFAULT NULL COMMENT '终保日期',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUser` bigint(50) DEFAULT NULL COMMENT '创建用户',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUser` bigint(50) DEFAULT NULL COMMENT '更新用户',
`deleteFlag` char(1) DEFAULT NULL COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='xxx';
需要修改表名称和表的中文注释
执行SQL语句
将SQL语句放到Navicat等工具中进行执行
CREATE TABLE `xxx` (
`id` bigint(50) NOT NULL COMMENT '主键ID',
`querySequenceNo` VARCHAR ( 50 ) NOT NULL COMMENT '投保查询码',
`areaCode` VARCHAR ( 10 ) DEFAULT NULL COMMENT '地区代码',
`userCode` VARCHAR ( 30 ) DEFAULT NULL COMMENT '用户代码',
`companyCode` VARCHAR ( 8 ) DEFAULT NULL COMMENT '公司代码',
`queryDate` datetime DEFAULT NULL COMMENT '投保查询时间',
`queryInvalidDate` datetime DEFAULT NULL COMMENT '查询失效时间',
`billDate` datetime DEFAULT NULL COMMENT '签单日期',
`effectiveDate` datetime DEFAULT NULL COMMENT '起保日期',
`expireDate` datetime DEFAULT NULL COMMENT '终保日期',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
`createUser` bigint(50) DEFAULT NULL COMMENT '创建用户',
`updateTime` datetime DEFAULT NULL COMMENT '更新时间',
`updateUser` bigint(50) DEFAULT NULL COMMENT '更新用户',
`deleteFlag` char(1) DEFAULT NULL COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='xxx';
如果确定了行数,那么之后每一次在列编辑模式下,粘贴的行数一定要和文本行数相同。比如字段的行数是10个,那么粘贴字段类型的时候也必须是10行。粘贴COMMENT注释的时候也必须是10行,否则不能一一对应。因为准备的文本原因,不能分别指定每一个字段的是否空值,这种情况在Navicat中进行修改很方便。不小心多选择了一个光标,可以cmd+shift+鼠标左键进行取消