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

一种从Java应用程序中同步数据库字段枚举的方法、装置、电子设备及储存介质与流程

2022-06-05 08:05:22 来源:中国专利 TAG:
一种从java应用程序中同步数据库字段枚举的方法、装置、电子设备及储存介质
技术领域
:1.本发明属于数据处理
技术领域
:,具体涉及一种从java应用程序中同步数据库字段枚举的方法及装置。
背景技术
::2.业务的数据库表中有很多字段都是枚举字段,枚举值需要被有效地维护,以保证数据应用可以及时获取枚举值的含义,从而进行数据开发和统计分析。伴随业务的发展,数据库表字段的枚举值可能发生变动,然而类似的字段新增变动并不容易同步到数据库表字段备注中。3.目前的枚举值维护方式为人工维护,然而现有的维护数据库表枚举值的方法存在效率低、时效差和数据不准确的问题,需要工程等手动单独处理枚举字段、枚举值有更新和新增时不能保证变更信息被及时通知到相关人员进行迭代修改;因依赖人工,容易遗漏,且不能及时准确地维护,会导致产生错误的分析结论。技术实现要素:4.本发明的目的是要解决上述的技术问题,提供一种从java应用程序中同步数据库字段枚举的方法及装置。5.为了解决上述问题,本发明按以下技术方案予以实现的:6.第一方面,本发明提供了一种从java应用程序中同步数据库字段枚举的方法,所述方法包括如下步骤:7.获取与数据库表定义相关的java模型;8.扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;9.若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;10.存储所述目标字段的表名、字段名、取值和取值定义。11.结合第一方面,本发明还提供了第一方面的第1种优选实施方式,具体的,在获取与数据库表定义相关的java模型之间,所述方法还包括如下步骤:12.配置java应用中数据库的字段值定义,使字段值相适配;13.基于字段值定义的配置情形,建立第一提取接口,所述第一提取接口为让定义-数据字段值的枚举类实现一个定义类/枚举类提取枚举值方法的接口。14.结合第一方面,本发明还提供了第一方面的第2种优选实施方式,具体的,还包括:15.建立第二提取接口,所述第二提取接口为让定义字段值的类或接口实现一个从普通类提取字段值定义的方法的接口;16.和/或,当字段值定义为在普通类或接口中,隐含有字段值,没有字段值定义时,建立一个能返回存有字段值定义映射的map《object,string》类型数据的公有无参数静态流程。17.结合第一方面,本发明还提供了第一方面的第3种优选实施方式,具体的,所述方法还包括:18.根据预设的关联注解,建立字段值定义与数据库字段的关联。19.第二方面,本发明还提了一种从java应用程序中同步数据库字段枚举的装置,所述装置包括:20.获取模块,其用于获取与数据库表定义相关的java模型;21.扫描模块,其用于扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;22.若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;23.储存模块,其用于存储所述目标字段的表名、字段名、取值和取值定义。24.结合第二方面,本发明还提供了第二方面的第1种优选实施方式,具体的,所述装置还包括,配置模块,其用于执行如下步骤:25.配置java应用中数据库的字段值定义,使字段值相适配;26.基于字段值定义的配置情形,建立第一提取接口,所述第一提取接口为让定义-数据字段值的枚举类实现一个定义类/枚举类提取枚举值方法的接口。27.结合第二方面,本发明还提供了第二方面的第2种优选实施方式,具体的,所述配置装置还执行如下步骤:28.建立第二提取接口,所述第二提取接口为让定义字段值的类或接口实现一个从普通类提取字段值定义的方法的接口;29.和/或,当字段值定义为在普通类或接口中,隐含有字段值,没有字段值定义时,建立一个能返回存有字段值定义映射的map《object,string》类型数据的公有无参数静态流程。30.结合第二方面,本发明还提供了第二方面的第3种优选实施方式,具体的,所述装置还包括:31.关联模块,其用于根据预设的关联注解,建立字段值定义与数据库字段的关联。32.第三方面,本发明还提供了一种电子设备,包括处理器和存储器,所述处理器与存储器连接,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如第一方面所述的从java应用程序中同步数据库字段枚举的步骤。33.第四发明,本发明还提供了一种具有计算机可执行的计算机程序代码的计算机可读储存介质,该计算机程序被执行时执行如第一方面所述的方法。34.与现有技术相比,本发明的有益效果是:35.本发明提供了一种从java应用程序中同步数据库字段枚举的方法,所述方法包括如下步骤:获取与数据库表定义相关的java模型;扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;存储所述目标字段的表名、字段名、取值和取值定义。本发明利用java模型实现了对java应用的数据库表中的枚举值等数据的自动提取和同步,解决了人工维护的弊端,实现了高效率、高时效和准确不遗漏的优势。附图说明36.下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:37.图1是本发明的从java应用程序中同步数据库字段枚举的方法的流程示意图;38.图2是本发明的从java应用程序中同步数据库字段枚举的装置的组成图。具体实施方式39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。40.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。41.下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。42.本发明实施例提出一种从java应用程序中同步数据库字段枚举的方法,所述方法包括如下步骤:获取与数据库表定义相关的java模型;扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;存储所述目标字段的表名、字段名、取值和取值定义。本发明利用java模型实现了对java应用的数据库表中的枚举值等数据的自动提取和同步,解决了人工维护的弊端,实现了高效率、高时效和准确不遗漏的优势。43.本发明一实施例提供的一种从java应用程序中同步数据库字段枚举的方法的整体技术构思,其具体步骤如下:44.步骤一:完成提取字段值的适配工作;步骤二:建立对应数据库表的java模型与上述字段值的关联;步骤三:对java模型进行扫描,提取相关信息。45.本发明的核心思路如下:经申请人创造性的在java应用中,有目的性的选择定义有跟数据库表对应的java模型,并从中能提取数据库表名及字段名等信息。同时还在java应用中,选择定义有字段值和字段值意义说明的枚举类或常量类。通过让枚举类或常量类实现字段提取接口,同时利用自定义注解,建立字段与枚举类或常量类的关联关系。在应用启动或者其它触发事件发生的时候,扫描被自定义注解修饰的字段,即可自动化提取出数据库表/字段/字段值/字段值定义等信息。并且,还具备如下效果:当java使用的枚举类或者常量类发生变动,新增字段值定义的时候,也能自动化提取到最新的字段值定义信息,可以供查阅及sql关联使用。46.具体的,关于步骤一:完成提取字段值的适配工作,包括如下步骤:47.s10:配置java应用中数据库的字段值定义,使字段值相适配。48.在一种实施中,对应数据库的字段值定义有如下5种情形:49.第一种:字段值定义有字段值,也有字段值定义;例如:[0050][0051][0052]第二种:字段值定义只包含字段值,没有字段值定义;例如:[0053][0054]第三种:字段值定义隐含有字段值,也有字段值定义;例如:[0055][0056]第四种:字段值定义单独定义在普通类或接口中,隐含有字段值,没有字段值定义;例如:[0057][0058]第五种:字段值定义耦合与其它字段枚举值,定义在普通类或接口中,隐含有字段值,没有字段值定义;例如:[0059][0060][0061]s20:基于字段值定义的配置情形,建立适配接口。[0062]在一种实施中,针对第一、第二和第三种情形,建立第一提取接口,所述第一提取接口为让定义-数据字段值的枚举类实现一个定义类/枚举类提取枚举值方法的接口。该接口可以定义如下:[0063][0064]同时,针对第一、第二和第三种情形,字段值枚举类适配后如下:[0065][0066]在另一种实施中,针对第四种情形,建立第二提取接口,可以让定义字段值的类或接口实现一个定义了从普通类提取字段值定义的方法的接口,该接口定义可以如下:[0067][0068][0069]在另一种实施中,针对第五种情形5,当字段值定义为在普通类或接口中,隐含有字段值,没有字段值定义时,建立一个能返回存有字段值定义映射的map《object,string》类型数据的公有无参数静态流程。[0070]具体的,通过定义一个能返回存有字段值定义映射的map《object,string》类型数据的公有无参数静态方法,例如:[0071][0072]具体的,关于步骤二:建立对应数据库表的java模型与上述字段值的关联,包括如下步骤:[0073]s100:根据预设的关联注解,建立字段值定义与数据库字段的关联。[0074]上述步骤一目的是为了完成适配工作,以方便扫描过程中提取字段值定义情况。在完成上述适配后,可以建立字段值定义与数据库字段的关联,这需求借助一个注解,注解的各个字段用途说明可以参考对应代码文档。[0075]需要说明的是:如果没有做上述几步适配工作,可以直接在关联注解字段中声明,例如:[0076]@datadict(keys={"1","2","3"},descriptions={"1的说明","2的说明","3的说明"},fieldname="fieldname",tablename="tablename")[0077]其中,keys和descriptions依次是字段值与对应的字段值定义。一般而言,能从java模型中提取出对应的表名和字段名,如果有差池,可以通过关联字段上的tablename和fieldname字段,分别覆盖定义默认提取的表名和字段名。[0078]在本发明的一种实施中,关联注解的定义如下:[0079][0080][0081][0082]需要说明的是,本发明的字段注解修饰在对应数据库表的java模型的相关字段上,基于上述示例,模型定义可以参考如下:[0083][0084][0085]关于本发明的步骤三:对java模型进行扫描,提取相关信息。具体的,如图1所示,包括如下步骤:[0086]s1000:获取与数据库表定义相关的java模型;[0087]s2000:扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;[0088]s2100:若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;[0089]s3000:存储所述目标字段的表名、字段名、取值和取值定义。[0090]具体的,关于步骤s1000-s3000中,完成了字段值定义与数据库表java模型的关联之后,方能执行扫描工作。在细说扫描逻辑之前,可以补充一点的是:无论使用那种持久层框架,无论出于通用的规约,还是出于普通的管理目的,一个java应用一般都在一个相同的位置定义数据库表模型。[0091]在一种具体实施中,可以通过配置模型路径或者将模型路径作为入参调用扫描方法能,极大增加扫描效率。扫描逻辑参考如下:[0092][0093][0094][0095][0096][0097]而相关获取表字段名等信息的技术手段,是本领域技术人员基于本技术的记载可实现的,在此不过多说明。[0098]基于上述示例可见,扫描动作从scan()方法开始,该方法根据配置的扫描路径,通过java反射机制,扫描被关联注解datadict修饰的字段,然后提取datadict关联的字段值定义,进而提取字段名/表名等信息,最后便得到表/字段/字段值定义的完整信息,可以完成持久化存储等其它动作,以便查阅或系统转译使用。[0099]本实施例中的的代码样例仅供参考。[0100]参照图2所示,本实施例提供了一种从java应用程序中同步数据库字段枚举的装置。该装置可以部署在服务器的处理器中,以执行并实现上述的从java应用程序中同步数据库字段枚举的方法,具体的,所述装置包括:[0101]获取模块,其用于获取与数据库表定义相关的java模型;[0102]扫描模块,其用于扫描所述java模型,识别java模型是否存在自定义注解修饰的目标字段;[0103]若是,则提取所述目标字段所在目标数据库表的表名和字段名,并根据关联注解提取所述目标字段的取值及取值定义;[0104]储存模块,其用于存储所述目标字段的表名、字段名、取值和取值定义。[0105]所述装置还包括,配置模块,其用于执行如下步骤:[0106]配置java应用中数据库的字段值定义,使字段值相适配;[0107]基于字段值定义的配置情形,建立第一提取接口,所述第一提取接口为让定义-数据字段值的枚举类实现一个定义类/枚举类提取枚举值方法的接口。[0108]在一种优选实施中,所述配置装置还执行如下步骤:[0109]建立第二提取接口,所述第二提取接口为让定义字段值的类或接口实现一个从普通类提取字段值定义的方法的接口;[0110]和/或,当字段值定义为在普通类或接口中,隐含有字段值,没有字段值定义时,建立一个能返回存有字段值定义映射的map《object,string》类型数据的公有无参数静态流程。[0111]在一种优选实施中,关联模块,其用于根据预设的关联注解,建立字段值定义与数据库字段的关联。[0112]本发明还提供了一种电子设备,包括处理器和存储器,所述处理器与存储器连接,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如从java应用程序中同步数据库字段枚举的方法步骤。[0113]本发明还提供了一种具有计算机可执行的计算机程序代码的计算机可读储存介质,该计算机程序被执行时执行前述所述从java应用程序中同步数据库字段枚举的方法。[0114]本实施例所述一种从java应用程序中同步数据库字段枚举的方法、装置、电子设备及储存介质的其它结构参见现有技术。[0115]以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,故凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化与修饰,均仍属于本发明技术方案的范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献