CN105224334B - 快速生成实体类的方法和系统 - Google Patents

快速生成实体类的方法和系统 Download PDF

Info

Publication number
CN105224334B
CN105224334B CN201510679814.7A CN201510679814A CN105224334B CN 105224334 B CN105224334 B CN 105224334B CN 201510679814 A CN201510679814 A CN 201510679814A CN 105224334 B CN105224334 B CN 105224334B
Authority
CN
China
Prior art keywords
entity
data
tables
text
file
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
Application number
CN201510679814.7A
Other languages
English (en)
Other versions
CN105224334A (zh
Inventor
董才党
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Daguang Network Technology Co.,Ltd.
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510679814.7A priority Critical patent/CN105224334B/zh
Publication of CN105224334A publication Critical patent/CN105224334A/zh
Application granted granted Critical
Publication of CN105224334B publication Critical patent/CN105224334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种快速生成实体类的方法,包括:在T4文本模板执行器中存储实体对象的源代码生成策略,编写实体文本模板文件;在新设立的T4文本模板文件中存储描述实体对象的数据;编写T4文本模板文件,输出实体类;以及执行T4文本模板文件生成实体类文件。本发明可将实体对象的源代码的生成从传统的设计期延伸到了运行期,并将所生成的实体对应的源代码编译,生成实体类对应的创造,能够在软件系统的运行期间运态创建实体对象,且如果实体对象在运行期间发生了变更,无需重新开发实体对象的源代码,只需要修改T4文本模板文件或创建新的T4文本模板文件,从而减少了软件开发的成本,增加软件系统的使用寿命。

Description

快速生成实体类的方法和系统
技术领域
本发明涉及计算机技术领域,并且特别涉及一种快速生成实体类的方法和系统。
背景技术
面向对象是当前主流的软件开发方法之一。在面向对象的系统中,实体对象用来表示现实世界中具体的业务实体,软件系统中数据的持久化、业务过程的执行和用户至上界面都与实体对象有关。在目前常规的面向对象软件开发方法中,对于实体对象,一般在设计期由开发人员开发实体对象的代码,并在软件系统工程的其他部分调用,这样使得整个系统具备了实体对象的相关性,使软件系统的通用性降低。
在考虑软件系统的通用性方面的问题时,现有的技术主要着眼于实体对象的动态加载,以及实体对象之间关系的动态配置,这些方法能解决软件系统通用性方面的一部分问题,但实体对象源代码仍需要由开发人员在设计期进行开发,当实体对象在运行期发生变更时,需要在设计期间重新对实体对象源代码进行开发,从而增加了软件系统的开发成本,减小了软件系统的使用寿命。
发明内容
本发明的目的在于提供一种快速生成实体类的方法和系统以改进现有技术的缺陷。
本发明实施例提供一种快速生成实体类的方法,其特征在于,包括:
步骤S1:在T4文本模板执行器中存储实体对象的源代码生成策略,编写实体文本模板文件;
步骤S2:在新设立的T4文本模板文件中存储描述所述实体对象的数据;
步骤S3:在程序运行期间,根据所述实体文本模板文件和所述源代码生成策略编写所述T4文本模板文件,输出实体类;以及
步骤S4:在程序运行期间,执行所述T4文本模板文件生成实体类文件。
优选地,在所述T4文本模板文件中,每一实体对应所述T4文本模板文件的一行,描述所述实体对象的所述数据包括实体名称、实体的字段信息及属性名称。
优选地,所述步骤S3包括:
步骤S31:遍历所述T4文本模板文件的所有行,建立第一数据表,把所述T4文本模板文件中的每一行数据依次按照行数分别读取入所述第一数据表中;
步骤S32:根据所述源代码生成策略解析所述第一数据表,生成存储所述实体对象的所述实体名称的第二数据表;
步骤S33:根据所述源代码生成策略解析所述第一数据表,生成存储每一所述实体对象的所述字段信息的第三数据表;
步骤S34:根据所述第三数据表的每一行建立存储每一所述实体对象对应的所有字段的字段名称及字段类型的第四数据表;以及
步骤S35:创建所述实体类,所述实体类的名称为所述第二数据表中的字段内容。
优选地,所述第一数据表中的行数等于所述实体类中包含的所述实体对象的个数。
优选地,在所述步骤S32中,把所述第一数据表中每一行从开始读取到第一分隔符之间的数据或字符截取后,读入所述第二数据表的不同字段中。
优选地,在所述步骤S33中,所述第三数据表为二维数组,把所述第一数据表的每一行的所述第一分隔符后面的每一第二分隔符之间的字段数据依次放到所述第三数据表的同一行的不同字段中。
优选地,在所述步骤S34中,解析所述第三数据表的每一行,根据第三分隔符区分出所述字段名称及所述字段类型,为所述第三数据表的每一行建立对应的所述第四数据表。
优选地,在所述步骤S35中,通过所述第三数据表找到所述实体类对应的所述第四数据表,从中解析所述实体类对应的所有字段名和字段类型,依次生成不带参数的构造函数和带参数的构造函数。
本发明还提供一种快速生成实体类的系统,其特征在于,包括:T4文本模板执行器、存储单元、T4文本模板文件编写模块以及执行模块,其中,所述T4文本模板文件编写模块连接于所述T4文本模板执行器、所述存储单元以及所述执行模块,
所述T4文本模板执行器用于存储实体对象的源代码生成策略,编写实体文本模板文件;
所述存储单元用于存储新设立的T4文本模板文件,在所述新设立的T4文本模板文件中存储描述所述实体对象的数据;
所述T4文本模板文件编写模块用于根据所述实体文本模板文件和所述源代码生成策略编写所述T4文本模板文件,输出实体类;以及
所述执行模块用于执行所述T4文本模板文件生成实体类文件。
优选地,所述T4文本模板文件编写模块还用于:
遍历所述T4文本模板文件的所有行,建立第一数据表,把所述T4文本模板文件中的每一行数据依次按照行数分别读取入所述第一数据表中;
根据所述源代码生成策略解析所述第一数据表,生成存储所述实体对象的所述实体名称的第二数据表;
根据所述源代码生成策略解析所述第一数据表,生成存储每一所述实体对象的所述字段信息的第三数据表;
根据所述第三数据表的每一行建立存储每一所述实体对象对应的所有字段的字段名称及字段类型的第四数据表;以及
创建所述实体类,所述实体类的名称为所述第二数据表中的字段内容。
本发明提供的快速生成实体类的方法可将实体对象的源代码的生成从传统的设计期延伸到了运行期,并将所生成的实体对应的源代码编译,生成实体类对应的创造,能够在软件系统的运行期间运态创建实体对象,且如果实体对象在运行期间发生了变更,无需重新开发实体对象的源代码,只需要修改T4文本模板文件或创建新的T4文本模板文件,从而减少了软件开发的成本,增加软件系统的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施方式提供的快速生成实体类的方法的流程示意图。
图2为本发明一实施方式提供的根据实体文本模板文件和源代码生成策略编写T4文本模板文件输出实体类的流程示意图;
图3为本发明一实施方式提供的快速生成实体类的系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,图1为本发明一实施方式提供的快速生成实体类的方法的流程示意图,该快速生成实体类的方法100包括以下步骤:
步骤S1:在T4文本模板执行器中存储实体对象的源代码生成策略,编写实体文本模板文件。
步骤S2:在新设立的T4文本模板文件中存储描述实体对象的数据。
具体而言,在本发明一实施例中,在T4文本模板文件中,每一实体对应T4文本模板文件的一行,并且描述实体对象的数据包括实体名称、实体的字段信息及属性名称。
步骤S3:在程序运行期间,根据实体文本模板文件和源代码生成策略编写T4文本模板文件,输出实体类。
步骤S4:在程序运行期间,执行T4文本模板文件生成实体类文件。
参见图2,图2为本发明一实施方式提供的根据实体文本模板文件和源代码生成策略编写T4文本模板文件输出实体类的流程示意图,包括以下步骤:
步骤S31:遍历T4文本模板文件的所有行,建立第一数据表,把T4文本模板文件中的每一行数据依次按照行数分别读取入第一数据表中。
具体而言,在本发明一实施例中,T4文本模板文件的一行数据映射于第一数据表中的一行数据,第一数据表中的行数等于实体类中包含的实体对象的个数。
步骤S32:根据源代码生成策略解析第一数据表,生成存储实体对象的实体名称的第二数据表。
具体而言,在本发明一实施例中,把第一数据表中每一行从开始读取到第一分隔符(例如,分隔符“:”)之间的数据或字符截取后,读入第二数据表的不同字段中,第二数据表中存储的是每一实体对象的实体名称。本领域技术人员应该理解的是,“:”这个分隔符仅是举例,也可以是其它的分隔符,本发明并不以此为限。优选地,第二数据表中的每一字段表示一个实体对象的实体名称,依次存储。
步骤S33:根据源代码生成策略解析第一数据表,生成存储每一实体对象的字段信息的第三数据表。
具体而言,在本发明一实施例中,第三数据表为二维数组,把第一数据表的每一行的第一分隔符(例如,分隔符“:”)后面的每一第二分隔符(例如,分隔符“,”)之间的字段数据依次放到第三数据表的同一行的不同字段中,即第三数据表的同一行表示同一个实体对象中拥有的不同字段,字段的个数就是同一实体对象拥有的字段数,第三数据表的不同行表示的是不同实体对象拥有的字段信息。
步骤S34:根据第三数据表的每一行建立存储每一实体对象对应的所有字段的字段名称及字段类型的第四数据表。
具体而言,在本发明一实施例中,解析第三数据表的一行,根据第三分隔符(例如,分隔符“|”)区分出字段名称及字段类型,为第三数据表的每一行建立一个对应的第四数据表,即为每一个实体建立一个第四数据表,存储每一实体对应的所有字段的字段名及字段类型。例如,第四数据表的第一行可以对应一个字段名和字段类型。
步骤S35:创建实体类,实体类的名称为第二数据表中一个字段内容。
具体而言,在本发明一实施例中,通过第三数据表找到该实体类对应的第四数据表,从中解析出该实体类对应的所有字段名和字段类型,依次生成不带参数的构造函数和带参数的构造函数。不带参数的构造函数即将读取的字段名和字段类型用“writeline”函数写入,如果是带参数的构造函数则在该“writeline”写入时同时付值。
有利地,本发明提供的快速生成实体类的方法可将实体对象的源代码的生成从传统的设计期延伸到了运行期,并将所生成的实体对应的源代码编译,生成实体类对应的创造,能够在软件系统的运行期间运态创建实体对象,且如果实体对象在运行期间发生了变更,无需重新开发实体对象的源代码,只需要修改T4文本模板文件或创建新的T4文本模板文件,从而减少了软件开发的成本,增加软件系统的使用寿命。
参见图3,图3为本发明一实施方式提供的快速生成实体类的系统的结构示意图,该快速生成实体类的系统300包括T4文本模板执行器310、存储单元320、T4文本模板文件编写模块330以及执行模块340。其中,T4文本模板文件编写模块330连接于T4文本模板执行器310、存储单元320以及执行模块340。
在本发明一实施例中,T4文本模板执行器310用于存储实体对象的源代码生成策略,编写实体文本模板文件。
在本发明一实施例中,存储单元320用于存储新设立的T4文本模板文件,在新设立的T4文本模板文件中存储描述实体对象的数据。具体而言,在T4文本模板文件中,每一实体对应T4文本模板文件的一行,并且描述实体对象的数据包括实体名称、实体的字段信息及属性名称。
在本发明一实施例中,T4文本模板文件编写模块330用于根据实体文本模板文件和源代码生成策略编写T4文本模板文件,输出实体类。具体地,T4文本模板文件编写模块330用于遍历T4文本模板文件的所有行,建立第一数据表,把T4文本模板文件中的每一行数据依次按照行数分别读取入第一数据表中;根据源代码生成策略解析第一数据表,生成存储实体对象的实体名称的第二数据表;根据源代码生成策略解析第一数据表,生成存储每一实体对象的字段信息的第三数据表;根据第三数据表的每一行建立存储每一实体对象对应的所有字段的字段名称及字段类型的第四数据表;创建实体类,实体类的名称为第二数据表中一个字段内容。
在本发明一实施例中,执行模块340用于执行T4文本模板文件生成实体类文件。
有利地,本发明提供的快速生成实体类的系统可将实体对象的源代码的生成从传统的设计期延伸到了运行期,并将所生成的实体对应的源代码编译,生成实体类对应的创造,能够在软件系统的运行期间运态创建实体对象,且如果实体对象在运行期间发生了变更,无需重新开发实体对象的源代码,只需要修改T4文本模板文件或创建新的T4文本模板文件,从而减少了软件开发的成本,增加软件系统的使用寿命。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种快速生成实体类的方法,其特征在于,包括:
步骤S1:在T4文本模板执行器中存储实体对象的源代码生成策略,编写实体文本模板文件;
步骤S2:在新设立的T4文本模板文件中存储描述所述实体对象的数据;
步骤S3:在程序运行期间,根据所述实体文本模板文件和所述源代码生成策略编写所述T4文本模板文件,输出实体类;以及
步骤S4:在程序运行期间,执行所述T4文本模板文件生成实体类文件;
在所述T4文本模板文件中,每一实体对应所述T4文本模板文件的一行,描述所述实体对象的数据包括实体名称、实体的字段信息及属性名称。
2.如权利要求1所述的快速生成实体类的方法,其特征在于,所述步骤S3包括:
步骤S31:遍历所述T4文本模板文件的所有行,建立第一数据表,把所述T4文本模板文件中的每一行数据依次按照行数分别读取入所述第一数据表中;
步骤S32:根据所述源代码生成策略解析所述第一数据表,生成存储所述实体对象的所述实体名称的第二数据表;
步骤S33:根据所述源代码生成策略解析所述第一数据表,生成存储每一所述实体对象的所述字段信息的第三数据表;
步骤S34:根据所述第三数据表的每一行建立存储每一所述实体对象对应的所有字段的字段名称及字段类型的第四数据表;以及
步骤S35:创建所述实体类,所述实体类的名称为所述第二数据表中的字段内容。
3.如权利要求2所述的快速生成实体类的方法,其特征在于,所述第一数据表中的行数等于所述实体类中包含的所述实体对象的个数。
4.如权利要求2所述的快速生成实体类的方法,其特征在于,在所述步骤S32中,把所述第一数据表中每一行从开始读取到第一分隔符之间的数据或字符截取后,读入所述第二数据表的不同字段中。
5.如权利要求4所述的快速生成实体类的方法,其特征在于,在所述步骤S33中,所述第三数据表为二维数组,把所述第一数据表的每一行的所述第一分隔符后面的每一第二分隔符之间的字段数据依次放到所述第三数据表的同一行的不同字段中。
6.如权利要求2所述的快速生成实体类的方法,其特征在于,在所述步骤S34中,解析所述第三数据表的每一行,根据第三分隔符区分出所述字段名称及所述字段类型,为所述第三数据表的每一行建立对应的所述第四数据表。
7.如权利要求2所述的快速生成实体类的方法,其特征在于,在所述步骤S35中,通过所述第三数据表找到所述实体类对应的所述第四数据表,从中解析所述实体类对应的所有字段名和字段类型,依次生成不带参数的构造函数和带参数的构造函数。
8.一种快速生成实体类的系统,其特征在于,包括:T4文本模板执行器、存储单元、T4文本模板文件编写模块以及执行模块,其中,所述T4文本模板文件编写模块连接于所述T4文本模板执行器、所述存储单元以及所述执行模块,
所述T4文本模板执行器用于存储实体对象的源代码生成策略,编写实体文本模板文件;
所述存储单元用于存储新设立的T4文本模板文件,在所述新设立的T4文本模板文件中存储描述所述实体对象的数据;
所述T4文本模板文件编写模块用于根据所述实体文本模板文件和所述源代码生成策略编写所述T4文本模板文件,输出实体类;以及
所述执行模块用于执行所述T4文本模板文件生成实体类文件;
在所述T4文本模板文件中,每一实体对应所述T4文本模板文件的一行,描述所述实体对象的数据包括实体名称、实体的字段信息及属性名称。
9.如权利要求8所述的快速生成实体类的系统,其特征在于,所述T4文本模板文件编写模块还用于:
遍历所述T4文本模板文件的所有行,建立第一数据表,把所述T4文本模板文件中的每一行数据依次按照行数分别读取入所述第一数据表中;
根据所述源代码生成策略解析所述第一数据表,生成存储所述实体对象的所述实体名称的第二数据表;
根据所述源代码生成策略解析所述第一数据表,生成存储每一所述实体对象的所述字段信息的第三数据表;
根据所述第三数据表的每一行建立存储每一所述实体对象对应的所有字段的字段名称及字段类型的第四数据表;以及
创建所述实体类,所述实体类的名称为所述第二数据表中的字段内容。
CN201510679814.7A 2015-10-19 2015-10-19 快速生成实体类的方法和系统 Active CN105224334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510679814.7A CN105224334B (zh) 2015-10-19 2015-10-19 快速生成实体类的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510679814.7A CN105224334B (zh) 2015-10-19 2015-10-19 快速生成实体类的方法和系统

Publications (2)

Publication Number Publication Date
CN105224334A CN105224334A (zh) 2016-01-06
CN105224334B true CN105224334B (zh) 2018-06-19

Family

ID=54993331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510679814.7A Active CN105224334B (zh) 2015-10-19 2015-10-19 快速生成实体类的方法和系统

Country Status (1)

Country Link
CN (1) CN105224334B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196814A (zh) * 2007-12-26 2008-06-11 上海科泰世纪科技有限公司 构件化软件系统中实现构件外壳类构建的方法
US8037450B2 (en) * 2007-08-29 2011-10-11 Sap Ag System and methods for tracing code generation in template engines
CN102270138A (zh) * 2011-08-15 2011-12-07 青岛海信传媒网络技术有限公司 实体对象的创建方法和实体对象创建装置
CN104317587A (zh) * 2014-10-22 2015-01-28 中国人民解放军国防科学技术大学 面向安卓移动设备的程序自动生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037450B2 (en) * 2007-08-29 2011-10-11 Sap Ag System and methods for tracing code generation in template engines
CN101196814A (zh) * 2007-12-26 2008-06-11 上海科泰世纪科技有限公司 构件化软件系统中实现构件外壳类构建的方法
CN102270138A (zh) * 2011-08-15 2011-12-07 青岛海信传媒网络技术有限公司 实体对象的创建方法和实体对象创建装置
CN104317587A (zh) * 2014-10-22 2015-01-28 中国人民解放军国防科学技术大学 面向安卓移动设备的程序自动生成方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NET程序员不要错过如此强大的T4模板;豹IIA6;《百度文库https://wenku.baidu.com/view/f62b946f1eb91a37f1115c69.html》;20110927;1-5 *
T4模版引擎之生成数据库实体类;懒惰的肥兔;《https://www.cnblogs.com/lzrabbit/archive/2012/07/18/2597953.html》;20120718;1-7 *
使用T4为数据库自动生成实体类(C#);ThinkTank_引擎;《http://www.360doc.com/content/14/0719/15/1355383_395501660.shtml》;20140719;1-5 *

Also Published As

Publication number Publication date
CN105224334A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN105335412B (zh) 用于数据转换、数据迁移的方法和装置
CN104268072B (zh) 图形化脚本编辑器及快速开发通信设备测试脚本的方法
Atkinson et al. Flexible deep modeling with melanee
US7610545B2 (en) Annotations for tracking provenance
CN105335137B (zh) 用于处理源文件的方法和装置
CN106547681B (zh) 数据自动加载并复用模拟服务测试的方法和装置
CN104657140A (zh) 代码生成方法及装置
CN109740122A (zh) 思维导图用例文件的转换方法及装置
CN105653255B (zh) 一种在office框架中设置报告模板以自动生成报告文件的方法
CN104731588B (zh) 页面布局文件生成方法和页面布局文件生成装置
CN103744647A (zh) 一种基于工作流GPD的Java工作流开发系统及其方法
Atkinson et al. Towards multi-level aware model transformations
CN104049974A (zh) 控件动态组装方法和系统
CN102236573A (zh) 用于类型化程序设计语言的名称绑定可扩展性
CN103699478A (zh) 一种测试案例生成系统和方法
US20110066566A1 (en) Conceptual representation of business processes for cross-domain mapping
CN101859246A (zh) 依据不同浏览器转换相应脚本的系统及其方法
CN104166546A (zh) 一种基于mda的面向dds应用软件的实现方法及系统
CN105224334B (zh) 快速生成实体类的方法和系统
CN101055521B (zh) 映射规则的可视化生成方法及系统
CN101615118B (zh) 导出原型的方法及装置
CN104536897A (zh) 基于关键字的自动测试方法及系统
CN101778110B (zh) 业务协议挖掘方法及装置
CN105893283A (zh) 相机参数读写方法、装置和终端设备
CN103297865B (zh) 智能网业务离线复现的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201210

Address after: 313028 Industrial Park, balidian Town, Huzhou City, Zhejiang Province

Patentee after: HUZHOU FENGYUAN AGRICULTURAL EQUIPMENT MANUFACTURE Co.,Ltd.

Address before: 201616 No. 3666 Sixian Road, Songjiang District, Shanghai

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220303

Address after: 518000 1302, block C, building 3, Yunzhi science and Technology Park, south of Shuangming Avenue, Dongzhou community, Guangming Street, Guangming District, Shenzhen, Guangdong

Patentee after: Shenzhen Daguang Network Technology Co.,Ltd.

Address before: 313028 Industrial Park, balidian Town, Huzhou City, Zhejiang Province

Patentee before: HUZHOU FENGYUAN AGRICULTURAL EQUIPMENT MANUFACTURE Co.,Ltd.