AIRIOT物联网平台开发框架应用与实战
上QQ阅读APP看书,第一时间看更新

4.2 数据同步

AIRIOT工作表除在平台工作表之间进行字段关联数据同步引用外,还可同步本地及第三方数据库数据,支持常用数据库,包括MySQL、PostgreSQL、SQLite3、Oracle和SQLServer等。下面以MySQL为例介绍工作表数据同步的实现。

4.2.1 MySQL数据库基础

数据库是按照某种数据结构对数据进行组织、存储和管理的容器。MySQL是最流行的关系型数据库管理系统之一,通过MySQL,数据库用户可以轻松地实现数据库容器中各种数据库对象的访问,如增、删、改、查等操作,并可以轻松地完成数据库的维护工作,如备份、恢复、修复等。

下面以Windows10系统的MySQL数据库为例介绍数据同步功能。

本书对数据库的安装不再介绍,默认用户已安装完成MySQL数据库,创建用户并授权操作如图4-19所示,共4个步骤。

图4-19 创建用户并授权操作

1)创建用户:命令为“CREATE USER'用户名'@'IP' IDENTIFIED BY'密码';”,IP为%表示允许所有IP登录。

2)授权:授予所有权限命令为“GRANT ALL PRIVILEGES ON*.*TO'用户名'@'%'WITH GRANT OPTION;”。

3)刷新权限:更新权限后需刷新权限,命令为“FLUSH PRIVILEGES;”。

4)更改密码方式:远程登录须更改密码方式,命令为“ALTER USER '用户名'@'%'IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY'密码';”。

此时,局域网内任何IP均可通过新用户和密码登录数据库,并具有所有操作权限。

Navicat Premium是一款数据库管理工具,用户可以以单一程式同时连线到MySQL、SQLite、Oracle、MariaDB、Mssql及PostgreSQL数据库,使得管理不同类型的数据库更加方便。本书利用Navicat Premium进行数据库管理。

1)链接数据库。打开Navicat Premium软件,单击“文件”→“新建连接”→“MySQL…”弹出“新建连接”界面,如图4-20所示。填完信息后单击“测试连接”按钮,弹出“连接成功”提示。单击“连接成功”提示中的“确定”按钮,返回“新建连接”界面,单击界面下方“确定”按钮,退出新建连接界面,此时Navicat Premium主界面左侧显示已连接的数据库,表示成功连接数据库。此时尚未打开数据库(图标为灰色),双击已连接的数据库,可打开数据库(图标为绿色)。

图4-20 新建连接

2)新建数据库。选中打开的数据库,在右键菜单中选择“新建数据库”,打开“新建数据库”界面,如图4-21所示,填写完信息后单击“确定”按钮,退出“新建数据库”界面,返回Navicat Premium主界面,如图4-22所示。在ceshi2下多出数据库ceshi,可对其进行新建表、查询、增、删、查、改等操作,本例中新建了一个表,表名为user,有id和name两个字段。

图4-21 新建数据库

图4-22 Navicat Premium主界面

3)插入数据。单击界面左下角978-7-111-67273-9-Chapter04-35.jpg图标,可插入数据,如图4-23所示,各字段信息填完后,单击978-7-111-67273-9-Chapter04-36.jpg图标,完成该数据插入。在新建数据库及表时,字符集均为“utf8”,字符规则均为“utf8_general_ci”时,方可输入汉字,否则输入汉字时会报错。

图4-23 插入数据

4)查询数据。根据步骤单击“查询”→单击“新建查询”→输入“指令”→单击“运行”可查询数据,查询结果显示在界面下方,如图4-24所示。

图4-24 数据查询

4.2.2 数据同步步骤

添加一个新的“用户”工作表,用来同步MySQL数据库中的用户信息。

1.基本信息

“用户”工作表的基本信息如图4-25所示,“表名称”为“用户”,“表标题”为“用户”。

图4-25 “用户”工作表的基本信息

2.表定义

“用户”工作表的表定义如图4-26所示,包含一个数字控件和一个单行文本控件。数字控件的“key”为“number”,“名称”为“序号”,其余保持默认。单行文本控件的“key”为“name”,“名称”为“姓名”。若表定义中的字段与同步的数据库中的字段一致,则同步数据库中所有信息至工作表。添加完成后,查看该工作表,“用户”工作表查看页面如图4-27所示,“用户”工作表中暂无数据。

图4-26 “用户”工作表的表定义

图4-27 “用户”工作表查看页面

3.同步数据

同步数据配置如图4-28所示。

图4-28 同步数据配置

1)关系库名称:关系库名称为下拉列表,选项包括MYSQL、POSTGRE、SQLITE3、ORACLE和SQLSERVER,分别对应MySQL、PostgreSQL、SQLite3、Oracle和SQLServer五种数据库。这里选择MYSQL。

2)用户名和密码:用户名和密码为要同步数据库的用户名和密码。

3)IP地址:IP地址为要同步数据库的IP地址。

4)端口:端口为要同步数据库的端口,一般数据库安装时默认端口为3306。

5)数据库名:数据库名为要同步数据库的名字。

6)SQL语句:用于获取数据库中的数据,采用SELECT语句,遵循相应数据库规范,MySQL中推荐格式为“SELECT字段1,字段2,…,字段n FROM`表名`WHERE字段1>'{{字段1}}'ORDER BY字段1 ASC LIMIT 3”。其中“`表名`”两端为反单引号,“'{{字段1}}'”两端为单引号,“ORDER BY字段1 ASC”表示按字段1升序获取,“DESC”为降序,“LIMIT 3”为一次获取的最大数据条数。本例中为“SELECT number,name FROM`usr`WHERE number>'{{number}}'ORDER BY number ASC LIMIT 3”,表示从usr表中获取number和name两个字段,规则为number大于AIRIOT中number时一次最多获取3条数据,数据按number升序排序。

7)采集周期:采集周期为同步数据的时间间隔,单位为s,这里为10s。

8)列集合:列集合与SQL语句对应,用于设置获取规则,列集合配置如图4-29所示。列名“number”与SQL语句中及表定义(见图4-26)中序号的“key”一致。

图4-29 列集合配置

9)检测链接:用于检测数据库是否成功链接,单击“检测数据库链接”按钮,弹出链接结果提示,成功为978-7-111-67273-9-Chapter04-44.jpg,否则为链接失败,用户名、密码、IP地址等设置错误均会导致链接失败。

配置完成后,单击“保存”按钮,返回“工作表”页面,并提示“保存工作表成功”978-7-111-67273-9-Chapter04-45.jpg,若设置无误,则数据库中数据将同步至“用户”工作表,同步数据后“用户”工作表查看页面如图4-30所示,存在两条数据,正是从数据库中同步过来的数据。

图4-30 同步数据后“用户”工作表查看页面

在数据库user的usr表中添加两条数据,如图4-31所示。刷新“用户”工作表查看页面,刷新后“用户”工作表查看页面如图4-32所示,usr表中新添加的数据已经同步至工作表中。

图4-31 在数据库user的usr表中添加两条数据

图4-32 刷新后“用户”工作表查看页面