System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 自动生成Python实体的方法、装置、计算机设备及存储介质制造方法及图纸_技高网

自动生成Python实体的方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:40179154 阅读:10 留言:0更新日期:2024-01-26 23:46
本发明专利技术实施例公开了一种自动生成Python实体的方法、装置、计算机设备及存储介质,该方法包括获取输入的SQL语句;基于词法分析,将所述SQL语句分解为tokenType,并标记每个所述tokenType的类型;基于所述tokenType,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合;根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体;该方案,可以自动、灵活和通用地生成Python实体,方便用户在Python中操作和处理数据库中的数据,节省用户的时间和精力,提高数据交换和转换的效率。

【技术实现步骤摘要】

本专利技术涉及计算机,具体涉及一种自动生成python实体的方法、装置、计算机设备及存储介质。


技术介绍

1、目前应用程序的开发过程中会针对业务需求分析后设计数据库模型,然后根据数据库模型手动创建开发语言框架对应的实体model,最后通过orm框架完成对数据库表的增删改查;这里涉及到根据数据库模型结合开发语言框架创建对应的实体,目前针对python开发语言业界并无现成可用的自动化生成工具,所以都是每次新建表后根据表结构手写创建实体model,当表数量或者字段过多时,这种工作较繁琐、易出错,成为了需重复做且毫无意义的体力劳动。


技术实现思路

1、基于此,有必要针对上述问题,提出一种自动生成python实体的方法、装置、计算机设备及存储介质。

2、为实现上述目的,本申请第一方面提供一种自动生成python实体的方法,所述方法包括:

3、获取输入的sql语句;

4、基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型;

5、基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合;

6、根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体。

7、在一些实施方式中,所述基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型,包括:

8、将所述sql语句根据词法分析进行分割,将其划分为一个个的词法单元;

9、识别并筛选所述词法单元中的标识符;

10、标记所述标识符的类型,所述标识符的类型包括表名、字段属性、pid。

11、在一些实施方式中,所述基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型,还包括:

12、若出现非法的字符序列或语法不符合规范,则进行错误处理,所述错误处理包括抛出异常或记录错误信息。

13、在一些实施方式中,所述基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,包括:

14、从所述tokentype中筛选出表示表名的标识符,并将其存储在一个集合中,所述集合为实体名称集合。

15、在一些实施方式中,所述基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,还包括:

16、从所述tokentype中筛选出表示字段属性的标识符,并将其存储在一个集合中,所述集合为实体属性集合。

17、在一些实施方式中,所述基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,还包括:

18、从所述tokentype中筛选出表示实体名称与字段属性之间关联关系的标识符,并将其存储在一个集合中,所述集合为实体关系集合。

19、在一些实施方式中,所述根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体,包括:

20、根据python实体规范定义实体编辑模板;

21、基于所述实体编辑模板,结合所述实体名称集合、实体属性集合和实体关系集合生成python实体。

22、为实现上述目的,本申请第二方面提供一种自动生成python实体的装置,所述装置包括:

23、获取模块,所述获取模块用于获取输入的sql语句;

24、分解模块,所述分解模块用于基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型;

25、确定模块,所述确定模块用于基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合;

26、生成模块,所述生成模块用于根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体。

27、为实现上述目的,本申请第三方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

28、获取输入的sql语句;

29、基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型;

30、基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合;

31、根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体。

32、为实现上述目的,本申请第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

33、获取输入的sql语句;

34、基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型;

35、基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合;

36、根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体。

37、采用本专利技术实施例,具有如下有益效果:

38、本专利技术通过词法分析的方法,从sql语句或sql文件中识别出实体名称、实体属性和关系,并根据预定义的规则,生成相应的python数据结构或对象。该技术可以根据任意格式和复杂度的sql语句或文件,自动识别出其中涉及的实体、字段属性、字段注释以及关系;以生成灵活和通用的python数据结构或对象,方便用户在python中操作和处理数据库中的数据;可以节省用户手动编写或转换数据结构或对象的时间和精力,提高数据库和python之间的数据交换和转换效率;同时也避免了手动编写绘制实体model包括字段注释出错的情况。

本文档来自技高网...

【技术保护点】

1.一种自动生成Python实体的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的自动生成Python实体的方法,其特征在于,所述基于词法分析,将所述SQL语句分解为tokenType,并标记每个所述tokenType的类型,包括:

3.根据权利要求2所述的自动生成Python实体的方法,其特征在于,所述基于词法分析,将所述SQL语句分解为tokenType,并标记每个所述tokenType的类型,还包括:

4.根据权利要求3所述的自动生成Python实体的方法,其特征在于,所述基于所述tokenType,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,包括:

5.根据权利要求4所述的自动生成Python实体的方法,其特征在于,所述基于所述tokenType,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,还包括:

6.根据权利要求5所述的自动生成Python实体的方法,其特征在于,所述基于所述tokenType,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,还包括:

7.根据权利要求6所述的自动生成Python实体的方法,其特征在于,所述根据所述实体名称集合、实体属性集合和实体关系集合,生成相应的python实体,包括:

8.一种自动生成Python实体的装置,其特征在于,所述装置包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种自动生成python实体的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的自动生成python实体的方法,其特征在于,所述基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型,包括:

3.根据权利要求2所述的自动生成python实体的方法,其特征在于,所述基于词法分析,将所述sql语句分解为tokentype,并标记每个所述tokentype的类型,还包括:

4.根据权利要求3所述的自动生成python实体的方法,其特征在于,所述基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性集合和实体关系集合,包括:

5.根据权利要求4所述的自动生成python实体的方法,其特征在于,所述基于所述tokentype,根据预定义规则,分别确定实体名称集合、实体属性...

【专利技术属性】
技术研发人员:梁先亮
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1