前言
大家好!我是聪,这次给大家带来的是鱼皮开源项目 sql-father➕sql-mother 等于 sql 祖宗(sql-dog),没错依然是我的经典小狗系列,这次开发带着星球的两位小伙伴- @香香、@潇潇夜雨中和我的一位好友 shing 共同完成,在大家共同努力下 sql-dog 诞生了!
项目介绍💡
该项目后端基于 SpringBoot 3.0 + Java 17 + Redis +Mysql,前端基于React + Ant Design Pro 实现,提供一站式 SQL 练习平台,练完 SQL 建 SQL,一站式服务。
项目导航🧊
- 快速体验地址:SQL Dog
- 前端项目仓库:sql-dog-frontend
- 后端项目仓库:sql-dog-backend
架构设计图🎨
我们做了哪些改进📢
- 生成的 Json 数据格式更加精准,之前只能生成 String 类型,现在能根据不同的字段类型进行生成。
- 新增了 SQL 执行计划的分析,能让用户了解自己的 SQL 还有什么优化空间。
- 整合了 sql-mother 、sql-father ,提供一站式 SQL 练习平台,练完 SQL 建 SQL,一站式服务。
- 我们能生成 ER 图,通过 plantUML 代码的形式。
- 基于 TDD 的开发模式,每个功能都可以通过对应的单元测试来进行。
技术选型
攻克的点
- 安全问题,防止用户 SQL 注入(使用
webassembly
技术,在前端运行 SQLite 完成初始化)。 - 如果不让用户之间的数据互相污染(前端使用 SQLite 完成初始化)。
- 如何解析用户输入的 SQL( Druid )。
前端⭐
- React
- antd 组件库
- webassembly
- react-markdown
- monaco-editor
后端🧊
- SpringBoot3.0
- JAVA 17
- MySQL
- Redis
- Sa-Token(权限管理)
- sql-slow-mirror(自研 SQL 分析工具,项目地址:github.com/lhccong/sql… )
- Druid(SQL 解析)
环境搭建
🎉后端环境搭建
后端项目使用 SpringBoot3.0 开发,需要安装 JDK 17 、 MySQL 数据库、Redis。
在项目目录下的application.yml
修改自己的启动环境spring.profiles.active
= dev
然后找到同级文件application-dev.properties
,填写自己的环境配置(MySQL、Redis)。
🎉 前端环境搭建
前端项目使用 React 开发,需要安装 Node.js(Node 18 版本,请保持一致) 、npm 。
在项目目录下执行npm install
安装依赖,然后执行npm run start
启动项目。
贡献者🤝
后端:
前端:
项目界面
做题
执行结果
优化建议
代码生成
表大全
选择关卡
用户信息
后台管理
致谢
感谢鱼皮开源项目:
sql-father:github.com/liyupi/sql-…
sql-mother:github.com/liyupi/sql-…
感谢大家看到最后,未来我们还会继续优化,有 bug 以及相关建议的可以联系我们的大佬-香香:QH_666x
我是聪~希望可以跟大家一起学习,我的 Github:github.com/lhccong 如果里面有你感兴趣的项目不妨给我点个星星⭐和关注🔥,未来我还会持续写新的好玩的小项目。