【REST2SQL】10 REST2SQL操作指南
【REST2SQL】01RDB关系型数据库REST初设计
【REST2SQL】02 GO连接Oracle数据库
【REST2SQL】03 GO读取JSON文件
【REST2SQL】04 REST2SQL第一版Oracle版实现
【REST2SQL】05 GO 操作 达梦 数据库
【REST2SQL】06 GO 跨包接口重构代码
【REST2SQL】07 GO 操作 Mysql 数据库
【REST2SQL】08 日志重构增加输出到文件log.txt
【REST2SQL】09 给Go的可执行文件exe加图标和版本信息等
【REST2SQL】从设计到现学Go到实现,大约一个多月的时间,为了致敬费曼学习法(通过自己的语言,用最简单的话把一件事向别人讲清楚,并且让外行人也能听懂。)这一段时间输出了不少博文,主要目的是自己的学习过程记录一下。年龄大了脑子记不住了,需要的时候再回头看看。

REST2SQL核心功能就是连接数据库即可提供REST和SQL的CRUD服务。在config.json里设置数据库连接字符串及服务端口等参数,REST服务提供POST、GET、PUT、DELETE4种请求,SQL服务可执行INSERT、SELECT、UPDATE、DELETE4种SQL语句;请求结果返回JSON字符串(以后加上JSON SCHEMA)。开启REST2SQL服务,后台数据服务基本能覆盖到了,可以作为后端服务单独部署。
REST2SQL可以作为内部开发的运维工具,也可以对外提供REST服务,后端开发再也没有CRUD重复开发的烦恼。
0 我的开发测试环境
| 项目 | 版本 |
|---|---|
| 操作系统 | Windows 10 家庭中文版,4 位操作系统, 基于 x64 的处理器 |
| 编程语言 | Go 1.21.5 |
| Oracle | Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production |
| DM | DM Database Server 64 V8 DB Version: 0x7000c |
| MySQL | 8.0.35 MySQL Community Server - GPL x86_6 Win64 |
| 浏览器 | Microsoft Edge 120.0.2210.133 (正式版本) (64 位) |
| Curl | 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN Release-Date: 2023-03-20 |
| Postman | December 2023 (v10.21) |
1 REST2SQL文件
REST2SQL采用Go语言开发编译,只有4个文件,一个配置文件config.json,一个可执行文件rest2sql.exe,另外两个为操作指南。

2 REST2SQL配置config.json
用记事本打开config.json可配置REST2SQL,最重要是的数据库连接字符串connString。文件内容如下:
{"hostPort":"localhost:5217","connString":"mysql://blma:5217@(127.0.0.1:3306)/blma","_oracle":"oracle://blma:5217@127.0.0.1:1521/CQYH","_dm":"dm://BLMA:dameng5217@127.0.0.1:5236/BLMA","_mysql":"mysql://blma:5217@(127.0.0.1:3306)/blma","_mssql":"mssql://","_postgresql":"postgresql://","REST":"GET,POST,PUT,DELETE", "_REST":"GET,POST,PUT,DELETE", "SQL":"SELECT","_SQL":"SELECT,INSERT,UPDATE,DELETE"}
- hostPort 配置服务监听端口。
- connString 配置数据库连接字符串,下面有_oracle、_dm、_mysql的配置范例,目前支持这三种数据库,以后还会扩展。
- REST 配置可允许的REST请求,可在GET、POST、PUT、DELETE中选配,默认全部。
- SQL 配置可允许执行的SQL语句,可在SELECT、INSERT、UPDATE、DELETE中选配,默认SELECT
3 启动REST2SQL服务
Windows系统下双击rest2sql.exe即可启动服务,启动成功后显示如下信息:

第一行为当前启动的配置信息,第二行为监听启动成功。
2024/01/12 10:57:32 config:{mysql mysql://blma:5217@(127.0.0.1:3306)/blma localhost:5217 GET,POST,PUT,DELETE SELECT}
2024/01/12 10:57:32 Starting Http Server at localhost:5217
关闭此控制台窗口就停止提供服务。
4 REST请求操作
config.json文件里,配置 REST项,可以开启REST服务请求。只支持GET、POST、PUT、DELETE请求,可以设置0-4个请求,0个就是关闭REST请求。
"REST":"GET,POST,PUT,DELETE", "_REST":"GET,POST,PUT,DELETE",
4.1 GET请求
get请求支持where和orderby查询条件。
1.curl请求
curl http://127.0.0.1:5217/rest/kezz
curl http://127.0.0.1:5217/rest/kezz/?where=n_zzxj%3E300
curl http://127.0.0.1:5217/rest/kezz/?orderby=p_id
curl http://127.0.0.1:5217/rest/kezz/?where=n_zzxj%3E300&orderby=p_id
curl http://127.0.0.1:5217/rest/kezz/?orderby=p_id&where=n_zzxj%3E300

2. edge浏览器请求

3.Postman请求

4.2 POST请求
POST请求,url定位要请求的表,在加上data即可。
1.Postman请求

2.curl请求
注意windows 10的curl 双引号""需要转义\
curl -X POST http://127.0.0.1:5217/rest/kezz --data {\"p_id\":-300,\"s_dm\":\"200300\",\"s_mc\":\"REST3\"}

4.3 PUT请求
url加where定位要更新的记录。
1.Postman请求

2.curl请求
curl -X PUT http://127.0.0.1:5217/rest/kezz/?where=p_id=-200 --data {\"s_mc\":\"CURL\"}

4.4 DELETE请求
url加where定位要删除的记录。
1.Postman请求

2.curl请求
curl -X DELETE http://127.0.0.1:5217/rest/kezz/?where=p_id=-200

5 SQL执行操作
config.json文件里,配置 SQL项,可以开启SQL服务请求。只支持SELECT,INSERT,UPDATE,DELETE请求,可以设置0-4个请求,0个就是关闭SQL请求。
默认设置只能执行SELECT。
URL栏可以直接输入SQL即可执行。
5.1 执行SELECT语句
http://127.0.0.1:5217/sql/select * from kezz

5.2 执行INSERT语句
http://127.0.0.1:5217/sql/insert into kezz (p_id,s_dm,s_mc) values (-400,'400400','SQL')

5.3 执行UPDATE语句
http://127.0.0.1:5217/sql/update%20kezz%20set%20s_mc='update'%20where%20p_id%20=%20-400

5.4 执行DELETE语句
http://127.0.0.1:5217/sql/delete%20from%20kezz%20where%20p_id=-400

6 资源下载
REST2SQL实现连接数据库,数据库的表或视图即可提供REST的GET\POST\PUT\DELETE请求,SQL可执行SQL
https://download.csdn.net/download/sufuq/88684853
相关文章:
【REST2SQL】10 REST2SQL操作指南
【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…...
199_二叉树的右视图
描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 思路 对树进行深度优先搜索,在搜索过程中,我们总是先访问右子树。那么对于每一层来说,…...
第七讲_css浮动
css浮动 1. 设置浮动2. 浮动的特点3. 浮动的影响4. 解决浮动的影响4.1 解决父元素高度塌陷的问题4.2 解决对兄弟元素影响问题 1. 设置浮动 浮动是通过float属性设置,float取值范围: none:不浮动,默认值。left:向左浮…...
2024秋招,顺丰科技测试开发工程师一面
前言 今天回顾一下,一个被捞的全流程面试经历 时间线 9月21日测评 10月26日技术一面,本来是11点半开始,我正做另一个笔试呢,突然给我打电话开面 20分钟结束,一开始以为KPI,结果给过了 10月31日技术二…...
基于apache的http文件服务配置
背景: 公司的产品使用的第三方模组可以OTA,厂家提供的是window开启软件,这样就可以在本机做http下载服务器,然后使用端口映射的方式,公开到外网,这样就可以进行4G网络访问内网服务器了。但这个有个弊端&am…...
连铸工艺和模铸工艺有什么区别。
问题描述:连铸工艺和模铸工艺有什么区别。 问题解答: 连铸工艺和模铸工艺在多个方面存在显著差异: 指代不同: 模铸是成批大量生产锻件的锻造方法。连铸即为连续铸钢的锻造方法。 工艺不同: 模铸在锻压机械的作用…...
pyqt treeWidget树生成
生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…...
DataFunSummit:2023年云原生大数据峰会:核心内容与学习收获(附大会核心PPT下载)
随着数字化转型的深入推进,大数据技术已经成为企业获取竞争优势的关键因素之一。本次峰会汇聚了业界顶尖的大数据专家、企业领袖和技术精英,共同探讨云原生大数据领域的最新技术和趋势。本文将深入分析峰会的核心内容,并探讨参会者从中能学到…...
docker 容器添加指定网络地址
docker 容器添加指定网络地址 在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下: nginx …...
后端怎样防止重复提交订单?
参考文章 通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题, 如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后…...
数据结构之二叉搜索树
二叉搜索树 满足条件: 1.对于根节点:左子树中所有节点的值小于右子树中所有节点的值 2.任意节点的左右子树也是二叉搜索树,同样满足条件1 二叉搜索树的常用操作 我们将二叉搜索树封装为一个类 BinarySearchTree ,并声明一个成员变…...
《设计模式的艺术》笔记 - 抽象工厂模式
介绍 提供了一个创建一系列相关或相互依赖的对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。 在抽象工厂模式中,每个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构…...
7.11、Kali Linux中文版虚拟机安装运行教程
目录 一、资源下载准备工作 二、安装教程 三、kali linux换源 四、apt-get update 报错 一、资源下载准备工作 linux 中文版镜像历史版本下载:http://old.kali.org/kali-images/ 大家可以自行选择版本下载,本人下载的是2021版本 二、安装教程 打开vmvare wokst…...
Go+快速开始详细指南
Go快速开始 Go编程语言是为工程、STEM教育和数据科学设计的。 对于工程:用儿童能掌握的最简单的语言工作。对于STEM教育:学习一门可以在未来工作中使用的工程语言。对于数据科学:用同一种语言与工程师交流。 安装方法 现在,我们建议您从源代码安装Go。 注意:需…...
SQL:一行中存在任一指标就显示出来
当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。 1)如,将下面的数据处理成表格中的效果&…...
【代码随想录06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和
目录 454. 四数相加 II题目描述做题思路参考代码 383. 赎金信题目描述做题思路参考代码 15. 三数之和题目描述参考代码 18. 四数之和题目描述参考代码 454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你…...
NodeJs 第十五章 session
Session代表服务器和客户端一次会话的过程。 在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议…...
JRTP实时音视频传输(1)-必做的环境搭建与demo测试
1.需求 1)支持协议自动切换。在网络优的情况下使用TCP、网络差的情况下使用UDP,满足实时音视频传输需求, 2)支持RTCP ,流量控制,阻塞控制等。需要能支持RTCP,这样便能在这个基础上,…...
腿部臀部训练
坐式蹬腿器 100kg,是器械的极限了,也差不多是我的极限,深蹲是40kg,应该还可以加点,大腿外扩器55kg,没有尝试能不能做更重的,羡慕健身房里面的好身材的同学,自己得好好练 1.21健身房关…...
windows系统下docker软件中使用ubuntu发行版本的linux系统
1.软件下载 官网下载地址 下载安装之后,再去微软商店下载wsl软件,可以直接用,或者也可以使用命令行拉取(下面会讲) 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言:输入 winr 打开命令行进行下面…...
从防御者视角复盘:当你的Win11突然断网,如何快速排查是不是遭遇了ARP欺骗?
从防御者视角复盘:当你的Win11突然断网,如何快速排查是不是遭遇了ARP欺骗? 办公室里突然有人喊"网络断了",你的Win11电脑明明显示Wi-Fi已连接,却打不开任何网页。这种情况可能不只是简单的路由器故障——ARP…...
【实战篇】Nginx核心配置与性能优化全攻略
1. Nginx基础配置快速上手 第一次接触Nginx时,我被它简洁的配置文件结构惊艳到了。相比其他Web服务器动辄几百行的配置,Nginx的配置文件就像一份精心设计的菜谱,每个指令都恰到好处。先带大家看看最基本的配置结构: # 全局块 user…...
Qwen3.5-2B多场景案例:法律文书图识别+法条关联+类案推荐三合一系统
Qwen3.5-2B多场景案例:法律文书图识别法条关联类案推荐三合一系统 1. 轻量化多模态模型介绍 Qwen3.5-2B是Qwen3.5系列中的轻量化版本,仅有20亿参数规模,专为低功耗、低门槛部署场景设计。这款模型特别适合部署在端侧和边缘设备上࿰…...
从收音机到WiFi:LC并联谐振电路在实际通信系统里是怎么用的?
从矿石收音机到5G基站:LC并联谐振电路的百年进化史 当你拧动老式收音机的调谐旋钮时,金属指针在刻度盘上滑过不同电台的频率标记,耳机里传来忽大忽小的静电噪声,直到某个瞬间——声音突然清晰起来。这个看似简单的动作背后&#x…...
Legacy-iOS-Kit:让旧设备重获新生的开源解决方案
Legacy-iOS-Kit:让旧设备重获新生的开源解决方案 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 当你的…...
手把手教你用V4L2框架开发USB摄像头驱动(附UVC协议解析)
深入解析V4L2框架下的USB摄像头驱动开发与UVC协议实战 在嵌入式Linux开发领域,视频采集设备的驱动开发一直是工程师们需要掌握的核心技能之一。随着物联网和边缘计算的快速发展,USB摄像头在各种智能设备中的应用越来越广泛,从工业检测到智能家…...
从BGA封装到Xtacking架构:图解NAND堆叠技术如何影响SSD性能
从BGA封装到Xtacking架构:NAND堆叠技术如何重塑SSD性能格局 当一块企业级SSD的读写速度突破7GB/s时,工程师们发现传统的NAND封装技术正在成为性能提升的瓶颈。在PCIe 5.0时代,信号传输速率需要达到2400MT/s才能充分发挥带宽潜力,而…...
C++ 用户态协议栈:基于 DPDK 的 C++ 网络库开发与内核绕过技术分析
各位技术同仁,下午好!今天,我们将深入探讨一个在高性能网络领域至关重要的话题:C 用户态协议栈的开发,特别是如何基于 DPDK 构建一个高性能网络库,以及其背后的内核绕过技术。在现代数据中心和网络基础设施…...
Qwen-Image镜像快速入门:手把手教你用RTX4090D搭建多模态AI开发环境
Qwen-Image镜像快速入门:手把手教你用RTX4090D搭建多模态AI开发环境 1. 开篇:为什么选择Qwen-Image镜像? 如果你正在寻找一个开箱即用的多模态AI开发环境,特别是针对RTX 4090D显卡优化的大模型推理方案,那么Qwen-Ima…...
告别“AI只会聊天”:用OpenClaw+星链4SAPI打造你的办公自动化Agent
你有没有过这种时刻——邮箱右上角的红点像一道催命符,文件夹乱得像个数据坟场,日程表排得跟俄罗斯方块似的,领导一句“把本周情况汇总下”,你就得在聊天记录里搞考古发掘。打开AI,发现它除了陪你聊天,什么…...
