一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种跨平台、多语言的ORM服务框架解决方案的制作方法

2023-07-07 12:09:01 来源:中国专利 TAG:

技术特征:
1.一种跨平台、多语言的orm服务框架解决方案,其特征在于,包括以下步骤:步骤s1:grpc定义生成不同语言版本的客户端client,grpc对于服务端的接口定义生成不同语言的客户端代码;步骤s2:对于步骤s1中不同语言的客户端代码,创建对应的客户端,针对不同客户端语言封装thin wrapper轻量客户端;步骤s3:使用grpc的message指令定义表结构,生成语言的类,并将类对象操作当做表记录对象;步骤s4:使用grpc的service rpc指令定义orm操作接口所必需的数据结构;步骤s5:使用grpc的service rpc指令定义orm的操作接口;步骤s6:对表数据的crud进行操作。2.如权利要求1所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,所述步骤s4具体如下:步骤s41:grpc使用message指令定义数据库连接connection数据结构,结构体中包含数据库连接的唯一编号、用户名、密码、访问的数据库名称和访问的数据库实例地址url;步骤s42:grpc使用message指令定义数据库操作会话session数据结构,结构体中包含会话唯一编号、会话的可选配置属性map<属性名,属性值>集合;步骤s43:grpc使用message指令定义一个事务实例transaction数据结构,结构体中包含事务唯一编号,事务的可选设置参数map<参数名,参数值>集合;步骤s44:grpc使用message指令定义统一的错误kierror数据结构,结构体包含错误码、状态码和错误信息描述。3.如权利要求1所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,所述步骤s5包括以下步骤:步骤s50:grpc使用service rpc指令来定义打开数据库会话opensession操作,该操作参数为connection连接对象,表示访问的是对应连接所描述地址的数据库,返回值就是一个会话session实例,会话session保存了当前会话的编号和一些会话属性;步骤s51:grpc使用service rpc指令来定义关闭数据库会话closesession操作,该操作参数传入session会话对象,表示关闭的是session所描述的会话编号对应的会话内容,操作的返回值是kierror错误码,若关闭会话报错,则会返回错误,否则错误码为空;步骤s52:grpc使用service rpc指令来定义开始事务begintransaction操作,该操作传入参数是session对象,表示在这个会话上开启一个事务,操作的返回值就是一个transaction事务实例对象,用于表示这个事务上下文信息;步骤s53:grpc使用service rpc指令来定义提交事务committransaction操作,该操作传入的参数是transaction事务对象,表示把这个事务所关联的系列操作作为一个事务提交,该操作的返回值是kierror统一错误码,表示事务提交是否正确;步骤s54:grpc使用service rpc指令来定义回滚事务rollbacktransaction操作,该操作传入的参数是transaction事务对象,表示把这个事务所关联的系列操作回滚,操作的返回值是kierror,表示是否回滚成功;步骤s55:grpc使用service rpc指令来定义关闭事务closetransaction操作,表示关闭此事务的操作,释放此事务相关的资源,该操作的返回值是kierror表示是否关闭成功。
4.如权利要求3所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,所述步骤s5还包括以下步骤步骤s56:grpc使用service rpc指令来定义保存对象save操作,该操作的传入参数为会话session和对象实例,表示将此对象作为一条记录保存到数据库中,操作返回值为kierror,表示操作成功与否;步骤s57:grpc使用service rpc指令来定义更新对象update操作,该操作的传入产生为session会话和对象实例,表示将此对象实例更新到数据库对应记录中,操作返回值为kierror,表示操作成功与否;步骤s58:grpc使用service rpc指令来定义删除对象delete操作,该操作的传入产生为session会话和对象实例id唯一编号,表示将此对象实例id的记录从数据库中删除,操作返回值为kierror,表示操作成功与否;步骤s59:grpc使用service rpc指令来定义查询对象get操作,该操作的传入产生为session会话和过滤条件,表示从数据库中查询出满足条件的对象来。5.如权利要求1所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,所述步骤s6具体如下:步骤s60:在生成的“打开会话接口的代码”中,填入实现逻辑如下:验证用户,并打开连接,然后服务端创建一个会话session结构,并返回;步骤s61:在生成的“关闭会话closesession接口的代码”中,填入实现逻辑如下验证本地会话是否存在,若存在且未关闭,则关闭会话;步骤s62:在生成的“开始事务begintransaction接口的代码”中,填入实现逻辑如下:找到当前会话session,根据会话上下文信息,开启一个transaction事务实例,并返回事务id相关标志信息;步骤s63:在生成的“提交事务committransaction接口的代码”中,填入实现逻辑如下根据transaction中的事务编号,找到对应真实的事务实例,并调用其commit接口执行真实的事务提交操作,并返回执行状态信息;步骤s64:在生成的“回滚事务rollbacktransaction接口的代码”中,填入实现逻辑如下根据transaction中的事务编号,找到对应真实的事务实例,并调用其rollback接口执行真实的事务回滚操作,并返回执行状态信息;步骤s65:在生成的“关闭事务closetransaction接口的代码”中,填入实现逻辑如下根据transaction中的事务编号,找到对应真实的事务实例,调用其close接口执行真实的事务上下文资源释放操作,并返回执行状态信息。6.如权利要求5所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,所述步骤s6还包括步骤s66:在生成的“保存对象save接口的代码”中,填入实现逻辑如下找到会话是表示的数据库连接,解析为具体对象类型,得到其所代表的库表名字,然后把对象信息写入到对应的库表中,作为一条记录保存,并返回执行状态信息;步骤s67:在生成的“更新对象update接口的代码”中,填入实现逻辑如下找到会话是表示的数据库连接,解析为具体对象类型,得到其所代表的库表名字,然后
把对象信息更新到对应的库表中,并返回执行结果;步骤s68:在生成的“删除对象delete接口的代码”中,填入实现逻辑如下找到会话是表示的数据库连接,解析为具体对象类型,得到其所代表的库表名字,然后把对象编号所代表的记录,从对应库表中删除,并返回执行结果;步骤s69:在生成的“查询对象get接口的代码”中,填入实现逻辑如下找到会话是表示的数据库连接,解析为具体对象类型,得到其所代表的库表名字,再解析filter为对象筛选条件,最后从这个表里筛选满足对应筛选条件的对象记录出来,并返回。7.如权利要求1所述的一种跨平台、多语言的orm服务框架解决方案,其特征在于,还包括自定义实现一个start service启动服务的接口。

技术总结
本发明公开了一种跨平台、多语言的ORM服务框架解决方案,包括以下步骤:gRPC定义生成不同语言版本的client,gRPC对于服务端的接口定义生成不同语言的客户端代码;对于不同语言的客户端代码,创建对应的客户端,针对不同客户端语言封装轻量客户端;使用gRPC的message指令定义表结构,生成语言的类,并将类对象操作当做表记录对象;使用gRPC的service rpc指令定义ORM操作接口所必需的数据结构;使用gRPC的service rpc指令定义ORM的操作接口;对表数据的CRUD进行操作。本发明缓存通过KiORM的服务端实现,客户端并不保存任何数据缓存,从而降低客户端的压力,能够复用相同的查询缓存结果;进而提升内存利用率,也提高客户端的请求体验和稳定性。请求体验和稳定性。请求体验和稳定性。


技术研发人员:韦振源 王刚
受保护的技术使用者:上海恩毕可施科技有限公司
技术研发日:2023.03.20
技术公布日:2023/7/6
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表