xmysql使用参考手册
-
- 一、前言
- 二、安装
- 三、功能特性
- 四、API 概览
- 五、使用示例
-
- 1. 获取所有APIs
- 2. 查询数据列表
- 3. 新增1条记录 POST
- 4. 查询1条记录 GET
- 5. 更新1条记录 PUT
- 6. 更新1条记录 PATCH
- 7. 删除1条记录 DELETE
- 8. 批量新增
- 9. 批量查询
- 10. 批量删除
- 11. 关系表查询
- 12. 复合主键查询
- 13. _p、_size 分页查询
- 14. _sort 排序
- 15. _fields 查询字段
- 16. _where 查询条件
- 17. FindOne 获取1条数据
- 18. Count 行数统计
- 19. Distinct 去重查询
- 20. Exists 判断数据是否存在
- 21. Group By 通过查询参数分组
- 22. Group By 通过API分组
- 23. Union Group By 多分组查询
- 24. Chart
- 25. Autochart
- 26. XJOIN 联表查询
- 27. Dynamic 动态查询
- 28. Upload 单文件上传
- 29. Uploads 多文件上传
- 30. Download 文件下载
- 31. Aggregate 聚合查询
- 32. Describe 表结构
- 33. Tables 数据库表
- 34. Version 版本
一、前言
今天介绍一个Nodejs
的不错的模块xmysql
xmysql
可以为 MySQL 数据库生成 REST APIs,然后通过Postman或其他方式访问这些APIs 来操作数据库(用在Postman脚本里就可以实现与MySQL的交互了(▽))
xmysql 是基于 node packages : express, mysql
详情请参考:
xmysql GitHub官网
xmysql npm package
二、安装
xmysql 要求 node >= 7.6.0(node -v
查询node版本)
npm 命令安装 xmysql 模块
npm install -g xmysql
xmysql 命令连接 employees 数据库
(employees数据库请参考:MySQL 测试样例数据Employees)
xmysql -u root -p 1234qwer -n 9966 -d employees
输出如下信息:
注意:
如果安装xmysql时,没加 -g 参数,仅本地安装,则 xmysql 命令在【应用目录】\node_modules.bin\xmysql 路径下;
需要先将当前工作目录切换到xmysql命令路径 ,如下cd F:\Chen\Nodejs\xmysql_demo\node_modules\.bin
然后再执行xmysql -u root -p 1234qwer -n 9966 -d employees
xmysql 命令参数说明:
Usage: index [options]
Options:
-V, --version output the version number
-h, --host <n> hostname of database / localhost by default
-u, --user <n> username of database / root by default
-p, --password <n> password of database / empty by default
-d, --database <n> database schema name
-r, --ipAddress <n> IP interface of your server / localhost by default
-n, --portNumber <n> port number for app / 3000 by default
-o, --port <n> port number for mysql / 3306 by default
-S, --socketPath <n> unix socket path / not used by default
-s, --storageFolder <n> storage folder / current working dir by default / available only with local
-i, --ignoreTables <n> comma separated table names to ignore
-a, --apiPrefix <n> api url prefix / "/api/" by default
-y, --readOnly readonly apis / false by default
-c, --useCpuCores <n> use number of CPU cores (using cluster) / 1 by default
-h, --help output usage information
说明:
1)-V,–version 我本地输出是 undefined;
2)最后一行的 -h 参数,与第2行的 -h 参数冲突了,可以使用 --help 查看帮助信息
三、功能特性
参考:features
- 为任何 MySql数据库生成API
- 提供API,而无需考虑主键、外键、表等的命名约定
- 支持复合主键
- REST API 常用:CRUD、List、FindOne、Count、Exists、Distinct
- 批量插入、批量删除、批量读取
- 关联
- 分页
- 排序
- 列筛选-Fields
- 行筛选-Where
- 聚合函数
- 分组,具有(作为查询参数)
- 分组,拥有(作为一个单独的API)
- 一个API中包含多个分组
- 数字列的图表API
- Auto Chart API-(在原型设计时送给懒惰的人的礼物)
- XJOIN-(支持任意数量的JOIN)
- 支持视图
- 原型(仅在使用本地MySql服务器时提供功能)
- 运行动态查询
- 上载单个文件
- 上载多个文件
- 下载文件
- 运行状况和版本api
- 使用多个CPU内核
四、API 概览
参考:api-overview
五、使用示例
接下来以 Employees 数据库为例
(employees数据库请参考:MySQL 测试样例数据Employees)
1. 获取所有APIs
GET http://localhost:9966
2. 查询数据列表
GET http://localhost:9966/api/departments
3. 新增1条记录 POST
POST http://localhost:9966/api/departments
{"dept_no":"d010","dept_name":"test post"}
对应SQL:
INSERT INTO `departments` SET `dept_no` = 'd010', `dept_name` = 'test post'
4. 查询1条记录 GET
通过主键查询数据记录
GET http://localhost:9966/api/departments/d010
5. 更新1条记录 PUT
替换已存在的数据记录
PUT http://localhost:9966/api/departments
{"dept_no":"d010","dept_name":"test put"}
对应SQL:
REPLACE INTO `departments` SET `dept_no` = 'd010', `dept_name` = 'test put'
6. 更新1条记录 PATCH
通过主键更新数据记录
PATCH http://localhost:9966/api/departments/d010
{"dept_name":"test put"}
对应SQL:
UPDATE `departments` SET dept_name = 'test put' where dept_no = 'd010'
7. 删除1条记录 DELETE
通过主键删除数据记录
DELETE http://localhost:9966/api/departments/d010
8. 批量新增
批量新增数据,请求体body是 对象数组
POST http://localhos