这里简单记录写学习鱼皮sqlfather项目的笔记,以供以后学习。
运行
将前后端项目clone到本地后,修改对应配置文件运行项目。
后端
1.配置好mysql后运行这个sql文件建立对应的表。

2.修改数据库密码

3.修改完后运行启动类即可

4. 启动结果

5.查看API接口浏览器输入http://localhost:8102/api/doc.html
前端
前段代码不需要做修改,将代码下载到本地后,在终端窗口输入命令
// 安装依赖
yarn install // 如果提示没有yarn,先npm下载一下
// 运行程序
npm run dev

运行效果

代码
代码结构

代码结构如上图所示,其中core文件夹主要用于成sql数据。
- builder:生成sql语句,JSON数据,java代码,前段代码

- generator:生成模拟数据(固定值,随机值,自增值,根据正则表达式生成等)
- model:实体
- schema:构造表时的统一规范
- utils: 随机数生成 工具,可以生成姓名、邮箱、城市、IP、URL、日期、时间戳、手机号等数据。
代码解析
生成表
这里以生成student表为例

- 前段发送请求 http://localhost:8102/api/sql/generate/schema,映射到后端/sql/generate/schema方法

这里为了方便生成,将前段定义的数据统一转化为了TableShema类型,包括库名、表名、字段名等信息。
package com.yupi.sqlfather.core.schema;
import java.util.List;
import lombok.Data;
/**
* 表概要
*
* @author https://github.com/liyupi
*/
@Data
public class TableSchema {
/**
* 库名
*/
private String dbName;
/**
* 表名
*/
private String tableName;
/**
* 表注释
*/
private String tableComment;
/**
* 模拟数据条数
*/
private Integer mockNum;
/**
* 列信息列表
*/
private List<Field> fieldList;
/**
* 列信息
*/
@Data
public static class Field {
/**
* 字段名
*/
private String fieldName;
/**
* 字段类型
*/
private String fieldType;
/**
* 默认值
*/
private String defaultValue;
/**
* 是否非空
*/
private boolean notNull;
/**
* 注释(字段中文名)
*/
private String comment;
/**
* 是否为主键
*/
private boolean primaryKey;
/**
* 是否自增
*/
private boolean autoIncrement;
/**
* 模拟类型(随机、图片、规则、词库)
*/
private String mockType;
/**
* 模拟参数
*/
private String mockParams;
/**
* 附加条件
*/
private String onUpdate;
}
}
- 然后会进入GeneratorFacade类中的gene


2024

被折叠的 条评论
为什么被折叠?



