阜阳建设网站公司天津疫情最新消息
【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】10 REST2SQL操作指南
【REST2SQL】11 基于jwt-go生成token与验证
【REST2SQL】12 REST2SQL增加Token生成和验证
【REST2SQL】13 用户角色功能权限设计
【REST2SQL】14 基于角色的数据权限设计与实现
0 部署环境
0.1 硬件DELL笔记本电脑
设备规格 Inspiron 7590
处理器 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz
机带 RAM 32.0 GB (31.8 GB 可用)
系统类型 64 位操作系统, 基于 x64 的处理器Windows 规格
版本 Windows 10 家庭中文版
版本号 22H2
安装日期 2021-04-22
操作系统内部版本 19045.5487
体验 Windows Feature Experience Pack 1000.19061.1000.0
0.2 VMware 虚拟机
虚拟机的下载、安装、使用略去5217字。
0.3 银河麒麟V10桌面操作系统
银河麒麟V10操作系统需要申请才能下载,分不同芯片组有很多版本,嫌申请麻烦可以下载社区版 https://www.openkylin.top/downloads/ 社区版有很多镜像下载站点。
安装还是挺简单快捷的。
关于银河麒麟操作系统的使用略去5217字
0.4 达梦数据库V8
达梦数据库的下载也需要申请,不同芯片组、操作系统安装包不同。 https://www.dameng.com/DM8.html
关于达梦数据库的安装、使用略去5217字。
达梦数据库安装后,没有自动加到银河麒麟操作系统的开始菜单里,主要自己手动添加,创建【达梦.Desktop】的文件如下:
[Desktop Entry]
Encoding=UTF-8
Name=达梦管理
Exec=sh /home/blma/dmdbms/tool/manager
Icon=/home/dxsoft/Downloads/smartgit/bin/test-64.png
Info="Spark"
Terminal=false
Type=Application
StartupNotify=true
此文件放到桌面( 桌面目录通常是/home/用户名/桌面 )就是桌面快捷方式,放到开始菜单目录( /usr/share/applications )就是开始菜单项。
0.5 宿主机的目录共享给虚拟机
在虚拟机设置-选项-共享文件夹启用并设置即可。
Linux 虚拟机:默认情况下,共享文件夹会挂载到/mnt/hgfs目录下。若该目录为空,可在终端中运行命令
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
,之后就能在/mnt/hgfs目录中找到共享文件夹并操作文件。
0.6 虚拟机网络适配
在虚拟机设置-硬件-网络适配器里设置网络即可:一般选桥接模式或NAT模式。
桥接模式:和宿主机在同一网段分配虚拟机一个IP地址
NAT模式:和宿主机在不同网段分配一个IP地址
注意如何想外部访问虚拟机需要关闭麒麟操作系统的防火墙。
查询虚拟机的IP地址可以在终端输入 ip addr
1 编译REST2SQL
编译REST2SQL在银河麒麟操作系统下的可执行程序。我用的开发及编译工具为 LiteIDE。可以在windows 10下交叉编译银河麒麟系统的可执行代码。
1.1 编译环境设置
LiteIDE的菜单【工具】-【选择环境】-Cross-linux64
# cross-compiler linux amd64GOROOT=D:\NewThing\Go
#GOBIN=
GOARCH=amd64
GOOS=linux
CGO_ENABLED=0PATH=c:\mingw64\bin;%GOROOT%\bin;%PATH%LITEIDE_GDB=gdb
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C
主要修改go语言的安装跟目录 GOROOT 和 路径 PATH 其它的不用改。
1.2 编译
LiteIDE的菜单【编辑】-【Build】即可。编辑输出
D:/NewThing/Go/bin/go.exe build [D:/NewThing/GoGoGo/src/rest2sql]
成功: 进程退出代码 0.
编译成功后,在系统目录下生成一个 rest2sql的文件就是银河麒麟操作系统下的可执行文件。
2 复制
- 复制编译后的可执行文件rest2sql和配置文件config.json到宿主机的共享目录。
- 从宿主机复制到银河麒麟帐户的一个工作目录
3 启动REST2SQL服务
3.1 配置config.json文件
主要配置 hostPort 、connString、AccessControlAllowOrigin、openToken四项。
hostPort :REST服务的地址和端口
connString :达梦数据库的连接字符串
AccessControlAllowOrigin :前端网页的入口地址和端口
openToken :REST服务是否需要Token,测试后台服务时设置为 false
网页访问时设置为 true
{"hostPort":"192.168.241.129:5217","_hostPort_amis":"127.0.0.1:5217","_hostPort_Json2Web":"192.168.1.108:5217","connString":"dm://PTPS:dameng5217@127.0.0.1:5236/PTPS","_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,OPTIONS", "_REST":"GET,POST,PUT,DELETE", "SQL":"SELECT,INSERT,UPDATE,DELETE","_SQL":"SELECT,INSERT,UPDATE,DELETE","AccessControlAllowOrigin":"http://192.168.241.129:3000","_AccessControlAllowOrigin_vscode":"http://127.0.0.1:5500","_AccessControlAllowOrigin_amis":"http://localhost:81","_AccessControlAllowOrigin_Json2web":"http://192.168.1.116:3000","openToken":false,"_openToken":true
}
3.2 启动REST2SQL服务
双击 rest2sql 文件,【在终端运行】
服务启动成功截图如下:
4 调用REST2SQL服务
- 在浏览器输入如下地址:
http://192.168.241.129:5217/rest/pt_rules
- 浏览器返回数据:
{"data": {"rows": [{"F_DWEI": "方","S_KEY": "C0010","S_NAME": "空罐上限","S_NOTE": "1000","S_VALUE": "1000"},{"F_DWEI": "吨","S_KEY": "C0020","S_NAME": "管输需求上限","S_NOTE": "7000","S_VALUE": "70000"},{"F_DWEI": "吨","S_KEY": "C0030","S_NAME": "管输需求下限","S_NOTE": "20000","S_VALUE": "20000"},{"F_DWEI": "方","S_KEY": "C0040","S_NAME": "需求匹配误差","S_NOTE": "5000","S_VALUE": "5000"},{"F_DWEI": "方","S_KEY": "C0050","S_NAME": "企业匹配误差","S_NOTE": "10000","S_VALUE": "10000"},{"F_DWEI": "方","S_KEY": "C0060","S_NAME": "罐容下限","S_NOTE": "可用罐容大于下限才进油(极限库容-安全库容)","S_VALUE": "4000"}]},"msg": "","status": 0,"total": 6
}
- 终端反馈信息:
本文完