数据服务

一个数据服务首先它是一个服务(我们通常用的是http的服务,当然也可能会使用socket或mq,甚至webservice的服务),其次这个服务的任务是用来处理数据,而数据往往在数据库中存放。

一个数据库服务的逻辑如下:

  1. 获取调用者传参
  2. 判定调用者传参是否合法
  3. 处理调用者传来的参数以备使用
  4. 使用处理好的参数对某个(些)数据库表进行一次或多次增删改查
  5. 其它业务逻辑
  6. 返回给调用者服务执行结果

数据库服务

安装并启动一个数据库服务,我们推荐使用postgresqlmariadb(mysql)。通常的,如果数据库服务正常运行,可以通过一些数据库的工具访问它。postgresql的客户端工具推荐使用pgadminmysql的客户端工具推荐workbench.

如果是使用docker容器启动服务,有更简单的方式,打开浏览器地址http://127.0.0.1:8080(如果数据库服务在单独的服务器安装,则需要改成服务器ip地址),即可连接并查看数据库.

使用原子操作

我们封装了一个原子操作来帮助你完成数据库调用。

安装依赖及配置文件

在使用原子操作之前,需要安装原子操作的依赖

postgresql

对应配置文件mm.json

mysql

驱动一

对应配置文件mm.json

驱动二

对应配置文件mm.json

SqlServer

对应配置文件mm.json

Oracle

Sqlite

使用

创建表

一般情况下不会在服务中动态建表。这种情况下,数据库管理员需要限制给到开发人员连接数据库的用户的权限。

查询记录

用法一

常用的分页查询、复杂条件的查询等

用法二

查询条件如果是多条相等查询,推荐用以下方法,简便,且如果字段名称有重命名时,这里ts会自动提示,甚至自动重命名。

用法三

示例:查询首行代码

用法四

查询函数

其它用法

参考https://knexjs.org/上的用法。

增加记录

修改记录

删除记录

事务

Join

左连接,右连接,交叉连接用法与下相似,可推可得之。

注意

bigint

因为大数字类型(bigint)直接转为number可能会溢出,所以此类字段在查询时结果会被转化为string类型,这样的做法也方便服务向客户端通信。在增加或更新记录时没有这个限制,会自动进行类型转换。

mysql

使用mysql时,直接查出的对象不是纯粹的Object对象,必须进行处理。简单的处理就像上面示例给出的示例