代码生成方法、装置、设备及存储介质制造方法及图纸

技术编号:39312768 阅读:12 留言:0更新日期:2023-11-12 15:57
本公开提供了一种代码生成方法、装置、设备及存储介质,涉及数据处理领域,尤其涉及数据库技术领域。具体实现方案为:基于数据表描述信息,确定表结构信息以及查询函数描述信息,表结构信息包括业务数据库中的数据表的相关信息,查询函数描述信息包括用于业务端调用的查询函数的相关信息,且表结构信息和查询函数描述信息均记录于数据表描述信息中;基于表结构信息,生成数据结构声明;基于表结构信息以及查询函数描述信息,生成查询函数的实现代码;基于数据结构声明以及查询函数的实现代码,生成目标代码,目标代码用于实现业务端对业务数据库的访问。在对接不同业务时,代码生成方法能够自动生成实现业务端对数据库访问的目标代码,效率高。效率高。效率高。

【技术实现步骤摘要】
代码生成方法、装置、设备及存储介质


[0001]本公开涉及数据处理
,尤其涉及数据库
,具体涉及一种代码生成方法、装置、设备及存储介质。

技术介绍

[0002]应用程序通常需要将数据存储在用户设备上,例如存储于本地数据库中。对于一个具体业务,需要在数据库里创建一个数据表,表结构与业务所需的数据结构相对应,应用程序可以通过SQL(Structured Query Language)语句对数据库中的业务数据进行增加、删除、修改或查询。

技术实现思路

[0003]本公开提供了一种代码生成方法、装置、设备及存储介质。
[0004]根据本公开的一方面,提供了一种代码生成方法,包括:基于数据表描述信息,确定表结构信息以及查询函数描述信息,其中,表结构信息包括业务数据库中的数据表的相关信息,查询函数描述信息包括用于业务端调用的查询函数的相关信息,且表结构信息和查询函数描述信息均记录于数据表描述信息中;
[0005]基于表结构信息,生成数据结构声明;
[0006]基于表结构信息以及查询函数描述信息,生成查询函数的实现代码;
[0007]基于数据结构声明以及查询函数的实现代码,生成目标代码,目标代码用于实现业务端对业务数据库的访问。
[0008]根据本公开的另一方面,提供了一种代码生成装置,包括:确定单元,用于基于数据表描述信息,确定表结构信息以及查询函数描述信息,其中,表结构信息包括业务数据库中的数据表的相关信息,查询函数描述信息包括用于业务端调用的查询函数的相关信息,且表结构信息和查询函数描述信息均记录于数据表描述信息中;
[0009]第一生成单元,用于基于表结构信息,生成数据结构声明;
[0010]第二生成单元,用于基于表结构信息以及查询函数描述信息,生成查询函数的实现代码;
[0011]第三生成单元,用于基于数据结构声明以及查询函数的实现代码,生成目标代码,目标代码用于实现业务端对业务数据库的访问。
[0012]根据本公开的另一方面,提供了一种电子设备,包括:
[0013]至少一个处理器;以及
[0014]与该至少一个处理器通信连接的存储器;其中,
[0015]该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开实施例中任一的方法。
[0016]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开实施例中任一的方法。
[0017]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开实施例中任一的方法。
[0018]本公开实施例提供的代码生成方法、装置、设备及存储介质,通过基于数据表描述信息,确定表结构信息以及查询函数描述信息,其中,表结构信息包括业务数据库中的数据表的相关信息,查询函数描述信息包括用于业务端调用的查询函数的相关信息,且表结构信息和查询函数描述信息均记录于数据表描述信息中;基于表结构信息,生成数据结构声明;基于表结构信息以及查询函数描述信息,生成查询函数的实现代码;基于数据结构声明以及查询函数的实现代码,生成目标代码,目标代码用于实现业务端对业务数据库的访问。在对接不同业务时,只需要维护不同业务的数据表描述信息,便可自动生成能够实现业务端应用程序对数据库访问的目标代码,简化了业务接入的工作量,且开发效率高,通用性好。
[0019]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0021]图1为应用本公开实施例的代码生成方法的系统的结构示意图;
[0022]图2是根据本公开实施例提供的代码生成方法的示意图;
[0023]图3是根据本公开实施例提供的代码生成方法的应用架构图;
[0024]图4是根据本公开实施例提供的代码生成方法的应用流程图;
[0025]图5A是根据本公开实施例提供的数据表描述信息的示意图;
[0026]图5B是根据图5A生成的数据结构声明的示意图;
[0027]图5C是根据图5A生成的查询函数的实现代码的示意图;
[0028]图6是根据本公开另一实施例提供的代码生成方法的示意图;
[0029]图7是根据本公开实施例提供的代码生成装置的示意图;
[0030]图8是用来实现本公开实施例的代码生成方法的电子设备的框图。
具体实施方式
[0031]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032]本公开实施例提供一种代码生成方法、装置、电子设备及存储介质。具体地,本公开实施例的代码方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、穿戴式智能设备、飞行器、智能车载终端等设备,终端还可以包括客户端,该客户端可以是音频客户端、视频客户端、浏览器客户端、即时通信客户端或小程序等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服
务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0033]相关技术中,应用程序经常需要将数据存储在用户设备上,例如在用户设备中使用本地数据库,该本地数据可以是轻型数据库(SQLite)等。
[0034]通常的做法是,对于一种具体业务,在数据库里创建一个数据表,表结构与业务所需的数据结构相对应,应用程序通过SQL语句对业务数据进行增删改查。
[0035]但是,相关技术中存在的问题如下:
[0036](1)当业务种类较多时,每种业务都需建立自己的数据表,然后通过各自对应的接口代码进行对应数据表的查询访问,但各种业务之间的应用模式(接口代码的功能)是重复的,存在人力浪费。
[0037](2)SQL语句往往与业务代码混杂,不易维护。
[0038](3)当表结构需要变化时,版本之间的升级容易出问题。
[0039]以下结合具体方式对上述问题进行说明,相关技术中,应用程序使用本地数据库的具体方式包括以下几种:
[0040](1)直接使用SQL语句:应用程序采用字符串拼装的方式产生SQL语句本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码生成方法,包括:基于数据表描述信息,确定表结构信息以及查询函数描述信息,其中,所述表结构信息包括业务数据库中的数据表的相关信息,所述查询函数描述信息包括用于业务端调用的查询函数的相关信息,且所述表结构信息和所述查询函数描述信息均记录于所述数据表描述信息中;基于所述表结构信息,生成数据结构声明;基于所述表结构信息以及所述查询函数描述信息,生成所述查询函数的实现代码;基于所述数据结构声明以及所述查询函数的实现代码,生成目标代码,所述目标代码用于实现所述业务端对所述业务数据库的访问。2.根据权利要求1所述的方法,其中,基于所述表结构信息,生成数据结构声明,包括:基于所述表结构信息,确定所述数据表中字段的字段名以及所述字段对应的字段类型;基于所述字段名以及所述字段类型,生成所述数据结构声明。3.根据权利要求1或2所述的方法,其中,所述查询函数描述信息包括所述查询函数以及所述查询函数对应的查询语句描述;基于所述表结构信息以及所述查询函数描述信息,生成所述查询函数的实现代码,包括:基于所述表结构信息以及所述查询函数描述信息,生成所述查询语句描述对应的查询语句;基于所述查询语句描述,对所述查询函数的输入参数进行参数绑定,得到参数绑定函数;基于所述查询语句以及所述参数绑定函数,生成所述查询函数的实现代码。4.根据权利要求3所述的方法,其中,基于所述表结构信息以及所述查询函数描述信息,生成所述查询语句描述对应的查询语句,包括:基于所述表结构信息以及所述查询语句描述,确定第一表名以及第一字段名,其中,所述第一表名为所述查询语句描述中所涉及的所述数据表的名称,所述第一字段名为所述查询语句描述中所涉及的所述数据表中字段的名称;基于所述查询语句描述,确定所述查询函数的所述输入参数;基于所述第一表名、所述第一字段名以及所述输入参数,生成所述查询语句。5.根据权利要求3或4所述的方法,其中,在所述查询函数需要向所述业务端返回查询结果的情况下,基于所述表结构信息以及所述查询函数描述信息,生成所述查询函数的实现代码,还包括:基于所述查询语句描述,确定所述查询函数的输出参数;基于所述输出参数,生成用于返回所述查询结果的返回函数;基于所述查询语句以及所述参数绑定函数,生成所述查询函数的实现代码,包括:基于所述查询语句、所述参数绑定函数以及所述返回函数,生成所述查询函数的实现代码。6.根据权利要求1

5中任一项所述的方法,所述数据表描述信息还包括所述业务数据库的当前版本信息;所述方法还包括:
基于更新数据,确定更新数据的目标版本信息以及所述更新数据中各个目标数据表的第一子版本信息;基于所述各个目标数据表的第一子版本信息以及所述当前版本信息,对所述业务数据库进行更新;基于所述目标版本信息,对所述当前版本信息进行更新。7.根据权利要求6所述的方法,其中,基于所述各个目标数据表的第一子版本信息以及所述当前版本信息,对所述业务数据库进行更新,包括:针对所述各个目标数据表中的第一目标数据表,在所述第一目标数据表的第一子版本信息高于所述当前版本信息的情况下,在所述业务数据库中创建所述第一目标数据表。8.根据权利要求6或7所述的方法,所述方法还包括:针对所述各个目标数据表中的第二目标数据表,基于所述更新数据,确定所述第二目标数据表中的各个目标字段的第二子版本信息;针对所述各个目标字段中的第一目标字段,在所述第一目标字段的第二子版本信息高于所述当前版本信息的情况下,在所述业务数据库中的与所述第二目标数据表对应的数据表中创建所述第一目标字段。9.根据权利要求6

8中任一项所述的方法,其中,所述数据表描述信息还包括所述业务数据库中的数据表的第一创建版本信息以及所述数据表中的字段的第二创建版本信息。10.根据权利要求1

9中任一项所述的方法,所述方法还包括:基于所述表结构信息,生成通用函数的实现代码;基于所述数据结构声明以及所述查询函数的实现代码,生成目标代码,包括:基于所述数据结构声明、所述通用函数的实现代码以及所述查询函数的实现代码,生成目标代码。11.一种代码生成装置,包括:确定单元,用于基于数据表描述信息,确定表结构信息以及查询函数描述信息,其中,所述表结构信息包括业务数据库中的数据表的相关信息,所述查询函数描述信息包括用于业务端调用的查询函数的相关信息,且所述表结构...

【专利技术属性】
技术研发人员:韩显涛
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1