博客主页:派 大 星
⛳️ 欢迎重视 点赞 保藏 ✏️ 留言
本文由派大星原创撰写
系列专栏:《开源专栏》
本系列主要输出作者自创的开源项目
作品:www.json-sql.online
我们好,我是派大星,由于前段时刻实习入职,所以把时刻以及精力都放在了解公司事务以及从作业中提升自己的事务逻辑,空余时刻也是放在了学习新技能上,到目前为止也是参加了公司3个项目的开发团队中,参加过程中犯过错,露出出了许多的缺乏,丧失过信心,学生时期所带的傲气也是被一点一点的慢慢的打磨掉,正是由于这些,带给我的生长是巨大的。好了,闲言少叙,下面让咱们进入今天的主题。
创作背景
由于”懒“得走路,所以发明了轿车飞机,由于”懒“得干苦力活,所以发明了机器协助咱们做,很早之前看到过这个梗,而我这次同样也是由于”懒“,所以才开发出了这个东西。这儿先卖个关子,先不说这个东西的作用,容我向我们吐槽一下这一段苦逼的阅历。在我实习刚入职不久,就迎来了自己第一个使命,由于自己对所参加的项目的事务并不太了解,所以只能先做一些类似测验的作业,比方就像这次,组长给了我一份Json
文件,当我翻开文件后看到数据都是一些地区名称,但当我随手的将滚动条往下一拉,瞬间发现不对劲,由于这个小小的文件行数竟然达到了1w+
❗❗❗❗
不禁让我脊背发凉,可是这时我的忧虑还没达到最坏的境地,究竟我还对详细的使命不了解。但当组长介绍使命内容,主要是让我将这些数据添加到数据库对应的表中,由于没有sql
脚本,只有这个json
文件,需求手动去操作,并且给我定的使命周期是两天。听到这个时刻时心里的慌张瞬间消失了,由于在之前我就了解过Navicat
支撑Json
格局的文件直接导入数据,一个这么简略的使命给我两天时刻,这不对错要让我带薪学习。
当我接下使命自傲翻开Navicat
的导入功用时发现了一个重要问题,尽管它支撑字段映射,可是给的Json
数据是省市区地址名称,里边包括着各种嵌套,说实话到想到这儿我现已慌了,并且也测验了一下字段只能单个的批量导入,并且不支撑嵌套的类型,忽然就理解为什么 给我两天的时刻。
这时候心里只能默默祈求现已有大神开发出了能处理这种数据的东西网站,可是通过一个小时的艰苦奋斗,但终究依旧是没有结果,网上有许多Json
转SQl
的东西网站,可是许多都支撑简略支撑一下生成创立表结构的句子,当场心如死灰,跑路的心都有了。但终究仍是咬着牙 真
手动初始化数据,其过程中的“趣味
” 实属无法用语言表达……
上述就是这个东西的开发背景,也是怕以后再给我分配这么“有趣
” 的使命。那么下面就给我们共享一下我克己的 Json转译SQL
东西,并且它也是一个完全免费的东西网站,同时这次也是将项目进行了 开源共享,我们也能够自己用现成的代码完本钱地部署测验,感兴趣的同学能够自行拉取代码!
开源地址:github.com/pdxjie/sql-…
项目简介
Sql-Translation (简称ST)是一个 Json转译SQL
东西,在同类东西的基础上增强了功用,为节省时刻、进步作业功率而生。并且遵循 “轻页面、重逻辑
” 的原则,由极简页面来处理杂乱使命,且它不仅仅是一个项目,而是以“下降时刻本钱、进步功率
”为目标的履行东西。
技能选型
前端:
- Vue
- AntDesignUI组件库
- MonacoEditor 修改器
- sql-formatter SQL格局化
后端:
- SpringBoot
- FastJson
项目特点
-
内置主键:
JSON
块假如包括id字段,在选择建表操作模式时内部会主动为id设置primary key
-
支撑
JSON
数据生成建表句子:按照内置语法编写JSON
,支撑生成创立表的SQL
句子 -
支撑
JSON
数据生成更新句子:按照内置语法编写JSON
,支撑生成创更新的SQL
句子,可配置单条件、多条件更新操作 -
支撑
JSON
数据生成刺进句子:按照内置语法编写JSON
,支撑生成创刺进的SQL
句子,假如JSON
中包括多层
(children)子嵌套,可按照相关语法指定作为父级id的字段 - 内置操作语法:该东西在选取不同的操作模式时,内置特定的运用语法规范
-
支撑字段替换:需转译的
JSON
中字段与对应的SQL
字段不一致时能够选择字段替换 -
界面友爱:支撑在线修改
JSON
代码,支撑代码高亮、语法校验、代码格局化、查找和替换、代码块折叠等,体会良好
处理痛点
下面就让我来给我们介绍一下Sql-Translation 能够处理哪些痛点问题:
-
需求将很多JSON中的数据导入到数据库中,可是JSON中包括很多父子嵌套联系 ——> 能够运用本站
-
在进行JSON数据导入数据库时,遇到JSON字段与数据库字段不一致需求替换字段时 ——> 能够运用本站
-
根据Apifox东西来完成更新或新增接口(前提是对接口现已完成了设计作业),供给了Body体数据,并且不想手动编写SQL时 ——> 能够运用本站
对上述三点进行进行举例说明(按照顺序):
第一种状况:
{
"id": "320500000",
"text": "姑苏工业园区",
"value": "320500000",
"children": [
{
"id": "320505006",
"text": "斜塘大街",
"value": "320505006",
"children": []
},
{
"id": "320505007",
"text": "娄葑大街",
"value": "320505007",
"children": []
},
....
]
}
第二种状况:
第三种状况:
以上内容就是该东西的简略介绍,由于该东西内置了部分语法功用,想要了解本东西悉数东西以及想要动手操作的的同学请点击前往操作文档 ,该操作文档中包括了详细的语法介绍以及每种转换的详细示例数据 供给测验运用。
地址传送门
假如感兴趣的同学还希望能够到源码仓库给作者点个star⭐ 作为支撑,非常感谢!