CN112148746B - 生成数据库表结构文档的方法、装置、电子装置和存储介质 - Google Patents
生成数据库表结构文档的方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN112148746B CN112148746B CN202010847755.0A CN202010847755A CN112148746B CN 112148746 B CN112148746 B CN 112148746B CN 202010847755 A CN202010847755 A CN 202010847755A CN 112148746 B CN112148746 B CN 112148746B
- Authority
- CN
- China
- Prior art keywords
- database table
- table structure
- generating
- generate
- entity
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种生成数据库表结构文档的方法、装置、电子装置和存储介质,其中,该生成数据库表结构文档的方法包括:在配置文件中配置需要生成数据库表结构的实体类;获取需要生成数据库表结构的实体类的绝对路径;利用Java反射原理和绝对路径获取需要生成数据库表结构的实体类的属性;根据配置文件和实体类的属性生成对应的数据库表结构文档。通过本申请,解决了相关技术中生成数据库表结构文档时SQL文件的大量冗余导致占用内存资源的问题,实现了在不创建SQL文件的前提下数据库表结构文档的生成。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种生成数据库表结构文档的方法、装置、电子装置和存储介质。
背景技术
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。现如今关系型数据库(SQL)和非关系型数据库(NoSQL)在各大场景中被普遍使用,Oracle,mySQL,SQLServer仍然是市场上各个应用产品的主流数据库。在已知技术中,对于数据库表结构文档的创建是使用SQL文件的形式生成数据库表结构文档。但是,使用SQL文件的形式生成数据库表结构文档会造成大量SQL文件存储在项目部署包中,导致SQL文件的大量冗余。此外,如果数据库维护后期需要修改字段或者添加字段,在数据库表结构文档较多的情况下,定位之前创建表的SQL文件就比较困难,并且新建SQL文件也会使文件结构变得越来越混乱,与代码里的实体类属性难以对应。
目前针对相关技术中生成数据库表结构文档时SQL文件的大量冗余,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种生成数据库表结构文档的方法、装置、电子装置和存储介质,以至少解决相关技术中生成数据库表结构文档时SQL文件的大量冗余的问题。
第一方面,本申请实施例提供了一种生成数据库表结构文档的方法,所述方法包括:
在配置文件中配置需要生成数据库表结构的实体类;
获取所述需要生成数据库表结构的实体类的绝对路径;
利用Java反射原理和所述绝对路径获取所述需要生成数据库表结构的实体类的属性;
根据所述配置文件和所述实体类的属性生成对应的所述数据库表结构文档。
在其中一些实施例中,所述配置文件包括:
所述需要生成数据库表结构的实体类的标识信息。
在其中一些实施例中,所述获取所述需要生成数据库表结构的实体类的绝对路径,所述方法包括:
通过Property类将所述配置文件读取到计算机内存中,再获取所述需要生成数据库表结构的实体类的标识信息;
根据所述配置文件获取所有的实体类的路径名,得到所述所有的实体类的全路径;
根据所述全路径寻找所述所有的实体类,根据所述标识信息判断所述实体类是否为所述需要生成数据库表结构的实体类,如果是则将所述需要生成数据库表结构的实体类的绝对路径写入计算机内存中。
在其中一些实施例中,所述利用Java反射原理获取所述实体类的属性,所述方法包括:
利用所述绝对路径得到所述需要生成数据库表结构的实体类;
循环遍历所述实体类,根据所述Java反射原理获取所述实体类的属性。
在其中一些实施例中,所述根据所述配置文件和所述实体类的属性生成对应的所述数据库表结构文档,所述方法包括:
生成所述需要生成所述数据库表结构的实体类的生成数据库表结构的SQL语句,写入计算机内存中;
执行所述SQL语句,生成所述数据库表结构文档,清空计算机内存,完成所述数据库表结构文档的创建。
在其中一些实施例中,执行所述SQL语句,生成所述数据库表结构文档包括:
通过ACCESS应用软件将所述SQL语句转换为所述数据库表结构文档。
第二方面,本申请实施例提供了一种生成数据库表结构文档的装置,所述装置包括:
配置模块,用于配置需要生成数据库表结构的实体类;
获取模块,用于获取生成数据库表结构文档的各种数据;
计算机内存模块,用于存储数据。
在其中一些实施例中,所述获取模块包括:
第一获取模块,用于获取需要生成数据库表结构的实体类的绝对路径;
第二获取模块,用于获取需要生成数据库表结构的实体类的属性。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的生成数据库表结构文档的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的生成数据库表结构文档的方法。
相比于相关技术,本申请实施例提供的生成数据库表结构文档的方法,通过Java反射原理,解决了相关技术中生成数据库表结构文档时SQL文件的大量冗余的问题,实现了数据库表结构文档的生成。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的生成数据库表结构文档的方法的流程图;
图2是根据本申请优选实施例一的生成数据库表结构文档的方法的流程图;
图3是根据本申请优选实施例二的生成数据库表结构文档的方法的流程图;
图4是根据本申请实施例的生成数据库表结构文档的装置的结构图;
图5为根据本申请实施例的生成数据库表结构文档的设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种生成数据库表结构文档的方法。图1是根据本申请实施例的生成数据库表结构文档的方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,在配置文件中配置需要生成数据库表结构的实体类。
在本实施例中,运行维护人员将需要生成数据库表结构的实体类的标识信息写入配置文件,此时需要生成数据库表结构的实体类即作为后续生成数据库表结构文档的数据源,运行维护人员能够自行选择数据量的大小和数据源。
步骤S102,获取需要生成数据库表结构的实体类的绝对路径。
在本实施例中,上述配置文件已经包含了需要生成数据库表结构的实体类的标识信息,但并未包含需要生成数据库表结构的实体类的绝对路径,因此需要通过一定的技术手段获取需要生成数据库表结构的实体类的计算机存储位置路径。
步骤S103,利用Java反射原理和绝对路径获取需要生成数据库表结构的实体类的属性。
步骤S104,根据配置文件和实体类的属性生成对应的数据库表结构文档。
在其中一些实施例中,数据库表结构是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中。数据库表结构有多种不同的类型,包括:文本型、备注型、数字型和OLE对象型等。本申请生成的数据库表结构可以是上述任一种类型。
在其中一些实施例中,配置文件包括:需要生成数据库表结构的实体类的标识信息。在本实施例中,在配置文件中已经包含了所有需要将其数据作为数据库表结构的实体类的标识信息,上述标识信息可以是包括但不限于所有需要将其数据作为数据库表结构的实体类的名称、存储路径等能够区别于其他实体类的特点信息。
在其中一些实施例中,利用Java反射原理获取实体类的属性的方法具体包括:利用绝对路径得到需要生成数据库表结构的实体类;循环遍历实体类,根据Java反射原理获取实体类的属性。在本实施例中,本申请采用了Java反射原理来获取实体类的属性信息,能够实现在运行状态中快速查看获取指定一部分实体类的属性,为后续步骤生成数据库表结构文档提供数据基础。其中,Java反射原理的作用机制为:编译,即java文件编译后生成.class字节码文件;加载,类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JVM内部,并存储在运行时内存区的方法区,然后将其转换为一个与目标类型对应的java.lang.Class对象实例;连接,细分为验证,格式(class文件规范)语义(final类是否有子类)操作、准备,静态变量赋初值和内存空间,final修饰的内存空间直接赋原值,此处不是用户指定的初值和解析,符号引用转化为直接引用,分配地址;初始化,有父类先初始化父类,然后初始化自己;将static修饰代码执行一遍,如果是静态变量,则用用户指定值覆盖原有初值;如果是代码块,则执行一遍操作。上述Java反射原理就是利用加载到jvm中的.class文件来进行操作的。.class文件中包含有java类的所有信息,当不知道某个类具体信息时,可以使用反射获取class,然后进行各种操作。总结来看:Java反射原理就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。反射就是把Java类中的各种成分映射成一个个的Java对象,并且可以进行操作。
通过上述步骤,利用Java的反射原理机制能够实现在不创建SQL文件的前提下生成数据库表结构文档文件,同时能够自主选择生成数据库表结构文档的数据量大小和数据源。相比于已知技术来说,在不创建SQL文件的前提下生成数据库表结构文档文件能够有效避免SQL文件的冗余,避免大量SQL文件存储在计算机内存***中导致计算机内存占用。此外,如果在数据库运行维护后期需要修改数据库表结构字段或者添加数据库表结构字段,则能够通过修改实体类属性来修改数据库表结构字段,便于后期的运行维护。
下面通过优选实施例对本申请实施例进行描述和说明。
图2是根据本申请优选实施例一的生成数据库表结构文档的方法的流程图。如图2所示,该生成数据库表结构文档的方法包括如下步骤:
步骤S201,在配置文件中配置需要生成数据库表结构的实体类。
步骤S202,通过Property类将配置文件读取到计算机内存中,再获取需要生成数据库表结构的实体类的标识信息。
步骤S203,根据配置文件获取所有的实体类的路径名,得到所有的实体类的全路径。
在本实施例中,根据配置文件获取所有的实体类的路径名,具体是通过Property类将配置文件先读取到计算机内存中,再从计算机内存中获取所有的实体类的包名,运行时获取路径,得到所有的实体类的全路径。其中,Property类是指类属性关键字,即是一种属性标识符,用于标识某一个控件的属性。
步骤S204,根据全路径寻找所有的实体类。
步骤S205,根据标识信息判断实体类是否为需要生成数据库表结构的实体类。
在本实施例中,根据标识信息判断实体类是否为需要生成数据库表结构的实体类的判断过程为,将先前读取的标识信息和实体类的标识信息遍历对比,当先前读取的标识信息含有当前实体类的标识信息时,即判断当前实体类为需要生成数据库表结构的实体类。
步骤S206,如果是需要生成数据库表结构的实体类,则将需要生成数据库表结构的实体类的绝对路径写入计算机内存中。
步骤S207,如果不是需要生成数据库表结构的实体类,则将需要生成数据库表结构的实体类的绝对路径写入计算机内存中。
在本实施例中,判断了哪些实体类为需要生成数据库表结构的实体类,同时获取了其绝对路径,便于以这些实体类作为后续步骤中生成的数据库表结构的数据源。
步骤S208,利用Java反射原理和绝对路径获取需要生成数据库表结构的实体类的属性。
步骤S209,根据配置文件和实体类的属性生成对应的数据库表结构文档。
在其中一个实施例中,所有的实体类包的全路径是指在当前计算机存储空间中所有的实体类的存储位置和路径;绝对路径是指在当期计算机存储空间中所有需要生成数据库表结构的实体类的存储位置和路径。其中,在Java编程语言中,实体类是指一个拥有Set和Get方法的类。实体类通常总是和数据库之类的(持久层数据)联系在一起,而这种联系是借由框架(如Hibernate)来建立的。实体类主要是作为数据管理和业务逻辑处理层面上存在的类别,实体类主要在分析阶段区分,实体类的主要职责是存储和管理***内部的信息。
通过上述步骤对计算机存储空间中所有实体类的遍历筛选,能够筛选出所有需要生成数据库表结构的实体类的绝对路径,然后利用这些绝对路径获取对应的实体类的文件,为后续利用Java反射原理获取实体类的属性提供文件资源。
图3是根据本申请优选实施例二的生成数据库表结构文档的方法的流程图,如图3所示,该生成数据库表结构文档的方法包括如下步骤:
步骤S301,在配置文件中配置需要生成数据库表结构的实体类。
步骤S302,获取需要生成数据库表结构的实体类的绝对路径。
步骤S303,利用Java反射原理和绝对路径获取需要生成数据库表结构的实体类的属性。
步骤S304,生成需要生成数据库表结构的实体类的生成数据库表结构的SQL语句,写入计算机内存中。
步骤S305,执行SQL语句,生成数据库表结构文档,清空计算机内存,完成数据库表结构文档的创建。
在其中一个实施例中,执行SQL语句,生成数据库表结构文档包括:
通过ACCESS应用软件将SQL语句转换为数据库表结构文档。本实施例是将先前步骤获得的SQL语句转化为数据库表结构文档,转化的方式包括但不限于使用ACCESS、ultraEdit等具有将SQL程序语句转化为数据库表结构文档的应用软件。其中,SQL是指结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作,不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库***,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
通过上述步骤,将需要生成数据库表结构的实体类的类属性写入SQL程序语句,利用具有将SQL程序语句转化为数据库表结构文档的应用软件将SQL程序语句转化为数据库表结构文档,实现在不创建SQL文件的前提下生成数据库表结构文档,避免了SQL文件的冗余和大量SQL文件存储在计算机内存***中导致计算机内存占用。此外,如果在数据库运行维护后期需要修改数据库表结构字段或者添加数据库表结构字段,则能够通过修改实体类属性来修改数据库表结构字段,便于后期的运行维护。
本实施例还提供了一种生成数据库表结构文档的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供了一种生成数据库表结构文档的装置,包括存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为运行计算机程序以上述步骤说明中任一项生成数据库表结构文档的方法。图4是根据本申请实施例的生成数据库表结构文档的装置的结构图,如图4所示,该装置包括:
配置模块41,用于配置需要生成数据库表结构的实体类。
获取模块42,耦合至配置模块41,用于获取生成数据库表结构文档的各种数据。
计算机内存模块43,耦合至获取模块42,用于存储数据。
在其中一个实施例中,获取模块又包括:第一获取模块,用于获取需要生成数据库表结构的实体类的绝对路径;第二获取模块,用于获取需要生成数据库表结构的实体类的属性。
在其中一个实施例中,获取模块包括:读取子单元,用于获取需要生成数据库表结构的实体类的标识信息;判断子单元,用于根据全路径寻找所有的实体类,根据标识信息判断实体类是否为需要生成数据库表结构的实体类;遍历子单元,用于循环遍历实体类,根据Java反射原理获取实体类的属性。
在其中一个实施例中,计算机存储模块包括:读取子单元,用于通过Property类将配置文件读取到计算机内存中;第一写入子单元,用于将需要生成数据库表结构的实体类的绝对路径写入计算机内存中;第二写入子单元,用于将生成数据库表结构的SQL语句写入计算机内存中;内存清空单元,用于在生成数据库表结构文档之后,清空计算机内存。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在配置文件中配置需要生成数据库表结构的实体类。
S2,获取需要生成数据库表结构的实体类的绝对路径。
S3,利用Java反射原理和绝对路径获取需要生成数据库表结构的实体类的属性。
S4,根据配置文件和实体类的属性生成对应的数据库表结构文档。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本实施例还提供了一种生成数据库表结构文档的存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行以上步骤中任一项生成数据库表结构文档的方法。
另外,结合图1描述的本申请实施例生成数据库表结构文档的方法可以由生成数据库表结构文档的设备来实现。图5为根据本申请实施例的生成数据库表结构文档的设备的硬件结构示意图。
生成数据库表结构文档的设备可以包括处理器51以及存储有计算机程序指令的存储器52。
具体地,上述处理器51可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器52可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器52可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器52可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器52可在数据处理装置的内部或外部。在特定实施例中,存储器52是非易失性(Non-Volatile)存储器。在特定实施例中,存储器52包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器52可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器51所执行的可能的计算机程序指令。
处理器51通过读取并执行存储器52中存储的计算机程序指令,以实现上述实施例中的任意一种生成数据库表结构文档的方法。
在其中一些实施例中,生成数据库表结构文档的设备还可包括通信接口53和总线50。其中,如图5所示,处理器51、存储器52、通信接口53通过总线50连接并完成相互间的通信。
通信接口53用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口53还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线50包括硬件、软件或两者,将生成数据库表结构文档的设备的部件彼此耦接在一起。总线50包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(AddressBus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线50可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro Channel Architecture,简称为MCA)总线、***组件互连(Peripheral ComponentInterconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SerialAdvanced Technology Attachment,简称为SATA)总线、视频电子标准协会局部(VideoElectronics Standards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线50可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该生成数据库表结构文档的设备可以基于获取到的数据信息,执行本申请实施例中的生成数据库表结构文档的方法,从而实现结合图1描述的一种生成数据库表结构文档的方法。
另外,结合上述实施例中的生成数据库表结构文档的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种生成数据库表结构文档的方法。
综上所述,通过本申请提供的上述实施例或者优选实施方式,有如下有益效果:
1.本申请通过不创建SQL文件的方法生成数据库表结构文档,去除了大量的SQL文件,优化了文件结构,同时节约了计算机存储资源。
2.本申请在生成数据库表结构文档的过程中生成SQL语句,而去除了显示的SQL语句,能够保障了数据库的安全性。
3.本申请在不创建SQL文件的前提下生成数据库表结构文档,能够减少在创建数据库表结构文档的过程中和运行维护数据库表结构文档的过程中文件流的读取,避免了计算机性能的浪费。
4.相较于通过创建SQL文件来生成数据库表结构文档,本申请通过实体类属性生成数据库表结构文档,在数据库维护后期需要修改字段或者添加字段时能够快速查找数据库字段对应的实体类属性,降低了数据库维护的复杂度。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种生成数据库表结构文档的方法,其特征在于,所述方法包括:
在配置文件中配置需要生成数据库表结构的实体类;
获取所述需要生成数据库表结构的实体类的绝对路径;
利用Java反射原理和所述绝对路径获取所述需要生成数据库表结构的实体类的属性;
根据所述配置文件和所述实体类的属性生成对应的所述数据库表结构文档。
2.根据权利要求1所述的一种生成数据库表结构文档的方法,其特征在于,所述配置文件包括:
所述需要生成数据库表结构的实体类的标识信息。
3.根据权利要求1所述的一种生成数据库表结构文档的方法,其特征在于,所述获取所述需要生成数据库表结构的实体类的绝对路径,所述方法包括:
通过Property类将所述配置文件读取到计算机内存中,再获取所述需要生成数据库表结构的实体类的标识信息;
根据所述配置文件获取所有的实体类的路径名,得到所述所有的实体类的全路径;
根据所述全路径寻找所述所有的实体类,根据所述标识信息判断所述实体类是否为所述需要生成数据库表结构的实体类,如果是则将所述需要生成数据库表结构的实体类的绝对路径写入计算机内存中。
4.根据权利要求1所述的一种生成数据库表结构文档的方法,其特征在于,所述利用Java反射原理获取所述实体类的属性,所述方法包括:
利用所述绝对路径得到所述需要生成数据库表结构的实体类;
循环遍历所述实体类,根据所述Java反射原理获取所述实体类的属性。
5.根据权利要求1所述的一种生成数据库表结构文档的方法,其特征在于,根据所述配置文件和所述实体类的属性生成对应的所述数据库表结构文档,所述方法包括:
生成所述需要生成所述数据库表结构的实体类的生成数据库表结构的SQL语句,写入计算机内存中;
执行所述SQL语句,生成所述数据库表结构文档,清空计算机内存,完成所述数据库表结构文档的创建。
6.根据权利要求5所述的一种生成数据库表结构文档的方法,其特征在于,执行所述SQL语句,生成所述数据库表结构文档包括:
通过ACCESS应用软件将所述SQL语句转换为所述数据库表结构文档。
7.一种生成数据库表结构文档的装置,其特征在于,所述装置包括:
配置模块,用于配置需要生成数据库表结构的实体类;
获取模块,用于获取生成数据库表结构文档的各种数据;其中,所述获取模块包括第一获取模块以及第二获取模块;所述第一获取模块,用于获取需要生成数据库表结构的实体类的绝对路径;第二获取模块,用于利用Java反射原理和所述绝对路径获取需要生成数据库表结构的实体类的属性;
计算机内存模块,用于存储数据。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的一种生成数据库表结构文档的方法。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6中任一项所述的一种生成数据库表结构文档的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847755.0A CN112148746B (zh) | 2020-08-21 | 2020-08-21 | 生成数据库表结构文档的方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847755.0A CN112148746B (zh) | 2020-08-21 | 2020-08-21 | 生成数据库表结构文档的方法、装置、电子装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148746A CN112148746A (zh) | 2020-12-29 |
CN112148746B true CN112148746B (zh) | 2024-03-26 |
Family
ID=73888852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010847755.0A Active CN112148746B (zh) | 2020-08-21 | 2020-08-21 | 生成数据库表结构文档的方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148746B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051272A (zh) * | 2021-03-30 | 2021-06-29 | 深圳红途创程科技有限公司 | 数据库表结构构建方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN103246743A (zh) * | 2013-05-21 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种利用编写实体类特性实现简单数据库的方法 |
CN105278961A (zh) * | 2015-10-28 | 2016-01-27 | 广州华多网络科技有限公司 | 生成数据库表结构文档的方法及*** |
CN106126224A (zh) * | 2016-06-21 | 2016-11-16 | 浪潮软件集团有限公司 | 一种生成程序对象的工具、***和方法 |
CN108509199A (zh) * | 2018-03-09 | 2018-09-07 | 平安科技(深圳)有限公司 | 自动生成中文注释的方法、装置、设备及存储介质 |
CN109857387A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种生成java类对象的方法及电子设备 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
-
2020
- 2020-08-21 CN CN202010847755.0A patent/CN112148746B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN103246743A (zh) * | 2013-05-21 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种利用编写实体类特性实现简单数据库的方法 |
CN105278961A (zh) * | 2015-10-28 | 2016-01-27 | 广州华多网络科技有限公司 | 生成数据库表结构文档的方法及*** |
CN106126224A (zh) * | 2016-06-21 | 2016-11-16 | 浪潮软件集团有限公司 | 一种生成程序对象的工具、***和方法 |
CN108509199A (zh) * | 2018-03-09 | 2018-09-07 | 平安科技(深圳)有限公司 | 自动生成中文注释的方法、装置、设备及存储介质 |
CN109857387A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种生成java类对象的方法及电子设备 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112148746A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10908925B2 (en) | Dynamic loading method, and target file creation method and apparatus | |
US11157251B2 (en) | Automatic reference counting | |
CN110764748B (zh) | 代码调用方法、装置、终端及存储介质 | |
US20040123286A1 (en) | Method for integrating Linux kernel and application software packages and generating installation file list based on CML2 computer language | |
US10073646B2 (en) | Multi-tier data synchronizer based on concurrent linked list | |
CN112667415B (zh) | 数据调用方法、装置、可读存储介质及电子设备 | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
CN111694992B (zh) | 一种数据处理方法和装置 | |
CN112148746B (zh) | 生成数据库表结构文档的方法、装置、电子装置和存储介质 | |
CN116483859A (zh) | 数据查询方法及装置 | |
US11200203B1 (en) | Accessing files stored in a firmware volume from a pre-boot application | |
US20230350653A1 (en) | Computational Graph Optimization Method and Apparatus | |
CN113656830B (zh) | 数据库脱敏语法解析方法、***、计算机及可读存储介质 | |
CN113741878B (zh) | 基于GraphQL的接口构建方法、***、电子设备及存储介质 | |
CN115878654A (zh) | 一种数据查询的方法、装置、设备及存储介质 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
US11609893B1 (en) | Systems and methods for generating and modifying a pattern for pattern matching utilizing a hierarchical structure that stores one or more values | |
CN111228815B (zh) | 处理游戏的配置表的方法、装置、存储介质和*** | |
CN112860628A (zh) | 一种文件***规模管理方法及*** | |
CN114490651A (zh) | 数据存储方法及装置 | |
CN112232003A (zh) | 对设计进行仿真的方法、电子设备及存储介质 | |
CN113779311A (zh) | 一种数据处理的方法、装置和存储介质 | |
JP3124318B2 (ja) | 論理回路設計装置 | |
CN112579627B (zh) | Sql时间参数配置方法、***、电子设备及存储介质 | |
CN116521713B (zh) | 一种数据查询的方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |