CN115686589A - 实体类文件更新系统、方法及相应计算机设备和存储介质 - Google Patents
实体类文件更新系统、方法及相应计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115686589A CN115686589A CN202211258509.7A CN202211258509A CN115686589A CN 115686589 A CN115686589 A CN 115686589A CN 202211258509 A CN202211258509 A CN 202211258509A CN 115686589 A CN115686589 A CN 115686589A
- Authority
- CN
- China
- Prior art keywords
- file
- attribute
- entity class
- field
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了实体类文件更新系统、方法及相应计算机设备和存储介质,其中所述系统用于分别解析物理数据模型PDM文件和实体类文件,比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段,根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名,根据第二规则文件生成所述新增字段的属性数据类型,基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码,及将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。本发明可实现实体类文件基于物理数据模型文件的自动更新,大大减少了出错机会,并极大地提高了代码开发效率。
Description
技术领域
本申请涉及电数字数据处理领域,尤其涉及实体类文件更新系统、方法及相应计算机设备和存储介质。
背景技术
实体类主要是数据管理和业务逻辑处理层面上存在的类别。在日常JAVA软件开发工程中,每一张表都需要在代码中手动创建一个实体类,一一对应。实体类的代码在编写过程中,由于业务的变更,表结构会经常性的变动,新增字段是一种很常见的举动,此时实体类就必须实时进行更新操作。随着数据库表的不断增多、表字段频繁变化,代码的书写大部分时间都浪费在了实体类的修改过程中,极大地降低了代码开发效率。
因此,提供一款能自动更新注解形式实体类文件的工具至关重要。
发明内容
本发明提供一种实体类文件更新系统、方法及相应计算机设备和存储介质,其解决了注解形式实体类文件的自动更新问题。
在本发明的第一方面,提供一种实体类文件更新系统,该系统包括:
第一解析模块,用于解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型;
第二解析模块,用于解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名;
比较模块,用于比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段;
第一生成模块,用于根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名;
第二生成模块,用于根据第二规则文件生成所述新增字段的属性数据类型,其中所述第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系;
第三生成模块,用于基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码;
插入模块,用于将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。
在本发明的第二方面,提供一种实体类文件更新方法,该方法包括:
解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型;
解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名;
比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段;
根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名;
根据第二规则文件生成所述新增字段的属性数据类型,其中所述第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系;
基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码;
将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。
在本发明的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据本发明的第一方面的系统的功能或者实现根据本发明的第二方面的方法的步骤。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本发明的第一方面的系统的功能或者实现根据本发明的第二方面的方法的步骤。
按照本发明,通过分别解析物理数据模型PDM文件和实体类文件,比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段,根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名,根据第二规则文件生成所述新增字段的属性数据类型,基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码,及将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件,可实现实体类文件基于物理数据模型文件的自动更新,大大减少了出错机会,并极大地提高了代码开发效率。
结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
图1为根据本发明系统的一实施例的框图;
图2为根据本发明方法的一实施例的流程图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
下面参照附图对本发明的实施方式和实施例进行详细说明。
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
图1示出了根据本发明的实体类文件更新系统的一优选实施例的框图。
由于部分业务线数据库管理严格,连接所需的密码严格保密,通常不能直接连接并读到数据库里表的信息,开发人员只有最新版的物理数据模型(Physical Data Model,PDM)文件,我们在此提出基于PDM文件进行实体类文件的自动更新。
图1所示优选实施例的实体类文件更新系统包括:
第一解析模块102,用于解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型。开发人员可配置PDM文件的路径信息。由于PDM文件存储方式为DOM格式,我们可以采用DOM4J技术来进行PDM文件解析操作,解析到PDM文件中最新的表及字段信息,例如表名、字段名和字段类型。
第二解析模块104,用于解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名。可采用java反射技术解析实体类文件,解析到实体类文件中类的Table注解内容,属性的属性名称、类型与Column注解内容。类的Table注解里可以解析到实体类对应的数据库表名。属性的Column注解里,可以解析到该属性对应的表字段名称。
比较模块106,用于比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段。具体地,对从PDM文件解析到的字段名与从实体类文件解析到的表字段名称进行比较,实体类文件解析到的表字段名称中不存在的即PDM文件中多出的字段名即为PDM文件相较于实体类文件的新增字段。
第一生成模块108,用于根据第一规则文件中的实体类属性命名规则生成新增字段的属性名。
在一实施例中,第一规则文件可预先定义,其例如包括是否采用驼峰命名法命名实体类属性的配置信息(也称为规则)。第一规则文件还可包括是否自动学习表字段类型与实体类中属性的数据类型的映射关系的配置信息,和/或在比较模块106的比较完毕后是否弹出编辑框允许用户自定义修改的配置信息。在另一实施例中,前述各个配置信息也可由用户进行配置。
当是否采用驼峰命名法命名实体类属性(配置)为“是”时,新增字段生成实体类属性时,就采用驼峰命名,例如user_desc字段,在实体类中属性就命名为userDesc。
当是否采用驼峰命名法命名实体类属性(配置)为“否”时,新增字段生成实体类属性时,默认还是用字段名,例如user_desc字段,在实体类中属性就命名为user_desc。
第二生成模块110,用于根据第二规则文件生成新增字段的属性数据类型。第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系。第二规则文件可预先定义,也可由用户进行配置。预定义的第二规则文件例如如下表所示:
在确定新增字段后,从第一解析模块的解析结果即可得到相应的数据库字段类型,然后通过第二规则文件即上表中的映射关系,即可生成新增字段对应的、实体类中属性的数据类型。
在实施例中,本发明系统还包括更新模块,用于在第一规则文件中是否自动学习表字段类型与实体类中属性类型的映射关系(配置)为“是”时,在第二解析模块104自动解析实体类时,可以解析到已有的表字段及相应的属性类型,然后基于解析到的已有表字段从PDM文件的解析结果可以确定相应表字段的相应数据类型,进而记录已有的属性类型与表字段在数据库里的数据类型的对应关系,更新至第二规则文件内。如果存在多种对应关系,则记录使用频率最高的一种对应关系到配置文件,从而使得本发明的方法具有了自动学习功能。换言之,预定义或配置的第二规则文件然后在是否自动学习表字段类型与实体类中属性类型的映射关系(配置)为“是”时可通过前述自动学习功能进行更新。
当是否自动学习表字段类型与实体类中属性类型的映射关系(配置)为“否”时,通过表字段生成属性的数据类型时,直接使用第二规则文件中配置的对应关系进行映射。
在实施例中,本发明系统还包括编辑模块,用于在第一规则文件中的对比完毕后是否弹出编辑框允许用户自定义修改(配置)为“是”时,弹出列表框列表展示新增字段的字段名以及生成的属性名和属性数据类型,供用户自定义修改,之后根据最终修改内容更新实体类。
对比完毕后是否弹出编辑框允许用户自定义修改(配置)为“否”时,直接根据新增字段的字段名以及生成的属性名和属性数据类型更新实体类。
第三生成模块112,用于基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码。预设模板的内容定义一个属性,注释内容为对应的表字段名,和该属性的get和set方法。预设模板例如如下所示:
插入模块114,用于将生成的JAVA代码插入到现有版本的实体类文件中(默认插入到实体类文件中最后一个“}”的上一行)并保存以更新实体类文件。
本发明系统通过读取PDM文件,自动提取表字段的信息,然后与已有的实体类内容进行对比,来自动更新注解形式实体类文件,极大地提高了软件开发效率并避免人为错误。
本发明系统可内置封装到代码开发工具中,便于开发人员使用。以Eclipse开发工具举例,Eclipse插件开发,新增wizard扩展点,扩展JAVA实体类文件右键New功能,新增“更新实体类”功能按钮。
图2示出了根据本发明的实体类文件更新方法的一优选实施例的流程图。
在步骤S202,解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型;
在步骤S204,解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名;
在步骤S206,比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段;
在步骤S208,根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名;
在步骤S210,根据第二规则文件生成所述新增字段的属性数据类型,其中所述第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系;
在步骤S212,基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码;
在步骤S214,将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。
在另一实施例中,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现结合图1所示所述的系统实施例或其它相应系统实施例的功能或者实现结合图2所示所述的方法实施例或其它相应方法实施例的步骤,在此不再赘述。
在另一实施例中,本发明提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现结合图1所示所述的系统实施例或其它相应系统实施例的功能或者实现结合图2所示所述的方法实施例或其它相应方法实施例的步骤,在此不再赘述。
在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、ROM、RAM、闪存、便携计算机存储介质如CD-ROM、DVD-ROM、闪盘驱动器和/或具有通用串行总线(USB)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。
前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。
Claims (10)
1.一种实体类文件更新系统,其特征在于,所述系统包括:
第一解析模块,用于解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型;
第二解析模块,用于解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名;
比较模块,用于比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段;
第一生成模块,用于根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名;
第二生成模块,用于根据第二规则文件生成所述新增字段的属性数据类型,其中所述第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系;
第三生成模块,用于基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码;
插入模块,用于将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
更新模块,用于响应于所述第一规则文件包括自动学习表字段类型与实体类中属性的数据类型的映射关系的规则,在解析实体类文件时,记录已有的属性数据类型与数据库表字段类型之间的对应关系并更新至所述第二规则文件。
3.根据权利要求2所述的系统,其特征在于,所述更新模块还用于响应于已有的属性数据类型与数据库表字段类型之间存在两种以上对应关系,选择使用频率最高的对应关系更新至所述第二规则文件。
4.根据权利要求1所述的系统,其特征在于,所述系统还包括:
编辑模块,用于响应于所述第一规则文件包括在比较完成后允许用户自定义修改的规则,列表展示并使用户能编辑新增字段的字段名以及生成的属性名和属性数据类型。
5.根据权利要求1所述的系统,其特征在于,所述实体类属性命名规则包括是否采用驼峰命名法命名实体类属性的规则配置。
6.根据权利要求1所述的系统,其特征在于,所述系统还包括:
第一配置模块,用于配置所述第一规则文件的规则。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
第二配置模块,用于配置第二规则文件中数据库中表字段类型与实体类中属性的数据类型的映射关系。
8.一种实体类文件更新方法,其特征在于,所述方法包括:
解析物理数据模型PDM文件得到数据库中的表名、字段名和字段类型;
解析实体类文件得到对应的数据库表名、属性名、属性类型和属性数据库对应的字段名;
比较物理数据模型PDM文件的解析结果和实体类文件的解析结果并根据比较结果确定物理数据模型PDM文件中的新增字段;
根据第一规则文件中的实体类属性命名规则生成所述新增字段的属性名;
根据第二规则文件生成所述新增字段的属性数据类型,其中所述第二规则文件记录数据库中表字段类型与实体类中属性的数据类型的映射关系;
基于新增字段的字段名以及生成的属性名和属性数据类型根据预设模板生成一段JAVA代码;
将生成的JAVA代码插入到所述实体类文件中并保存以更新实体类文件。
9.一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据权利要求1-7任一所述的系统的功能或者根据权利要求8所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-7任一所述的系统的功能或者根据权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258509.7A CN115686589A (zh) | 2022-10-14 | 2022-10-14 | 实体类文件更新系统、方法及相应计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258509.7A CN115686589A (zh) | 2022-10-14 | 2022-10-14 | 实体类文件更新系统、方法及相应计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686589A true CN115686589A (zh) | 2023-02-03 |
Family
ID=85066249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211258509.7A Pending CN115686589A (zh) | 2022-10-14 | 2022-10-14 | 实体类文件更新系统、方法及相应计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686589A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910063A (zh) * | 2023-07-21 | 2023-10-20 | 上海腾道信息技术有限公司 | 一种字段处理方法及系统 |
-
2022
- 2022-10-14 CN CN202211258509.7A patent/CN115686589A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910063A (zh) * | 2023-07-21 | 2023-10-20 | 上海腾道信息技术有限公司 | 一种字段处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032362B (zh) | 数据血缘分析方法、装置、电子设备和存储介质 | |
CN107545044A (zh) | 一种数据表建立方法、电子设备及存储介质 | |
US10394756B2 (en) | System and method for customizing archive of a device driver generator tool for a user | |
CN112732321B (zh) | 一种固件修改方法、装置、计算机可读存储介质和设备 | |
CN112162751A (zh) | 一种接口文档自动生成方法及系统 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN115686589A (zh) | 实体类文件更新系统、方法及相应计算机设备和存储介质 | |
CN111124380A (zh) | 一种前端代码生成方法 | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN110968307A (zh) | 一种基于智能生成基础代码的微服务构建方法及装置 | |
CN113138922A (zh) | 基于TestNG参数化读取Excel测试数据的方法 | |
CN115904482B (zh) | 接口文档生成方法、装置、设备及存储介质 | |
CN113741864B (zh) | 基于自然语言处理的语义化服务接口自动设计方法与系统 | |
CN116028062A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
US7716653B2 (en) | Configurable importers and resource writers for converting data into another format | |
CN114334052B (zh) | 病案首页生成系统、方法及相应设备和存储介质 | |
CN110764816A (zh) | 一种管理页面的方法、设备及介质 | |
CN115794057A (zh) | 命令行函数代码生成方法、装置和计算机可读存储介质 | |
CN114239529A (zh) | 基于模板引擎的文档生成方法、装置、设备及介质 | |
CN107102930A (zh) | 一种json格式日志的生成方法及装置 | |
CN113961238A (zh) | 对象转换方法、装置及电子设备和存储介质 | |
CN112799638B (zh) | 无侵入式快速开发方法、平台、终端及存储介质 | |
CN114089976B (zh) | 用于生成数据库操作语句的方法、设备和介质 | |
CN114253548A (zh) | 一种xml文档处理方法、装置、电子设备及存储介质 | |
JP4120879B2 (ja) | プログラム生成システム及び方法とそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |