一种基于JAVA注解生成数据库建表语句的方法及系统技术方案

技术编号:31161198 阅读:17 留言:0更新日期:2021-12-04 10:29
本发明专利技术提供一种基于JAVA注解生成数据库建表语句的方法及系统,涉及数据库开发技术领域,包括:在java代码中依次标注需要生成数据库表的类及需要生成数据库表字段的方法;编写模板代码扫描java代码;根据标注的需要生成数据库表的类生成数据库表信息;根据标注的需要生成数据库表字段的方法生成表字段信息;根据数据库表信息和表字段信息生成建表语句。本发明专利技术在编写java代码过程中,直接对数据库进行设计,通过注解标注的方式在java代码中标注需要生成数据库表的类以及在类里面的字段上标注需要生成数据库表字段的方法,进而在开发完成后利用Java反射功能,通过扫描Java代码直接得到数据库建表语句,大量的节省开发人员的时间。间。间。

【技术实现步骤摘要】
一种基于JAVA注解生成数据库建表语句的方法及系统


[0001]本专利技术涉及数据库开发
,尤其是涉及一种基于JAVA注解生成数据库建表语句的方法及系统。

技术介绍

[0002]随着基于数据库的java项目越来越丰富,java项目正在朝着docker化、微服务化方向发展,因此,对于快速开发也有了更高的要求。
[0003]目前现有的传统开发过程是先设计数据库结构,再根据数据库结构开发代码,这种串行的开发过程使开发速度慢,开发效率低。

技术实现思路

[0004]针对上述问题,本专利技术提供了一种基于JAVA注解生成数据库建表语句的方法及系统,在编写java代码过程中,同时对数据库进行设计,通过注解标注的方式在java代码开发完成后即可得到数据库建表语句,进而得到数据库,大量的节省开发人员的时间。
[0005]为实现上述目的,本专利技术提供了面向JAVA组件的源码深度监控方法,包括:
[0006]在java代码中依次标注需要生成数据库表的类及需要生成数据库表字段的方法;
[0007]编写模板代码扫描所述java代码;
[0008]根据标注的所述需要生成数据库表的类生成数据库表信息;
[0009]根据标注的所述需要生成数据库表字段的方法生成表字段信息;
[0010]根据所述数据库表信息和所述表字段信息生成建表语句。
[0011]作为本专利技术的进一步改进,使用@TableDesc注解标注需要生成数据库表的类;使用@TableFieldDesc注解标注需要生成数据库表字段的方法。
[0012]作为本专利技术的进一步改进,所述@TableDesc注解包括三项配置,分别是:Name、Node和isPublic;
[0013]其中,Name表示数据库表的名称,Node表示数据库表中文名称或备注,isPublic表示是否需要建立同义词。
[0014]作为本专利技术的进一步改进,所述@TableFieldDesc注解包括四项配置,分别是:Index、Type、Length和Note;
[0015]其中,Index表示是否需要建立索引,或者索引的类型;Type表示数据库字段的类型;Length表示数据库字段的长度;Note表示数据库字段中文名称或者备注。
[0016]作为本专利技术的进一步改进,在java代码中依次标注需要比对与数据库表差异的类、需要比对与数据库表字段差异的方法;
[0017]编写模板代码扫描所述java代码;
[0018]根据标注的需要生成数据库表的类、需要生成数据库表字段的方法及需要比对与数据库表差异的类、需要比对与数据库表字段差异的方法生成数据库表的相关信息;
[0019]对比所述数据库表的相关信息与所述数据库中生成表的相关信息进行比对。
[0020]本专利技术还提供了一种基于JAVA注解生成数据库建表语句的系统,包括:标注模块、扫描模块、数据库表信息生成模块、表字段生成模块和建表语句生成模块;
[0021]所述标注模块,用于:
[0022]在java代码中依次标注需要生成数据库表的类及需要生成数据库表字段的方法;
[0023]所述扫描模块,用于:
[0024]编写模板代码扫描所述java代码;
[0025]所述数据库表信息生成模块,用于:
[0026]根据标注的所述需要生成数据库表的类生成数据库表信息;
[0027]所述数据库表信息生成模块,用于:
[0028]根据标注的所述需要生成数据库表字段的方法生成表字段信息;
[0029]所述建表语句生成模块,用于:
[0030]根据所述数据库表信息和所述表字段信息生成建表语句。
[0031]作为本专利技术的进一步改进,使用@TableDesc注解标注需要生成数据库表的类;使用@TableFieldDesc注解标注需要生成数据库表字段的方法。
[0032]作为本专利技术的进一步改进,所述@TableDesc注解包括三项配置,分别是:Name、Node和isPublic;
[0033]其中,Name表示数据库表的名称,Node表示数据库表中文名称或备注,isPublic表示是否需要建立同义词。
[0034]作为本专利技术的进一步改进,所述@TableFieldDesc注解包括四项配置,分别是:Index、Type、Length和Note;
[0035]其中,Index表示是否需要建立索引,或者索引的类型;Type表示数据库字段的类型;Length表示数据库字段的长度;Note表示数据库字段中文名称或者备注。
[0036]作为本专利技术的进一步改进,还包括对比模块;
[0037]所述标注模块,还用于:
[0038]在java代码中依次标注需要比对与数据库表差异的类、需要比对与数据库表字段差异的方法;
[0039]所述数据库表信息生成模块,还用于:
[0040]根据标注的所述需要生成数据库表的类、要比对与数据库表差异的类生成数据库表信息;
[0041]所述数据库表信息生成模块,用于:
[0042]根据标注的需要生成数据库表字段的方法及需要比对与数据库表字段差异的方法生成数据库表的相关信息;
[0043]所述对比模块,用于:
[0044]对比所述数据库表的相关信息与所述数据库中生成表的相关信息进行比对。
[0045]与现有技术相比,本专利技术的有益效果为:
[0046]本专利技术在编写java代码过程中,直接对数据库进行设计,通过注解标注的方式在java代码中标注需要生成数据库表的类以及在类里面的字段上标注需要生成数据库表字段的方法,进而在开发完成后利用Java反射功能,通过扫描Java代码直接得到数据库建表语句,进而得到数据库,大量的节省开发人员的时间,实现了快速根据java代码生成建表语
句。
[0047]本专利技术中还在Java代码编写完成后,对java代码进行修改、增加的过程中,标注了需要比对与数据库表差异的类以及在类里面的字段上标注了需要比对与数据库表字段差异的方法,进而在java代码修改、增加完成后,获取到修改后的数据库表信息,便于与数据库中的生成表信息进行比对,帮助数据库表的修改。
附图说明
[0048]图1为本专利技术一种实施例公开的基于JAVA注解生成数据库建表语句的方法流程图;
[0049]图2为本专利技术一种实施例公开的基于JAVA注解生成数据库建表语句的系统示意图;
[0050]图3为本专利技术一种实施例公开的基于JAVA注解生成数据库建表语句的方法详细流程图;
[0051]图4为本专利技术一种实施例公开的基于JAVA注解比对代码中数据库表信息与数据库中生成表信息的详细流程图。
具体实施方式
[0052]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JAVA注解生成数据库建表语句的方法,其特征在于,包括:在java代码中依次标注需要生成数据库表的类及需要生成数据库表字段的方法;编写模板代码扫描所述java代码;根据标注的所述需要生成数据库表的类生成数据库表信息;根据标注的所述需要生成数据库表字段的方法生成表字段信息;根据所述数据库表信息和所述表字段信息生成建表语句。2.根据权利要求1所述的方法,其特征在于:使用@TableDesc注解标注需要生成数据库表的类;使用@TableFieldDesc注解标注需要生成数据库表字段的方法。3.根据权利要求2所述的方法,其特征在于,所述@TableDesc注解包括三项配置,分别是:Name、Node和isPublic;其中,Name表示数据库表的名称,Node表示数据库表中文名称或备注,isPublic表示是否需要建立同义词。4.根据权利要求1所述的方法,其特征在于:所述@TableFieldDesc注解包括四项配置,分别是:Index、Type、Length和Note;其中,Index表示是否需要建立索引,或者索引的类型;Type表示数据库字段的类型;Length表示数据库字段的长度;Note表示数据库字段中文名称或者备注。5.根据权利要求1所述的方法,其特征在于:在java代码中依次标注需要比对与数据库表差异的类、需要比对与数据库表字段差异的方法;编写模板代码扫描所述java代码;根据标注的需要生成数据库表的类、需要生成数据库表字段的方法及需要比对与数据库表差异的类、需要比对与数据库表字段差异的方法生成数据库表的相关信息;对比所述数据库表的相关信息与所述数据库中生成表的相关信息进行比对。6.一种用于实现权利要求1~5任一项所述的方法的系统,其特征在于,包括:标注模块、扫描模块、数据库表信息生成模块、表字段生成模块和建表语句生成模块;所述标注模块,用于:在java代...

【专利技术属性】
技术研发人员:王文刚
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

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

1