CN105677324A - 一种自动生成实体类代码的方法 - Google Patents
一种自动生成实体类代码的方法 Download PDFInfo
- Publication number
- CN105677324A CN105677324A CN201511013791.2A CN201511013791A CN105677324A CN 105677324 A CN105677324 A CN 105677324A CN 201511013791 A CN201511013791 A CN 201511013791A CN 105677324 A CN105677324 A CN 105677324A
- Authority
- CN
- China
- Prior art keywords
- field
- entity class
- entity type
- class code
- name
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种自动生成实体类代码的方法,包括:根据配置文件信息,连接数据库;获取数据库的所有数据表,从数据表中读取关键信息,所述关键信息包括表名、字段名、字段类型、字段大小和主键;套用预先设定的实体类代码编程模板,将读取的关键信息进行转换操作和定义操作,生成相应的实体类代码。本发明可自适应目前所有主流数据库和编程语言,无论数据表量多少,通过套用预先设定的实体类代码编程模板,能够自动生成实体类代码,节约了开发时间,并且便于修改,避免了程序员在代码编辑中的错误发生。
Description
技术领域
本发明涉及基于数据库操作的面向对象的程序设计技术领域,具体是一种自动生成实体类代码的方法。
背景技术
面向对象程序设计时,程序员需要针对不同的数据库配置来编写格式相对固定的程序代码,并且在数据库变换时,需要逐一去修改代码,并且在编写和修改的过程中可能会出现各种错误,大大地浪费了程序员的时间,影响开发效率。
现有的一些实体类代码生成方法只是一定程度上的集成和封装,不关联数据库,编写时只需要数据库相应的字段名和字段类型,采用的编程工具,如VS、eclipse等,可以通过与数据库建立连接,生成格式固定的实体类代码,但格式和属性相对固定,不能满足一些特定的需求。
发明内容
本发明的目的在于提供一种自动生成实体类代码的方法,该方法能够基于目前主流的数据库,针对不同的编程语言和多种不同的系统,自动生成实体类代码。
本发明的技术方案为:
一种自动生成实体类代码的方法,包括以下步骤:
(1)根据配置文件信息,连接数据库;
(2)获取数据库的所有数据表,从数据表中读取关键信息,所述关键信息包括表名、字段名、字段类型、字段大小和主键;
(3)套用预先设定的实体类代码编程模板,将读取的关键信息进行转换操作和定义操作,生成相应的实体类代码;
所述转换操作包括将表名转换为实体类名、将字段名转换为实体类属性、将字段类型转换为属性类型;所述定义操作包括根据字段大小和主键,定义申请存储空间和定义字段非空。
所述的自动生成实体类代码的方法,步骤(2)中,所述获取数据库的所有数据表,具体采用反射法。
本发明的有益效果为:
由上述技术方案可知,本发明可自适应目前所有主流数据库和编程语言,无论数据表量多少,通过套用预先设定的实体类代码编程模板,能够自动生成实体类代码,节约了开发时间,并且便于修改,避免了程序员在代码编辑中的错误发生。
附图说明
图1是本发明的方法流程图。
具体实施方式
下面结合附图和具体实施例进一步说明本发明。
如图1所示,一种自动生成实体类代码的方法,包括以下步骤:
S1、根据配置文件,建立数据库连接;
配置文件包含了数据库(数据库类型、IP、实例名、用户名、密码等)、编程语言信息,针对不同数据库、不同编程语言,采用相应的方法连接数据库。
S2、采用反射法获取数据库的所有数据表和数据表中的关键信息,关键信息包括表名、字段名、字段类型、字段大小、主键等。
S3、套用预先设定的实体类代码编程模板,根据获取的数据库信息自动生成相应的实体类代码;
针对不同编程语言和不同数据库,进行对应的转换,基本对应关系:
表名——实体类名,字段名——实体类属性,字段类型——属性类型,并且根据字段大小和主键等信息,定义申请存储空间、定义字段非空等。
在上述操作中,可根据不同的开发需求,自由定制实体类代码的格式和属性模板,方便在以后的编程中使用。
本发明可基于目前主流的数据库,如Oracle、Sqlserver、MySQL、Access等,可针对不同的编程语言,如JAVA、C#等,可针对多种不同的系统使用,如Windows、Android等。
本发明可适用于基于数据库的面向对象程序设计中,可在编写项目前自动生成实体类代码并放在固定的文件夹下,导入项目中即可使用,具体过程如下:
a、填写配置文件,config.xml,配置数据库连接方法以及使用的编程语言;
b、编辑模板,使生成的实体类代码符合个人或项目要求风格;
c、运行工具,生成实体类代码,保存在相应文件夹下,一般默认为entity;
d、将entity导入编程工具,如VS、eclipse的项目中即可使用。
以上所述实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
Claims (2)
1.一种自动生成实体类代码的方法,其特征在于,包括以下步骤:
(1)根据配置文件信息,连接数据库;
(2)获取数据库的所有数据表,从数据表中读取关键信息,所述关键信息包括表名、字段名、字段类型、字段大小和主键;
(3)套用预先设定的实体类代码编程模板,将读取的关键信息进行转换操作和定义操作,生成相应的实体类代码;
所述转换操作包括将表名转换为实体类名、将字段名转换为实体类属性、将字段类型转换为属性类型;所述定义操作包括根据字段大小和主键,定义申请存储空间和定义字段非空。
2.根据权利要求1所述的自动生成实体类代码的方法,其特征在于,步骤(2)中,所述获取数据库的所有数据表,具体采用反射法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511013791.2A CN105677324A (zh) | 2015-12-31 | 2015-12-31 | 一种自动生成实体类代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511013791.2A CN105677324A (zh) | 2015-12-31 | 2015-12-31 | 一种自动生成实体类代码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677324A true CN105677324A (zh) | 2016-06-15 |
Family
ID=56297768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511013791.2A Pending CN105677324A (zh) | 2015-12-31 | 2015-12-31 | 一种自动生成实体类代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677324A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446182A (zh) * | 2016-09-29 | 2017-02-22 | 贵州云众知乐教育科技有限公司 | 一种数据库引擎 |
CN107025105A (zh) * | 2016-09-23 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 代码生成方法及装置 |
CN108052549A (zh) * | 2017-11-27 | 2018-05-18 | 中山路得斯空调有限公司 | 一种将源数据自动转换为实体类代码的方法 |
CN109189383A (zh) * | 2018-08-28 | 2019-01-11 | 厦门海迈科技股份有限公司 | 代码文件的生成方法、装置、计算设备和存储介质 |
CN109725893A (zh) * | 2018-05-17 | 2019-05-07 | 平安普惠企业管理有限公司 | 代码生成方法、设备、装置及计算机可读存储介质 |
CN110309145A (zh) * | 2019-04-15 | 2019-10-08 | 中国银行股份有限公司 | 一种数据表调整方法、数据表创建方法及装置 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
CN111061475A (zh) * | 2019-12-13 | 2020-04-24 | 中国南方电网有限责任公司 | 软件代码生成方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819530A (zh) * | 2010-04-30 | 2010-09-01 | 山东中创软件工程股份有限公司 | 一种程序对象生成方法、装置及计算机 |
CN102253975A (zh) * | 2011-06-16 | 2011-11-23 | 上海博康智能网络科技有限公司 | 一种数据库自动转换系统及方法 |
CN103226478A (zh) * | 2013-05-22 | 2013-07-31 | 北京金和软件股份有限公司 | 一种自动生成并使用代码的方法 |
-
2015
- 2015-12-31 CN CN201511013791.2A patent/CN105677324A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819530A (zh) * | 2010-04-30 | 2010-09-01 | 山东中创软件工程股份有限公司 | 一种程序对象生成方法、装置及计算机 |
CN102253975A (zh) * | 2011-06-16 | 2011-11-23 | 上海博康智能网络科技有限公司 | 一种数据库自动转换系统及方法 |
CN103226478A (zh) * | 2013-05-22 | 2013-07-31 | 北京金和软件股份有限公司 | 一种自动生成并使用代码的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025105A (zh) * | 2016-09-23 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 代码生成方法及装置 |
CN107025105B (zh) * | 2016-09-23 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 代码生成方法及装置 |
CN106446182A (zh) * | 2016-09-29 | 2017-02-22 | 贵州云众知乐教育科技有限公司 | 一种数据库引擎 |
CN108052549A (zh) * | 2017-11-27 | 2018-05-18 | 中山路得斯空调有限公司 | 一种将源数据自动转换为实体类代码的方法 |
CN109725893A (zh) * | 2018-05-17 | 2019-05-07 | 平安普惠企业管理有限公司 | 代码生成方法、设备、装置及计算机可读存储介质 |
CN109189383A (zh) * | 2018-08-28 | 2019-01-11 | 厦门海迈科技股份有限公司 | 代码文件的生成方法、装置、计算设备和存储介质 |
CN110309145A (zh) * | 2019-04-15 | 2019-10-08 | 中国银行股份有限公司 | 一种数据表调整方法、数据表创建方法及装置 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
CN111061475A (zh) * | 2019-12-13 | 2020-04-24 | 中国南方电网有限责任公司 | 软件代码生成方法、装置、计算机设备和存储介质 |
CN111026777B (zh) * | 2019-12-13 | 2023-09-29 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
CN111061475B (zh) * | 2019-12-13 | 2023-12-12 | 中国南方电网有限责任公司 | 软件代码生成方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677324A (zh) | 一种自动生成实体类代码的方法 | |
CN105677323A (zh) | 一种自动生成数据库操作层代码的方法 | |
CN111026777B (zh) | 实体类代码生成方法、装置、计算机设备及存储介质 | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
US9405518B2 (en) | Leveraging legacy applications for use with modern applications | |
CN103049251B (zh) | 一种数据库持久层装置及数据库操作方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
CN103412868A (zh) | 文书生成方法及装置 | |
KR101770292B1 (ko) | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 | |
WO2018233673A1 (zh) | 一种控制器中模型代码配置方法和装置、存储介质 | |
CN105354036A (zh) | 数据库操作代码生成方法及装置 | |
US9652478B2 (en) | Method and apparatus for generating an electronic document schema from a relational model | |
CN111190587A (zh) | 一种基于jdbc自动生成工程化前端代码的方法及系统 | |
CN102681852A (zh) | 基于JavaEE的敏捷开发方法 | |
CN111061475A (zh) | 软件代码生成方法、装置、计算机设备和存储介质 | |
CN102521008B (zh) | 程序编译装置和程序编译方法 | |
CN104731588A (zh) | 页面布局文件生成方法和页面布局文件生成装置 | |
CN105278991A (zh) | 一种云应用部署配置模型的构造方法 | |
Le et al. | Domain-driven design using meta-attributes: A DSL-based approach | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
CN108536660A (zh) | 一种自定义报表的生成方法及终端 | |
CN103677819A (zh) | 基于osgi的代码正向工程的实现方法和实现装置 | |
CN113608748A (zh) | C语言转换Java语言的数据处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |