CN108287717A - 一种jar包生成方法及终端 - Google Patents

一种jar包生成方法及终端 Download PDF

Info

Publication number
CN108287717A
CN108287717A CN201710146325.4A CN201710146325A CN108287717A CN 108287717 A CN108287717 A CN 108287717A CN 201710146325 A CN201710146325 A CN 201710146325A CN 108287717 A CN108287717 A CN 108287717A
Authority
CN
China
Prior art keywords
script
data
tables
file
list 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.)
Granted
Application number
CN201710146325.4A
Other languages
English (en)
Other versions
CN108287717B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201710146325.4A priority Critical patent/CN108287717B/zh
Publication of CN108287717A publication Critical patent/CN108287717A/zh
Application granted granted Critical
Publication of CN108287717B publication Critical patent/CN108287717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种jar包生成方法及终端。其中所述方法包括:创建脚本文件,所述脚本文件包括至少一个脚本,根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系,将所述数据表文件进行打包并生成jar包,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。本发明实施例能够实现自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。

Description

一种jar包生成方法及终端
技术领域
本发明涉及计算机技术领域,尤其涉及一种jar包生成方法及终端。
背景技术
随着程序开发复杂度的不断提高,开发者如何更好地提高程序代码的编写效率已经慢慢成为开发过程中不可回避的问题。
在程序开发过程中,存在某些特定的程序代码需要重复编写,若开发人员每次编写这些特定的程序代码时,都需要通过人工编写才能够实现,这种开发方式在一定程度上增加了开发人员的代码编写压力,降低了开发者的工作效率。
发明内容
有鉴于此,本发明实施例提供一种jar包生成方法及终端,可实现自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。
一方面,本发明实施例提供了一种jar包生成方法,该方法包括:
创建脚本文件,所述脚本文件包括至少一个脚本;
根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系;
在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系;
将所述数据表文件进行打包并生成jar包;
若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
进一步地,所述创建脚本文件,具体包括:
获取excel表,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键;
对所述excel表进行解析并生成所述脚本文件。
进一步地,所述方法还包括:
根据所述XML信息表关联数据库;
获取所述数据库中的元数据;
将所述元数据存入所述数据表文件中。
进一步地,所述方法还包括:
创建数据接口;
根据所述数据接口从所述jar包中获取数据。
进一步地,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。
另一方面,本发明实施例提供了一种终端,该终端包括:
第一创建单元,用于创建脚本文件,所述脚本文件包括至少一个脚本;
第二创建单元,用于根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系;
第三创建单元,用于在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系;
打包单元,用于将所述数据表文件进行打包并生成jar包;
调用单元,用于若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
进一步地,所述第一创建单元,具体包括:
第一获取单元,用于获取excel表,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键;
解析单元,用于对所述excel表进行解析并生成所述脚本文件。
进一步地,所述终端还包括:
关联单元,用于根据所述XML信息表关联数据库;
第二获取单元,用于获取所述数据库中的元数据;
存入单元,用于将所述元数据存入所述数据表文件中。
进一步地,所述终端还包括:
第四创建单元,用于创建数据接口;
第三获取单元,用于根据所述数据接口从所述jar包中获取数据。
进一步地,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。
综上所述,本发明具有以下有益效果:本发明实施例通过创建脚本文件,根据所述脚本文件创建数据表文件,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系,将所述数据表文件进行打包并生成jar包,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码,从而实现自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种jar包生成方法的示意流程图。
图2是本发明实施例提供的一种jar包生成方法的另一示意流程图。
图3是本发明实施例二提供的一种jar包生成方法的示意流程图。
图4是本发明实施例二提供的一种jar包生成方法的示意流程图。
图5是本发明实施例提供的一种终端的示意性框图。
图6是本发明实施例提供的一种终端的另一示意性框图。
图7是本发明实施例提供的一种终端的另一示意性框图。
图8是本发明实施例提供的一种终端的另一示意性框图。
图9是本发明实施例提供的一种jar包生成设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
请参阅图1,图1是本发明实施例一提供的一种jar包生成方法的示意流程图。该方法可以运行在智能手机(如Android手机、IOS手机等)、平板电脑、笔记本电脑以及智能设备等终端中。该方法主要是自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。如图1所示,该方法的步骤包括S101~S105。
S101,创建脚本文件,所述脚本文件包括至少一个脚本。
在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本以及trigger脚本。
具体地,如图2所示,步骤S101包括步骤S201~S202。
S201,获取excel表,其中,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键。
在本发明实施例中,所述excel表由用户自行定义,用户根据开发的需要制定excel表格,用户可以定义所述excel表的表格格式,所述excel表的表格格式包括表名、字段、字段名称、字段类型、索引以及外键,用户根据所定义的excel表的格式可以自行填写相对应的表格内容,所填写的表格内容必须与所述excel表中的表格格式一一对应,根据用户所填写的表格内容的不同,所生成的脚本文件的内容也会不相同,例如表1所示:
表1
字段 字段名称 字段类型 索引 外键
主键 id_apply varchar2(32) N
销售人代码 Distributor_Code varchar2(9) Y
申请数据 request_data clob N
响应数据 response_data clob N
错误信息 error_message varchar2(2000) N
根据开发者的需求制定表1,根据表1中的对应关系依次填写表格内容,其中,表1的表名为opms_apply。
S202,对所述excel表进行解析并生成所述脚本文件。
在本发明实施例中,通过利用脚本生成工具config.properties将所述excel表进行解析并生成相对应的脚本文件,可以将所述excel表放置在与脚本生成工具config.properties相同根目录下,也可以将所述excel表放置在其它路径中,其中,脚本生成工具config.properties能够对excel文件进行配置、解析并生成相对应的脚本文件;若将所述excel表放置在与config.properties相同根目录下,config.properties默认从与其相同目录的路径下获取excel表;若将所述excel表放置在其它路径中,用户可以通过config.properties提供的路径配置文件设置excel表的放置路径以使config.properties在用户所设置的路径下获取excel表;若config.properties获取到excel表后,将excel表中的内容读入内存,然后对所述excel表进行解析并生成脚本文件,在config.properties中预设有解析代码,通过解析代码对所述excel表进行解析,按照预设的解析代码在解析过程中获取excel表中应该获取的内容,其中,应该获取的内容包括excel表中的每一项表信息,最后在预设的步骤中根据config.properties中的脚本生成命令针对每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本,所述excel表中的字段名称相对应地生成字段名脚本。
更具体地,在生成对应的各个脚本后,将所生成的各个脚本以脚本文件的形式保存在预设的目录,所述脚本文件按照.sql文件格式存在,每个.sql文件都有对应的文件名,例如,tab.sql表示为建表脚本、ind.sql表示为索引脚本、grt.sql表示为授权脚本等等。
S102,根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。
在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
S103,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系。
在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
S104,将所述数据表文件进行打包并生成jar包。
在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成所述jar包,其中,所述jar包的包名可以由用户自行配置。
S105,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
由以上可见,本发明实施例通过创建脚本文件,根据所述脚本文件创建数据表文件,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系,将所述数据表文件进行打包并生成jar包,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码,从而实现自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。
请参阅图3,图3是本发明实施例二提供的一种jar包生成方法的示意流程图。该方法可以运行在智能手机(如Android手机、IOS手机等)、平板电脑、笔记本电脑以及智能设备等终端中。如图3所示,该方法的步骤包括S301~S308。
S301,创建脚本文件,所述脚本文件包括至少一个脚本。
在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。具体地,针对excel表中的每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本,所述excel表中的字段名称相对应地生成字段名脚本。
S302,根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。
在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
S303,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系。
在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
S304,根据所述XML信息表关联数据库。
在本发明实施例中,关联数据库是指通过XML信息表使终端与数据库连接。由于所述XML信息表记录有数据表与数据库之间的关系,若从数据库中获取相关数据,可以通过所述XML信息表从数据库中获取相应的数据。
S305,获取所述数据库中的元数据。
在本发明实施例中,关联数据库后,从数据库中加载元数据,所述元数据是指每个数据表在数据库中所定义的信息,例如,有一条学生信息记录,其中包括字段姓名(name)、年龄(age)、性别(male)、班级(class)等,那么name、age、male、class就是该学生信息记录在数据库中的元数据。
S306,将所述元数据存入所述数据表文件中。
S307,将所述数据表文件进行打包并生成jar包。
在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成一个jar包,通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码,例如,通过Ant命令执行工具包,自动生成包名为opms-entity.jar的jar包,在opms-entity.jar中打包了自动生成的代码,这些生成的类可以直接用于程序开发。
S308,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
请参阅图4,图4是本发明实施例三提供的一种jar包生成方法的示意流程图。该方法可以运行在智能手机(如Android手机、IOS手机等)、平板电脑、笔记本电脑以及智能设备等终端中。如图4所示,该方法的步骤包括S401~S407。
S401,创建脚本文件,所述脚本文件包括至少一个脚本。
在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。具体地,针对excel表中的每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本,所述excel表中的字段名称相对应地生成字段名脚本。
S402,根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。
在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
S403,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系。
在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
S404,将所述数据表文件进行打包并生成jar包。
在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成一个jar包,通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码,例如,通过Ant命令执行工具包,自动生成包名为opms-entity.jar的jar包,在opms-entity.jar中打包了自动生成的代码,这些生成的类可以直接用于程序开发。
S405,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
S406,创建数据接口。
在本发明实施例中,通过创建数据接口从所述jar包中获取数据,比如,可以使用Bootstrap Classloader来加载jar包中的数据,也可以使用Extension Classloader来加载,也可以AppClassloader来加载,还可以通过自定义Classloader来加载。
S407,根据所述数据接口从所述jar包中获取数据。
请参阅图5,对应上述一种jar包生成方法,本发明实施例还提出一种终端,该终端500包括:第一创建单元501、第二创建单元502、第三创建单元503、打包单元504、调用单元505。
其中第一创建单元501,用于创建脚本文件,所述脚本文件包括至少一个脚本。在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。
具体地,如图6所示,所述第一创建单元501,具体包括:
第一获取单元5011,用于获取excel表,所述excel表包括表名、字段、字段类型、索引以及外键。在本发明实施例中,所述excel表由用户自行定义,用户根据开发的需要制定excel表格,用户可以定义所述excel表的表格格式,所述excel表的表格格式包括表名、字段、字段名称、字段类型、索引以及外键,用户根据所定义的excel表的格式可以自行填写相对应的表格内容,所填写的表格内容必须与所述excel表中的表格格式一一对应,根据用户所填写的表格内容的不同,所生成的脚本文件的内容也会不相同,例如表1所示:
表1
字段 字段名称 字段类型 索引 外键
主键 id_apply varchar2(32) N
销售人代码 Distributor_Code varchar2(9) Y
申请数据 request_data clob N
响应数据 response_data clob N
错误信息 error_message varchar2(2000) N
根据开发者的需求制定表1,根据表1中的对应关系依次填写表格内容,其中,表1的表名为opms_apply。
解析单元5012,用于对所述excel表进行解析并生成所述脚本文件。通过利用脚本生成工具config.properties将所述excel表进行解析并生成相对应的脚本文件,可以将所述excel表放置在与脚本生成工具config.properties相同根目录下,也可以将所述excel表放置在其它路径中,其中,脚本生成工具config.properties能够对excel文件进行配置、解析并生成相对应的脚本文件;若将所述excel表放置在与config.properties相同根目录下,config.properties默认从与其相同目录的路径下获取excel表;若将所述excel表放置在其它路径中,用户可以通过config.properties提供的路径配置文件设置excel表的放置路径以使config.properties在用户所设置的路径下获取excel表;若config.properties获取到excel表后,将excel表中的内容读入内存,然后对所述excel表进行解析并生成脚本文件,在config.properties中预设有解析代码,通过解析代码对所述excel表进行解析,按照预设的解析代码在解析过程中获取excel表中应该获取的内容,其中,应该获取的内容包括excel表中的每一项表信息,最后在预设的步骤中根据config.properties中的脚本生成命令针对每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本,所述excel表中的字段名称相对应地生成字段名脚本。
更具体地,在生成对应的各个脚本后,将所生成的各个脚本以脚本文件的形式保存在预设的目录,所述脚本文件的按照.sql文件格式存在,每个.sql文件都有对应的文件名,例如,tab.sql表示为建表脚本、ind.sql表示为索引脚本、grt.sql表示为授权脚本等等。
第二创建单元502,用于根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
第三创建单元503,用于在所述数据表文件中创建XML信息表,所述XML信息表记录所述信息表与相对应的数据库的关系。在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
打包单元504,用于将所述数据表文件进行打包并生成jar包。在本发明实施例中,关联数据库是指通过XML信息表使终端与数据库连接。在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成一个jar包,通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码,例如,通过Ant命令执行工具包,自动生成包名为opms-entity.jar的jar包,在opms-entity.jar中打包了自动生成的代码,这些生成的类可以直接用于程序开发。
调用单元505,用于若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
由以上可见,本发明实施例通过创建脚本文件,根据所述脚本文件创建数据表文件,在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系,将所述数据表文件进行打包并生成jar包,若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码,从而实现自动生成重复代码方便开发者编写程序代码,从而提高开发者的工作效率。
请参阅图7,对应上述一种jar包生成方法,本发明实施例还提出一种终端,该终端600包括:第一创建单元601、第二创建单元602、第三创建单元603、关联单元604、第二获取单元605、存入单元606、打包单元607、调用单元608。
其中第一创建单元601,用于创建脚本文件,所述脚本文件包括至少一个脚本。在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。具体地,针对excel表中的每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本、所述excel表中的字段名称相对应地生成字段名脚本。
第二创建单元602,用于根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
第三创建单元603,用于在所述数据表文件中创建XML信息表,所述XML信息表记录所述信息表与相对应的数据库的关系。在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
关联单元604,用于根据所述XML信息表关联数据库。在本发明实施例中,关联数据库是指通过XML信息表使终端与数据库连接。由于所述XML信息表记录有数据表与数据库之间的关系,若从数据库中获取相关数据,可以通过所述XML信息表从数据库中获取相应的数据。
第二获取单元605,用于获取所述数据库中的元数据。在本发明实施例中,关联数据库后,从数据库中加载元数据,所述元数据是指每个数据表在数据库中所定义的信息,例如,有一条学生信息记录,其中包括字段姓名(name)、年龄(age)、性别(male)、班级(class)等,那么name、age、male、class就是该学生信息记录在数据库中的元数据。
存入单元606,用于将所述元数据存入所述数据表文件中。
打包单元607,用于将所述数据表文件进行打包并生成jar包。在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成一个jar包,通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码,例如,通过Ant命令执行工具包,自动生成包名为opms-entity.jar的jar包,在opms-entity.jar中打包了自动生成的代码,这些生成的类可以直接用于程序开发。
调用单元608,用于若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
请参阅图8,对应上述一种jar包生成方法,本发明实施例还提出一种终端,该终端700包括:第一创建单元701、第二创建单元702、第三创建单元703、打包单元704、调用单元705、第四创建单元706、第三获取单元707。
其中第一创建单元701,用于创建脚本文件,所述脚本文件包括至少一个脚本。在本发明实施例中,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。具体地,针对excel表中的每一项表信息生成相对应的脚本,比如所述excel表中的表名相对应地生成建表脚本,所述excel表中的索引相对应地生成索引脚本,所述excel表中的字段相对应地生成授权脚本,所述excel表中的字段类型相对应地生成同义词脚本,所述excel表中的外键相对应地生成trigger脚本、所述excel表中的字段名称相对应地生成字段名脚本。
第二创建单元702,用于根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系。在本发明实施例中,先创建好相对应的数据库,在该数据库中创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系,根据所述脚本对每个数据表进行编辑,对每个数据表进行编辑的内容与相对应的脚本中的内容相同,即对每个数据表进行编辑的内容与excel表中的内容相同。
第三创建单元703,用于在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系。在本发明实施例中,在完成创建数据表文件后,还需要创建一个XML信息表,该XML信息表用于记录所述数据表与相对应的数据库的关系,具体地,该XML信息表记录所述数据表在数据库中的表名和所述数据表将要生成的类名,例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity。
打包单元704,用于将所述数据表文件进行打包并生成jar包。在本发明实施例中,将所述数据表文件进行打包并生成jar包,通过Ant命令执行开发平台中的工具包,利用工具包中的jar包自动生成指令将数据表文件自动生成一个jar包,通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码,例如,通过Ant命令执行工具包,自动生成包名为opms-entity.jar的jar包,在opms-entity.jar中打包了自动生成的代码,这些生成的类可以直接用于程序开发。
调用单元705,用于若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。在本发明实施例中,用户可以通过调用jar包中与所述数据表相对应的类名,从而自动生成与所述数据表相对应的代码程序,具体地,用户可以使用调用语句“import包名.类名”加载所述jar包中相对应的程序代码。例如,数据表1在数据库中的表名为opms_apply_account,数据表1在数据库中将要生成的类名为ApplyAccountEntity,通过Ant命令执行工具包,将该数据表1自动生成包名为opms-entity.jar的jar包,当用户需要使用opms-entity.jar中相对应的类以实现自动生成程序代码时,通过调用语句“import opms-entity.ApplyAccountEntity”自动加载与类名ApplyAccountEntity相对应的程序代码。
第四创建单元706,用于创建数据接口。在本发明实施例中,通过创建数据接口从所述jar包中获取数据,比如,可以使用Bootstrap Classloader来加载jar包中的数据,也可以使用Extension Classloader来加载,也可以AppClassloader来加载,还可以通过自定义Classloader来加载。
第三获取单元707,根据所述数据接口从所述jar包中获取数据。
图9为本发明一种jar包生成设备的结构组成示意图。如图9所示,该设备800可包括:输入装置801、输出装置802、收发装置803、存储器804以及处理器805,其中:
所述输入装置801,用于接收外部访问控制设备的输入数据。具体实现中,本发明实施例所述的输入装置801可包括键盘、鼠标、光电输入装置、声音输入装置、触摸式输入装置、扫描仪等。
所述输出装置802,用于对外输出访问控制设备的输出数据。具体实现中,本发明实施例所述的输出装置802可包括显示器、扬声器、打印机等。
所述收发装置803,用于通过通信链路向其他设备发送数据或者从其他设备接收数据。具体实现中,本发明实施例的收发装置803可包括射频天线等收发器件。
所述存储器804,用于存储带有各种功能的程序数据。本发明实施例中存储器804存储的数据包括可调用并运行的程序数据。具体实现中,本发明实施例的存储器804可以是系统存储器,比如,挥发性的(诸如RAM),非易失性的(诸如ROM,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器804还可以是系统之外的外部存储器,比如,磁盘、光盘、磁带等。
所述处理器805,用于运行所述存储器804中存储的程序数据,并执行如下操作:
创建脚本文件,所述脚本文件包括至少一个脚本;根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系;在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系;将所述数据表文件进行打包并生成jar包;若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
进一步地,所述创建脚本文件,具体包括:
获取excel表,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键;对所述excel表进行解析并生成所述脚本文件。
进一步地,所述处理器805还执行如下操作:
根据所述XML信息表关联数据库;获取所述数据库中的元数据;将所述元数据存入所述数据表文件中。
进一步地,所述处理器805还执行如下操作:
创建数据接口;根据所述数据接口从所述jar包中获取数据。
本领域技术人员可以理解,图9中示出的jar包生成设备的实施例并不构成对jar包生成设备具体构成的限定,在其他实施例中,jar包生成设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,jar包生成设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。
本发明所有实施例中的单元可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application Specific IntegratedCircuit,专用集成电路)来实现。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种jar包生成方法,其特征在于,所述方法包括:
创建脚本文件,所述脚本文件包括至少一个脚本;
根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系;
在所述数据表文件中创建XML信息表,所述XML信息表记录所述数据表与相对应的数据库的关系;
将所述数据表文件进行打包并生成jar包;
若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
2.如权利要求1所述的方法,其特征在于,所述创建脚本文件,具体包括:
获取excel表,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键;
对所述excel表进行解析并生成所述脚本文件。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述XML信息表关联数据库;
获取所述数据库中的元数据;
将所述元数据存入所述数据表文件中。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
创建数据接口;
根据所述数据接口从所述jar包中获取数据。
5.如权利要求1所述的方法,其特征在于,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。
6.一种终端,其特征在于,所述终端包括:
第一创建单元,用于创建脚本文件,所述脚本文件包括至少一个脚本;
第二创建单元,用于根据所述脚本文件创建数据表文件,所述数据表文件包括至少一个数据表并设置所述数据表与所述脚本的一一对应关系;
第三创建单元,用于在所述数据表文件中创建XML信息表,所述XML信息表记录所述信息表与相对应的数据库的关系;
打包单元,用于将所述数据表文件进行打包并生成jar包;
调用单元,用于若接收到用户的调用指令,调用所述jar包并自动生成相对应的程序代码。
7.如权利要求6所述的终端,其特征在于,所述第一创建单元,具体包括:
第一获取单元,用于获取excel表,所述excel表包括表名、字段、字段名称、字段类型、索引以及外键;
解析单元,用于对所述excel表进行解析并生成所述脚本文件。
8.如权利要求6所述的终端,其特征在于,所述终端还包括:
关联单元,用于根据所述XML信息表关联数据库;
第二获取单元,用于获取所述数据库中的元数据;
存入单元,用于将所述元数据存入所述数据表文件中。
9.如权利要求6-8所述的终端,其特征在于,所述终端还包括:
第四创建单元,用于创建数据接口;
第三获取单元,用于根据所述数据接口从所述jar包中获取数据。
10.如权利要求6所述的终端,其特征在于,所述脚本包括建表脚本、索引脚本、授权脚本、同义词脚本、trigger脚本以及字段名脚本。
CN201710146325.4A 2017-03-13 2017-03-13 一种jar包生成方法及终端 Active CN108287717B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710146325.4A CN108287717B (zh) 2017-03-13 2017-03-13 一种jar包生成方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710146325.4A CN108287717B (zh) 2017-03-13 2017-03-13 一种jar包生成方法及终端

Publications (2)

Publication Number Publication Date
CN108287717A true CN108287717A (zh) 2018-07-17
CN108287717B CN108287717B (zh) 2021-03-09

Family

ID=62831497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710146325.4A Active CN108287717B (zh) 2017-03-13 2017-03-13 一种jar包生成方法及终端

Country Status (1)

Country Link
CN (1) CN108287717B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030056195A1 (en) * 2001-07-19 2003-03-20 Hunt Joseph R. Code generator
WO2004040399A3 (en) * 2002-10-28 2005-09-29 Jgr Acquisition Inc Transparent ejb support and horizontal data partitioning
US20070073765A1 (en) * 2005-09-23 2007-03-29 Epiphany, Inc. Metadata-based schema generator
CN102945156A (zh) * 2012-10-23 2013-02-27 深圳市融创天下科技股份有限公司 一种基于Java对象的数据缓存方法和装置
US8392880B2 (en) * 2007-04-27 2013-03-05 International Business Machines Corporation Rapid application development for database-aware applications
US20130125092A1 (en) * 2011-11-11 2013-05-16 General Electric Company Generating deployable code from simulation models
CN103473108A (zh) * 2013-08-12 2013-12-25 福建富士通信息软件有限公司 一种Java代码生成方法
CN105354072A (zh) * 2015-10-23 2016-02-24 北京京东尚科信息技术有限公司 一种基于Eclipse平台的代码生成方法
CN105739983A (zh) * 2016-01-29 2016-07-06 腾讯科技(深圳)有限公司 脚本程序编辑装置及其实现方法
US20160217423A1 (en) * 2015-01-23 2016-07-28 Magnan Technologies, Llc Systems and methods for automatically generating application software

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030056195A1 (en) * 2001-07-19 2003-03-20 Hunt Joseph R. Code generator
WO2004040399A3 (en) * 2002-10-28 2005-09-29 Jgr Acquisition Inc Transparent ejb support and horizontal data partitioning
US20070073765A1 (en) * 2005-09-23 2007-03-29 Epiphany, Inc. Metadata-based schema generator
US8392880B2 (en) * 2007-04-27 2013-03-05 International Business Machines Corporation Rapid application development for database-aware applications
US20130125092A1 (en) * 2011-11-11 2013-05-16 General Electric Company Generating deployable code from simulation models
CN102945156A (zh) * 2012-10-23 2013-02-27 深圳市融创天下科技股份有限公司 一种基于Java对象的数据缓存方法和装置
CN103473108A (zh) * 2013-08-12 2013-12-25 福建富士通信息软件有限公司 一种Java代码生成方法
US20160217423A1 (en) * 2015-01-23 2016-07-28 Magnan Technologies, Llc Systems and methods for automatically generating application software
CN105354072A (zh) * 2015-10-23 2016-02-24 北京京东尚科信息技术有限公司 一种基于Eclipse平台的代码生成方法
CN105739983A (zh) * 2016-01-29 2016-07-06 腾讯科技(深圳)有限公司 脚本程序编辑装置及其实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUOYONG HAN,HAO LIU,ZHIJUN ZHANG,ZHENDONG LIU,ZHONGYOU DU: "Analysis and Design of Automatic Code Generation System Based on J2EE", 《2011 THIRD INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND MOBILE COMPUTING》 *
陈倩,吴春亮: "一种利用XML和XSLT生成数据库访问层代码的方法", 《计算机时代》 *

Also Published As

Publication number Publication date
CN108287717B (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
EP2597573A1 (en) Test data generation
CN104965712B (zh) 应用程序加固保护方法、装置及移动终端
CN110297999A (zh) 一种网页模板生成方法及装置、网页加载方法及前端服务器和网站服务器
CN102542002A (zh) 一种卫星遥测数据处理系统以及其实现方法
CN107273122A (zh) 基于解耦机制的可迭代组建业务系统的方法及其终端
US20140122996A1 (en) Method, system, and program for automatic generation of screens for mobile apps based on back-end services
CN102760096B (zh) 测试用数据的生成方法、单元测试方法以及单元测试系统
US20060253831A1 (en) Validation architecture
CN104126186A (zh) 开发用于计算设备的多平台应用的系统和方法
CN115712413B (zh) 低代码开发方法、装置、设备及存储介质
CN108388622A (zh) Api接口动态生成方法、装置、计算机设备及存储介质
CN112256321A (zh) 静态库打包方法、装置、计算机设备和存储介质
CN110109979A (zh) 一种配置表单选项方法和装置
CN105637478A (zh) 原生移动应用代码的计算机辅助开发
CN110113196A (zh) 一种协议配置方法、装置、设备及介质
CN105760192A (zh) 系统服务端业务模块的注册方法及装置
CN105389184B (zh) 产品界面信息的配置方法及装置
CN107391357A (zh) 应用崩溃重现方法、装置及移动终端
CN109101225B (zh) 组件构造方法及装置、组件库架构及计算机可读存储介质
CN108509246A (zh) 一种网页表单自定义验证方法和系统
CN110399306A (zh) 软件模块自动化测试方法及装置
CN109508211A (zh) 一种多语言配置方法、装置、系统及电子设备
CN115422075A (zh) 一种接口校验方法、装置、计算机设备和存储介质
CN103593188B (zh) 一种用于仪器所见即所得菜单的管理系统及管理方法
CN108804120A (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