一种erlang服务器和mysql数据库对接方法与流程
- 国知局
- 2024-07-31 23:10:22
本发明属于数据转换的,具体涉及一种erlang服务器和mysql数据库对接方法。
背景技术:
1、erlang服务器目前可以配置github仓库,该仓库的接口能够实现erlang服务器启动的时候连接mysql数据库,能用接口读取mysql数据库的指定字段的数据,但是读取返回的数据是各个字段原始数据的列表结构,在erlang服务器都需要一一判断是否需要解析,并在解析后才能在业务中使用,编写逻辑的开发人员必须要关注erlang数据和mysql数据中的转换,非常不方便。
技术实现思路
1、本发明的目的在于针对现有技术中的上述不足,提供一种erlang服务器和mysql数据库对接方法,以解决erlang服务器读取mysql数据库的指定字段的数据,读取返回的数据是各个字段原始数据的列表结构,不能直接在业务中使用的问题。
2、为达到上述目的,本发明采取的技术方案是:
3、一种erlang服务器和mysql数据库对接方法,包括:
4、构建建表sql脚本;
5、所述建表sql脚本中的每个表均添加有主键,每个表的每个字段均添加有comment描述,所述comment描述包括erlang默认值、erlang类型和字段描述;
6、通过建表sql脚本,初始化创建mysql数据库表;
7、解析所述建表sql脚本;
8、解析步骤包括:
9、对读取的建表sql脚本的内容按行进行解析;
10、解析表名,记录表名并初始化表名对应的字段列表为空列表;
11、从下一行开始匹配字段名,并将每个字段的comment描述解析为erlang默认值、erlang类型和字段描述,并追加到表名对应的字段列表中;
12、解析主键部分,得到字段名的数量并进行记录;
13、重复执行上述解析步骤,解析建表sql脚本中的其他表,直到建表sql脚本全部解析完成,并记录下所有表的解析信息;
14、基于所有表的解析信息,导出erlang数据结构定义的头文件,并将所述头文件引用到erlang服务器中。
15、在一些实施例中,所述erlang服务器配置有github仓库,所述github仓库包括读表接口和写表接口。
16、在一些实施例中,所述erlang服务器从mysql数据库读取数据,包括:
17、所述erlang服务器将表名和主键的读表结构传入读表接口中,根据表名、主键的读表结构从mysql数据库读表,得到对应的数据列表;
18、如果数据列表为空列表,读表接口直接返回表的默认erlang记录数据结构;
19、如果数据列表不为空列表,判断数据列表是否需要进行字段解析;
20、如果字段不需要解析,则在数据列表头部补充上表名,并将补充上表名的数据列表转换成erlang的元组结构,并基于头文件中的erlang数据结构,将元组结构识别为表的erlang记录数据结构,直接返回表的erlang记录数据结构;
21、如果字段需要解析,通过表名获得数据列表中所有字段的erlang类型列表,并对erlang类型列表依次进行判断,若属于tuple、list、term或map类型,则将数据列表获取到的二进制数据解析为erlang数据,解析完毕后,在数据列表头部补充上表名,并将补充上表名的数据列表转换成erlang的元组结构,并基于头文件中的erlang数据结构,将元组结构识别为表的erlang记录数据结构,直接返回表的erlang记录数据结构。
22、在一些实施例中,所述erlang服务器向mysql数据库写入数据,包括:
23、所述erlang服务器基于头文件中的erlang数据结构,将表的记录数据结构进行拆分,获得表名和各个字段的值的列表;
24、判断表是否需要进行字段解析;
25、如果不需要进行字段解析,根据表名获取表的所有字段名列表,将字段名列表和字段的值的列表依次组合为写表的数据结构,将表名和写表的数据结构传入到写表接口,写入mysql数据库中;
26、如果字段需要解析,通过表名获得数据列表中所有字段的erlang类型列表,并对erlang类型列表依次进行判断,若属于tuple、list、term或map类型,则将erlang数据解析为二进制数据,解析完毕后,根据表名获取表的所有字段名列表,将字段名列表和字段的值的列表依次组合为写表的数据结构,将表名和写表的数据结构传入到写表接口,写入mysql数据库中。
27、在一些实施例中,所述建表sql脚本的所有表名、字段名、键名均通过反引号进行标记。
28、在一些实施例中,包括:
29、获取所有表的解析信息;
30、通过模版生成表名与所有字段名列表的关系映射表,并在case匹配语句中增加一个表的匹配语句,配置到erlang服务器;
31、通过模版生成表名与erlang数据结构的初始值的关系映射表,并在case匹配语句中增加一个表的匹配语句,配置到erlang服务器;
32、通过模版生成表名与所有字段的类型列表的映射关系,在case匹配语句中增加一个表的匹配语句,配置到erlang服务器;
33、通过模版生成表名是否需要考虑字段数据的解析的映射关系表,在case匹配语句中增加一个表的匹配语句,配置到erlang服务器;
34、通过模版生成表名与主键的字段数量的映射关系表,在case匹配语句中增加一个表的匹配语句,配置到erlang服务器。
35、本发明提供的一种erlang服务器和mysql数据库对接方法,具有以下有益效果:
36、通过构建建表sql脚本;所述建表sql脚本中的每个表均添加有主键,每个表的每个字段均添加有comment描述,所述comment描述包括erlang默认值、erlang类型和字段描述;通过建表sql脚本,初始化创建mysql数据库表;解析所述建表sql脚本;解析步骤包括:对读取的建表sql脚本的内容按行进行解析;解析表名,记录表名并初始化表名对应的字段列表为空列表;从下一行开始匹配字段名,并将每个字段的comment描述解析为erlang默认值、erlang类型和字段描述,并追加到表名对应的字段列表中;解析主键部分,得到字段名的数量并进行记录;重复执行上述解析步骤,解析建表sql脚本中的其他表,直到建表sql脚本全部解析完成,并记录下所有表的解析信息;基于所有表的解析信息,导出erlang数据结构定义的头文件,并将所述头文件引用到erlang服务器中;能够将mysql数据库中读取出的数据通过头文件的erlang数据结构自动解析为erlang记录数据结构,也能将erlang记录数据结构方便的通过接口写入mysql数据库。
技术特征:1.一种erlang服务器和mysql数据库对接方法,其特征在于,包括:
2.根据权利要求1所述的一种erlang服务器和mysql数据库对接方法,其特征在于,所述erlang服务器配置有github仓库,所述github仓库包括读表接口和写表接口。
3.根据权利要求2所述的一种erlang服务器和mysql数据库对接方法,其特征在于,所述erlang服务器从mysql数据库读取数据,包括:
4.根据权利要求3所述的一种erlang服务器和mysql数据库对接方法,其特征在于,所述erlang服务器向mysql数据库写入数据,包括:
5.根据权利要求1所述的一种erlang服务器和mysql数据库对接方法,其特征在于,所述建表sql脚本的所有表名、字段名、键名均通过反引号进行标记。
6.根据权利要求1所述的一种erlang服务器和mysql数据库对接方法,其特征在于,包括:
技术总结本发明公开了一种erlang服务器和mysql数据库对接方法,属于数据转换的技术领域,通过构建建表sql脚本;通过建表sql脚本,初始化创建mysql数据库表;解析所述建表sql脚本;基于所有表的解析信息,导出erlang数据结构定义的头文件,并将所述头文件引用到erlang服务器中,能够将mysql数据库中读取出的数据通过头文件的erlang数据结构自动解析为erlang记录数据结构,也能将erlang记录数据结构方便的通过接口写入mysql数据库。技术研发人员:林刚受保护的技术使用者:成都辛克普雷科技有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/196213.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表