CN101819530A - 一种程序对象生成方法、装置及计算机 - Google Patents
一种程序对象生成方法、装置及计算机 Download PDFInfo
- Publication number
- CN101819530A CN101819530A CN 201010160273 CN201010160273A CN101819530A CN 101819530 A CN101819530 A CN 101819530A CN 201010160273 CN201010160273 CN 201010160273 CN 201010160273 A CN201010160273 A CN 201010160273A CN 101819530 A CN101819530 A CN 101819530A
- Authority
- CN
- China
- Prior art keywords
- program object
- database table
- module
- input
- major key
- 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
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序对象生成方法、装置及计算机,包括:获取用户输入的数据库表的名称;遍历预先设置的包括若干数据库表的参考文件,将与用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;获取该目标数据库表的主键及相关属性,将主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成程序对象。本发明提供的方案在整个项目开发的过程中,可以根据程序对象模板并结合目标数据库表的主键及相关属性自动生成程序对象,不需要人为的去编写相似的控制数据库表的代码,从而节约人力和时间的成本,因此,提升了工作效率。
Description
技术领域
本发明涉及计算机应用领域,更具体地说,涉及一种程序对象生成方法、装置及计算机。
背景技术
在项目开发的过程中,程序开发人员对数据库中的每个表进行操作,都需要写对应的程序代码,但是,对每个表操作的代码的内容结构十分相似,所以重复编写内容结构相似的代码无疑增加了程序开发人员的工作量。
对于这些毫无意义的重复性工作,不仅浪费了程序员的时间,而且降低了整个项目的开发进度,从而无谓的增加了人力和时间的成本,使项目开发进度的效率低下。
因此,本发明的发明人发现:如何自动的生成内容结构相似的程序代码,以此来提升工作效率,成为目前最需要解决的问题。
发明内容
有鉴于此,本发明提供了一种程序对象生成方法、装置及计算机,以便提升工作效率。
本发明实施例是这样实现的:
一种程序对象生成方法,包括:
获取用户输入的数据库表的名称;
遍历预先设置的包括若干数据库表的参考文件,将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;
获取该目标数据库表的主键及相关属性,将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
优选地,在上述的程序对象生成方法中,将生成的所述程序对象保存到预设目录下。
优选地,在上述的程序对象生成方法中,所述参考文件为pdm文件;
所述程序对象为po类和dao类;
所述程序对象模板为groovy模板。
一种程序对象生成装置,包括:第一获取模块、遍历模块、查找模块、第二获取模块和生成模块;
所述第一获取模块,用于获取用户输入的数据库表的名称;
所述遍历模块,用于遍历预先设置的包括若干数据库表的参考文件;
所述查找模块,用于将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;
所述第二获取模块,用于获取该目标数据库表的主键及相关属性;
所述生成模块,用于将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
优选地,在上述的程序对象生成装置中,还包括保存模块;
所述保存模块,用于将生成的所述程序对象保存到预设目录下。
一种执行权利要求1的方法的计算机,包括输入输出机构、存储单元和中央处理器CPU,还包括程序对象生成装置,其中:
所述存储单元存储有多个参考文件,各所述参考文件中包括若干数据库表;
所述程序对象生成装置利用输入输出机构来获取用户输入的数据库表名称,通过所述CPU来遍历存储单元中的参考文件,将参考文件中与所述数据库表名称相匹配的数据库表确定为目标数据库表,并利用所述输入输出机构获取该目标数据库表的主键及相关属性,通过所述CPU将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
与现有技术相比,本发明实施例提供的技术方案具有以下优点和特点:
本发明提供的方法通过获取目标数据库表的主键及相关属性,并将该数据库表的主键及相关属性填充至预先建立的程序对象模板中,即可生成相应的程序对象。所以本发明提供的方案在整个项目开发的过程中,可以根据程序对象模板并结合目标数据库表的主键及相关属性自动生成程序对象,不需要人为的去编写相似的控制数据库表的代码,从而节约人力和时间的成本,因此,提升了工作效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的程序对象生成方法流程图;
图2为本发明提供的程序对象生成装置的模块示意图;
图3为本发明提供的另一个程序对象生成装置的模块示意图;
图4为本发明提供的执行程序对象生成方法的计算机的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种程序对象生产方法,包括以下步骤:获取用户输入的数据库表的名称;遍历预先设置的包括若干数据库表的参考文件,将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;获取该目标数据库表的主键及相关属性,将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。在实际工作中,使用上述方法的情况有很多,所以上述方法存在多种具体实现方式,下面通过具体实施例进行详细说明。
请参见图1所示,图1为实现上述方法的步骤流程图,该方法可细化成以下五个步骤,包括:
步骤101、获取数据库表名称。
步骤102、遍历参考文件。
步骤103、确定目标数据库表。
步骤104、获取该目标数据库表的主键及相关属性。
步骤105、将主键及相关属性填充至程序对象模板,生成所述程序对象。
下面通过在groovy语言的环境下,具体的说明本发明的方法。
其中,参考文件为pdm文件,pdm是数据库建模工具Powerdesign保存的文件格式;Powerdesign可以设计、修改数据库,还可以建E-R图。程序对象为po类和dao类,po是持久对象,可以看成是与数据库中的表相映射的java对象。dao是数据访问对象,该对象用于访问数据库,通常和po结合使用,dao中包含了各种数据库的操作方法,包括在数据库中,增加数据、删除数据、修改数据和查询数据。所述程序对象模板为groovy模板,有多个groovy模板,各个模板分别是通过po类、dao类或其他扩展类的结构建立的,该groovy模板即为缺少数据库表的主键及相关属性,但该groovy模板设置有可获取数据库表的主键及相关属性的接口,一旦将数据库表的主键及相关属性通过接口填入对应的模板中,则可生成该数据库表的po类和dao类。
首先,程序开发人员需要做好生成po类和dao类的准备工作,设置好环境变量JAVA_HOME,需要ire1.4.2以上版本;将包含数据库表的pdm文件放到系统预设目录下;程序员需要向系统中输入pdm文件名称和要生成的po、dao的数据库表名称。
其次,系统根据该程序员输入的信息查找到对应的pdm文件并遍历该pdm文件,查询该pdm文件中用户输入的数据库表,并获取该数据库表的主键信息和列信息。
再次,系统将获取到的主键信息和列属性填入至预先建立好的groovy模板中,即可生成po类和dao类。
最后,将生成的po类和dao类保存到预设输出目录下。
在上述实施例中,程序员可以通过修改groovy模板来定制产生不同的类,例如封装主键类、多表处理类或实现其他功能的类。还可以修改更多的模板定义,包括输出目录、类名称和类结构等信息。
请参见图2所示,图2所示的内容为一种程序对象生成装置相当于实现上述方法的系统,该装置包括:第一获取模块201、遍历模块202、查找模块203、第二获取模块204和生成模块205,其中,所述第一获取模块201,用于获取用户输入的数据库表的名称;所述遍历模块202,用于遍历预先设置的包括若干数据库表的参考文件;所述查找模块203,用于将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;所述第二获取模块204,用于获取该目标数据库表的主键及相关属性;所述生成模块205,用于将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
请参见图3所示,在上述的程序对象生成装置中,还包括保存模块206;所述保存模块206,用于将生成的所述程序对象保存到预设目录下。
结合groovy语言的应用环境,简要介绍上述装置的功能。其中,所述第一获取模块201,用于获取用户输入的数据库表的名称;所述遍历模块202,用于遍历预先设置的包括若干数据库表的pdm文件;所述查找模块203,用于将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;所述第二获取模块204,用于获取该目标数据库表的主键及相关属性;所述生成模块205,用于将所述主键信息及相关列信息填充至预先根据po类和dao类的结构建立的po类模板和dao类模板,生成po类和dao类。
在上文所述的po类和dao类,均为本发明提供的优选实施例,本发明并不限定方法或装置只能生成po类或dao类,本领域技术人员完全可以根据上述工作原理来制作出生成其他类的方法或装置,只要本领域技术人员依照本发明提供的原理进行相应的改变,则均在本发明保护范围内。
由于本发明提供的方法或软件是应用在计算机上的,所以下面介绍一下关于执行本发明提供的方法的计算机,以便说明该计算机是如何实现本发明提供的方法或软件的,请参见图4所示,该计算机包括输入输出机构401、存储单元403和中央处理器CPU402,还包括程序对象生成装置404,其中:所述存储单元403存储有多个pdm文件,各所述pdm文件中包括若干数据库表;所述程序对象生成装置404利用输入输出机构401来获取用户输入的数据库表名称,通过所述CPU402来遍历存储单元中的pdm文件,将pdm文件中与所述数据库表名称相匹配的数据库表确定为目标数据库表,并利用所述输入输出机构401获取该目标数据库表的主键信息及相关列信息,通过所述CPU402将所述主键及相关属性填充至预先根据po类和dao类结构建立的po模板和dao模板,生成所述po类和dao类。
综上所述,本发明提供的方法、装置和计算机是通过获取目标数据库表的主键及相关属性,并将该数据库表的主键及相关属性填充至预先建立的程序对象模板中,即可生成相应的程序对象。所以本发明提供的方案在整个项目开发的过程中,可以根据程序对象模板并结合目标数据库表的主键及相关属性自动生成程序对象,不需要人为的去编写相似的控制数据库表的代码,从而节约人力和时间的成本,因此,提升了工作效率。
需要说明的是,图1至图4所示的实施例只是本发明所介绍的优选实施例,本领域技术人员在此基础上,完全可以设计出更多的实施例,因此本发明并不局限于已提供的实施例,对这些实施例的多种修改对本领域的专业技术人员来说是显而易见的,都为本发明保护的范围,由于篇幅有限,不在此处赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种程序对象生成方法,其特征在于,包括:
获取用户输入的数据库表的名称;
遍历预先设置的包括若干数据库表的参考文件,将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;
获取该目标数据库表的主键及相关属性,将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
2.根据权利要求1所述的程序对象生成方法,其特征在于,将生成的所述程序对象保存到预设目录下。
3.根据权利要求2所述的程序对象生成方法,其特征在于,所述参考文件为pdm文件;
所述程序对象为po类和dao类;
所述程序对象模板为groovy模板。
4.一种程序对象生成装置,其特征在于,包括:第一获取模块、遍历模块、查找模块、第二获取模块和生成模块;
所述第一获取模块,用于获取用户输入的数据库表的名称;
所述遍历模块,用于遍历预先设置的包括若干数据库表的参考文件;
所述查找模块,用于将与所述用户输入的数据库表的名称相匹配的数据库表确定为目标数据库表;
所述第二获取模块,用于获取该目标数据库表的主键及相关属性;
所述生成模块,用于将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
5.根据权利要求4所述的程序对象生成装置,其特征在于,还包括保存模块;
所述保存模块,用于将生成的所述程序对象保存到预设目录下。
6.一种执行权利要求1的方法的计算机,包括输入输出机构、存储单元和中央处理器CPU,其特征在于,还包括程序对象生成装置,其中:
所述存储单元存储有多个参考文件,各所述参考文件中包括若干数据库表;
所述程序对象生成装置利用输入输出机构来获取用户输入的数据库表名称,通过所述CPU来遍历存储单元中的参考文件,将参考文件中与所述数据库表名称相匹配的数据库表确定为目标数据库表,并利用所述输入输出机构获取该目标数据库表的主键及相关属性,通过所述CPU将所述主键及相关属性填充至预先根据程序对象结构建立的程序对象模板,生成所述程序对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010160273 CN101819530A (zh) | 2010-04-30 | 2010-04-30 | 一种程序对象生成方法、装置及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010160273 CN101819530A (zh) | 2010-04-30 | 2010-04-30 | 一种程序对象生成方法、装置及计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101819530A true CN101819530A (zh) | 2010-09-01 |
Family
ID=42654645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010160273 Pending CN101819530A (zh) | 2010-04-30 | 2010-04-30 | 一种程序对象生成方法、装置及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101819530A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566990A (zh) * | 2010-12-09 | 2012-07-11 | 北大方正集团有限公司 | 一种在Java应用中进行数据操作的方法及装置 |
CN103309650A (zh) * | 2012-03-14 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 持久层代码的生成方法和装置 |
CN103383646A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种Groovy脚本加载方法及装置 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105677324A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成实体类代码的方法 |
CN105843603A (zh) * | 2016-03-17 | 2016-08-10 | 广州爱九游信息技术有限公司 | 图形处理的方法及装置 |
CN106126224A (zh) * | 2016-06-21 | 2016-11-16 | 浪潮软件集团有限公司 | 一种生成程序对象的工具、系统和方法 |
CN106293664A (zh) * | 2015-05-27 | 2017-01-04 | 交通银行股份有限公司 | 代码生成方法及装置 |
WO2019051919A1 (zh) * | 2017-09-18 | 2019-03-21 | 网宿科技股份有限公司 | 一种构建镜像的方法和装置 |
CN109725893A (zh) * | 2018-05-17 | 2019-05-07 | 平安普惠企业管理有限公司 | 代码生成方法、设备、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050065966A1 (en) * | 2003-09-24 | 2005-03-24 | Salleh Diab | Table-oriented application development environment |
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
CN101673276A (zh) * | 2009-09-22 | 2010-03-17 | 山东中创软件工程股份有限公司 | 一种数据模板的动态生成方法和装置 |
-
2010
- 2010-04-30 CN CN 201010160273 patent/CN101819530A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050065966A1 (en) * | 2003-09-24 | 2005-03-24 | Salleh Diab | Table-oriented application development environment |
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
CN101673276A (zh) * | 2009-09-22 | 2010-03-17 | 山东中创软件工程股份有限公司 | 一种数据模板的动态生成方法和装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566990B (zh) * | 2010-12-09 | 2015-03-11 | 北大方正集团有限公司 | 一种在Java应用中进行数据操作的方法及装置 |
CN102566990A (zh) * | 2010-12-09 | 2012-07-11 | 北大方正集团有限公司 | 一种在Java应用中进行数据操作的方法及装置 |
CN103309650A (zh) * | 2012-03-14 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 持久层代码的生成方法和装置 |
CN103309650B (zh) * | 2012-03-14 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 持久层代码的生成方法和装置 |
CN103383646A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种Groovy脚本加载方法及装置 |
CN103383646B (zh) * | 2012-05-03 | 2016-05-04 | 阿里巴巴集团控股有限公司 | 一种Groovy脚本加载方法及装置 |
CN106293664A (zh) * | 2015-05-27 | 2017-01-04 | 交通银行股份有限公司 | 代码生成方法及装置 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105354036B (zh) * | 2015-11-26 | 2019-02-01 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105677324A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成实体类代码的方法 |
CN105843603A (zh) * | 2016-03-17 | 2016-08-10 | 广州爱九游信息技术有限公司 | 图形处理的方法及装置 |
CN106126224A (zh) * | 2016-06-21 | 2016-11-16 | 浪潮软件集团有限公司 | 一种生成程序对象的工具、系统和方法 |
WO2019051919A1 (zh) * | 2017-09-18 | 2019-03-21 | 网宿科技股份有限公司 | 一种构建镜像的方法和装置 |
CN109725893A (zh) * | 2018-05-17 | 2019-05-07 | 平安普惠企业管理有限公司 | 代码生成方法、设备、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101819530A (zh) | 一种程序对象生成方法、装置及计算机 | |
US10037341B1 (en) | Nesting tree quotas within a filesystem | |
CN102455913B (zh) | 显示模板的定制 | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
CN102646038B (zh) | 控件内容展现方法、控件内容展现装置以及移动终端 | |
CN102567436A (zh) | 多租户系统 | |
TW202027455A (zh) | 基於區塊鏈對結構化作品進行存證的方法及裝置 | |
CN104881490A (zh) | 一种web表单数据存取方法和系统 | |
CN106095698A (zh) | 面向对象的缓存写入、读取方法及装置 | |
CN104537129A (zh) | 一种基于Web的数据库虚拟存储处理方法 | |
CN111198868A (zh) | 一种智能分库实时数据迁移方法和装置 | |
CN111966633A (zh) | 用于查询目录下子节点的方法、装置、电子设备及介质 | |
US10289620B1 (en) | Reporting and data governance management | |
WO2019129831A1 (en) | Systems and methods for determining database permissions | |
US10366178B2 (en) | Multi-user CAx editing of a model of a design object | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
CN107423291A (zh) | 一种数据翻译方法以及客户端设备 | |
US7480673B2 (en) | Optimized computer diagramming method | |
JP5971812B2 (ja) | コンピュータ支援設計のための方法およびシステム | |
CN112052222A (zh) | 异构对象存储集群访问方法、装置、设备及存储介质 | |
US10146791B2 (en) | Open file rebalance | |
US20190147082A1 (en) | Reporting and data governance management | |
CN104636452A (zh) | 一种面向scm的统一文件系统管理方法 | |
CN114327395A (zh) | 网页设计方法、装置、计算机设备、存储介质和产品 | |
Mirajkar et al. | Perform wordcount map-reduce job in single node apache hadoop cluster and compress data using lempel-ziv-oberhumer (lzo) algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100901 |