CN112346720A - 基于sql生成自定义代码的方法、设备和电子装置 - Google Patents

基于sql生成自定义代码的方法、设备和电子装置 Download PDF

Info

Publication number
CN112346720A
CN112346720A CN202011137055.9A CN202011137055A CN112346720A CN 112346720 A CN112346720 A CN 112346720A CN 202011137055 A CN202011137055 A CN 202011137055A CN 112346720 A CN112346720 A CN 112346720A
Authority
CN
China
Prior art keywords
sql
template
generating
java
acquiring
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
Application number
CN202011137055.9A
Other languages
English (en)
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.)
DBAPPSecurity Co Ltd
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity 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 Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202011137055.9A priority Critical patent/CN112346720A/zh
Publication of CN112346720A publication Critical patent/CN112346720A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种基于sql生成自定义代码的方法、设备和电子装置,其中,该基于sql生成自定义代码的方法包括:获取sql文件和配置参数,根据sql文件和配置参数生成sql表,并获取sql表的字段参数,设置字段参数与Java中属性的映射关系、Java架构的模板和模板的模板变量,获取模板变量对应的值,根据映射关系、模板和模板变量对应的值生成Java代码。通过本申请,解决了相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,节省了开发人员的开发时间,降低了开发成本,提高了开发效率。

Description

基于sql生成自定义代码的方法、设备和电子装置
技术领域
本申请涉及计算机技术领域,特别是涉及基于sql生成自定义代码的方法、设备和电子装置。
背景技术
开发人员在开发过程中,经常需要与数据库进行交互,并对数据库中的表进行增、删、改、查操作,通常情况下,数据库使用sql语言实现。同时如果增、删、改、查操作的功能代码均由开发人员手动撰写,则撰写从控制层到持久层的Java代码的工作量是相当庞大的,费时费力,成本高且效率低。
目前针对相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于sql生成自定义代码的方法、设备、电子装置和存储介质,以至少解决相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题。
第一方面,本申请实施例提供了一种基于sql生成自定义代码的方法,包括:
获取sql文件和配置参数,根据所述sql文件和所述配置参数生成sql表,获取所述sql表的字段参数;
设置所述字段参数与Java中属性的映射关系、Java架构的模板和所述模板的模板变量;
获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码。
在其中一些实施例中,获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码包括:
将所述模板变量写入集合作为键,通过模板引擎在所述集合中获取所述键对应的值,得到键值对;
将所述键值对填入所述模板,生成所述Java代码。
在其中一些实施例中,通过模板引擎在所述集合中获取所述键对应的值包括:
用预设标识符代替所述模板引擎的标识符;
对所述预设标识符进行解析,获取所述键对应的值。
在其中一些实施例中,获取所述sql表的字段参数包括:
从本地mySQL数据库中获取与所述sql表对应的字段参数。
在其中一些实施例中,所述配置参数的获取方法包括:
根据所述sql文件生成初始表,对所述初始表进行解析,获取所述配置参数。
在其中一些实施例中,在获取所述配置参数之后,所述方法还包括:
删除所述初始表。
在其中一些实施例中,设置所述字段参数与Java中属性的映射关系包括:
设置所述字段参数中字段类型与Java中数值类型的映射关系;
设置所述字段参数中字段名称与Java中驼峰的映射关系。
第二方面,本申请实施例提供了一种基于sql生成自定义代码的设备,包括获取模块、设置模块和生成模块:
所述获取模块,用于获取sql文件和配置参数,根据所述sql文件和所述配置参数生成sql表,获取所述sql表的字段参数;
所述设置模块,用于设置所述字段参数与Java中属性的映射关系、Java架构的模板和所述模板的模板变量;
所述生成模块,用于获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于sql生成自定义代码的方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于sql生成自定义代码的方法。
相比于相关技术,本申请实施例提供的基于sql生成自定义代码的方法,通过获取sql文件和配置参数,根据sql文件和配置参数生成sql表,并获取sql表的字段参数,设置字段参数与Java中属性的映射关系、Java架构的模板和模板的模板变量,获取模板变量对应的值,根据映射关系、模板和模板变量对应的值生成Java代码,解决了相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,节省了开发人员的开发时间,降低了开发成本,提高了开发效率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于sql生成自定义代码的方法的流程图;
图2是根据本申请实施例的另一种基于sql生成自定义代码的方法的流程图;
图3是根据本申请优选实施例的基于sql生成自定义代码的方法的流程图;
图4为本申请实施例的基于sql生成自定义代码的方法的终端的硬件结构框图;
图5是根据本申请实施例的基于sql生成自定义代码的设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在对大量数据进行处理的过程中,后台程序需要与数据库进行交互,通常情况下,对数据库中的数据进行查询时,由于sql是针对数据库查询而产生的语言,因此采用sql语言对数据库进行操作会提高数据查询的效率,更加便捷。但是后台程序往往采用sql之外的语言,例如Java,来实现业务方法,所以为了将Java与sql进行对应,需要基于sql中的一些查询语句生成对应的Java语句,便于后台与数据库之间进行交互。
本实施例提供了一种基于sql生成自定义代码的方法,图1是根据本申请实施例的基于sql生成自定义代码的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S110,获取sql文件和配置参数,根据sql文件和配置参数生成sql表,并获取sql表的字段参数。
其中,sql为结构化查询语言(Structured Query Language,简称为sql),是一种具有特殊目的的编程语言,具体为一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
在生成对应的Java代码之前,需要先获取想要查询的数据的字段参数,这些字段参数需要基于已生成的sql表得到。而生成sql表需要对应的sql文件和配置参数,具体地,本实施例中的sql文件包括了需要生成的sql表中的所有数据,例如数据的值和数据的类型等等,配置参数为与数据库连接所需的参数,本实施例中的数据库具体可以为sql数据库,配置参数可以包括开发人员的身份信息、sql文件的包名、sql文件存储的模块名称等信息。
生成sql表的过程在数据库中进行,在生成sql表之后,后台可以根据sql表获取字段参数,该字段参数包括表注释、字段名称、字段注释、字段类型等等。在其他实施例中,字段参数还可以由sql文件直接得到。
步骤S120,设置字段参数与Java中属性的映射关系、Java架构的模板和模板的模板变量。
由于sql与Java属于不同的编程语言,因此语法结构不同,需要预先设置字段参数与Java中属性的映射关系,才能将sql代码转化为可用的Java代码。sql中的字段与Java中的属性对应,字段与属性表示性别、姓名、年龄等数据特征。
进一步地,还需要设置生成后的Java代码的架构,具体包括Java中实体类、持久层、业务层、控制层的代码模板,sql中的表与Java中的实体类对应,对数据库进行增删改查可以通过实体类、持久层、业务层和控制层实现。
在设置模板之后,模板中存在一些需要经常修改的变量,便于开发人员根据实际情况进行调整,即为模板变量,例如开发人员的姓名和数据包的名称等等。
步骤S130,获取模板变量对应的值,根据映射关系、模板和模板变量对应的值生成Java代码。
在生成Java代码的过程中,模板变量的具体值可以通过已有的后台Java文件直接获取,在获得模板变量的值之后,可以根据预设的映射关系和模板得到可用的Java代码。
通过上述步骤S110至步骤S130,根据sql表中的字段参数、预设的映射关系、模板和获取到的模板变量,可以基于sql语句自定义生成Java代码,进一步地,还可以通过模板变量动态修改需要修改的地方,开发人员可以一键生成代码,解决了相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,节省了开发人员的开发时间,降低了开发成本,开发人员不用太关心基本的增删改查操作,可以更加注重业务的开发,提高开发效率。
在其中一些实施例中,获取模板变量对应的值包括:将模板变量写入集合(map)作为键(key),通过模板引擎在集合中获取键对应的值(value),得到键值对,其中集合里与键对应的值可以通过对已有的后台Java文件进行解析得到,本实施例中的模板引擎可以为freemarker,freemarker是一种基于模板生成文本输出的通用工具,使用Java语言编写,因此可以以该模板引擎为工具,获取生成代码的必要数据,进一步提高代码的生成效率。
在获取键值对之后,将键值对填入模板,然后根据映射关系、模板和模板变量对应的值生成Java代码。例如,在要生成的Java代码为页面代码的情况下,Java架构的模板对应为一个页面模板,在得到模板变量的值之后,将模板变量的值放入页面模板中,即可得到页面代码。进一步地,还可以将生成的页面代码复制到业务项目中,加快业务项目的进展。
本实施例中,通过freemarker框架特性封装业务层的公共核心方法,封装好的公共核心方法可以进行复制使用,开发人员按照预设的Java架构模板补全里面的模板变量,保证了所有开发人员的代码风格几乎一致,有效提高Java代码的可读性。
在其中一些实施例中,架构中包括的xml文件用于存储数据库操作逻辑和Java方法的对应关系,其中,该xml文件需要一个特殊的标识符“#{}”,但是模板引擎在获取键值对的过程中,会将标识符“#{}”解析掉,导致xml文件无法识别,因此本实施例中通过模板引擎在集合中获取键值对还包括:用预设标识符代替模板引擎的标识符,对预设标识符进行解析,获取键对应的值,从而得到键值对。例如,在某一个标识符不造成歧义的情况下,可以将该标识符作为预设标识符代替“#{}”,避免“#{}”被模板引擎解析,在xml文件进行识别时,自动将预设标识符替换为“#{}”,完成Java代码的生成。因此,本实施例中通过预设标识符避免一些特殊的、必要的标识符被解析,提高生成Java代码的效率和准确度。
在其中一些实施例中,配置参数的获取方法包括:根据sql文件生成初始表,在生成初始表的过程中,可以在本地mySQL对初始表的xml文件进行解析,然后从本地mySQL中获取配置参数。进一步地,在获取配置参数之后,由于考虑到在基于sql语句生成Java代码的过程中,对初始表会产生修改或者新增操作,造成影响,因此需要先将初始表删除,生成一张新的sql表,基于新的sql表进行Java代码的生成,避免造成数据的不完整性。
在其中一些实施例中,图2是根据本申请实施例的另一种基于sql生成自定义代码的方法的流程图,如图2所示,该方法还包括如下步骤:
步骤S210,从本地mySQL数据库中获取与sql表对应的字段参数。
其中,mySQL是一个关系型数据库管理系统(Relational Database ManagementSystem,简称为RDBMS),关系型数据库管理系统将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,mySQL具有体积小、速度快、总体拥有成本低的特点,因此可以增加数据查询的速度,并且可以提高数据存储的灵活性。
在生成Java代码的过程中,会将已存在的数据全部清空,因此生成Java代码时会造成数据不完整。所以在生成Java代码时,需要连接本地的mySQL数据库,而不是连接开发环境的mySQL数据库,以减少Java代码生成过程对开发环境的影响。
在与本地mySQL数据库连接之后,可以从information_schema中获取字段参数,例如表注释、字段名称、字段注释、字段类型等等。
基于上述步骤S210,本实施例通过连接本地mySQL数据库,可以减少对开发环境的影响。
在其中一些实施例中,设置字段参数与Java中属性的映射关系包括:设置字段参数中字段类型与Java中数值类型的映射关系,例如,mySQL中的varchar类型对应Java中实体类的String,mySQL中的date类型对应Java中实体类的Date类型,以及Java中的八种基本数据类型int、short、float、double、long、boolean、byte、char也均需要设置对应的映射关系。进一步地,还需要设置字段参数中字段名称与Java中驼峰的映射关系,通常情况下,sql中以下划线对单词进行区分,Java中根据骆峰式命名法(Camel-Case)对实体类、函数、变量等进行命名,具体地,驼峰式命名法包括大驼峰和小驼峰,在大驼峰规则下,名称中的第一个单词的首字母大写,其他单词的首字母也大写,通常用于实体类、函数、属性和命名空间的命名,在小驼峰规则下,名称中的第一个单词的首字母小写,其他单词的首字母大写,通常用于方法和变量的标识符中。例如,sql中的字段为person_name,映射在Java语言中,根据小驼峰规则会变为personName,如果sql表的名字为detailed_list,映射在Java语言中,根据大驼峰规则会变为DetailedList。本实施例通过设置具体的sql语句与Java代码的映射关系,可以更加准确地生成Java代码。
下面通过优选实施例对本申请实施例进行描述和说明。
图3是根据本申请优选实施例的基于sql生成自定义代码的方法的流程图,如图3所示,该方法包括如下步骤:
步骤S310,获取sql文件,执行创建初始表的语法,并且读取本地mySQL的配置参数;
步骤S320,删除初始表,根据sql文件和配置参数生成sql表;
步骤S330,从information_schema中找到与sql表对应的字段参数;
步骤S340,设置字段参数与Java中属性的映射关系;
步骤S350,定义Java中实体类、持久层、业务层、控制层代码模板和模板变量;
步骤S360,基于freemarker模板引擎,将模板变量放入一个map,并将该map的key、value填充在模板中;
步骤S370,生成对应的Java页面代码,复制至项目代码中。
通过上述步骤S310至步骤S370,根据sql表中的字段参数、预设的映射关系、模板和获取到的模板变量,可以基于sql语句自定义生成Java代码,进一步地,还可以通过模板变量动态修改需要修改的地方,开发人员可以一键生成代码,解决了相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,节省了开发人员的开发时间,降低了开发成本,开发人员不用太关心基本的增删改查操作,可以更加注重业务的开发,提高开发效率。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图4为本申请实施例的基于sql生成自定义代码的方法的终端的硬件结构框图。如图4所示,终端40可以包括一个或多个(图4中仅示出一个)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器404,可选地,上述终端还可以包括用于通信功能的传输设备406以及输入输出设备408。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器404可用于存储控制程序,例如,应用软件的软件程序以及模块,如本申请实施例中的基于sql生成自定义代码的方法对应的控制程序,处理器402通过运行存储在存储器404内的控制程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至终端40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端40的通信供应商提供的无线网络。在一个实例中,传输设备406包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例还提供了一种基于sql生成自定义代码的设备,该设备用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的基于sql生成自定义代码的设备的结构框图,如图5所示,该设备包括获取模块51、设置模块52和生成模块53:
获取模块51,用于获取sql文件和配置参数,根据sql文件和配置参数生成sql表,获取sql表的字段参数;
设置模块52,用于设置字段参数与Java中属性的映射关系、Java架构的模板和模板的模板变量;
生成模块53,用于获取模板变量对应的值,根据模板和模板变量对应的值生成Java代码。
通过本实施例中的设备,根据sql表中的字段参数、预设的映射关系、模板和获取到的模板变量,可以基于sql语句自定义生成Java代码,进一步地,还可以通过模板变量动态修改需要修改的地方,开发人员可以一键生成代码,解决了相关技术中对数据库进行操作的代码均由开发人员撰写,导致撰写成本高且效率低的问题,节省了开发人员的开发时间,降低了开发成本,开发人员不用太关心基本的增删改查操作,可以更加注重业务的开发,提高开发效率。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取sql文件和配置参数,根据所述sql文件和所述配置参数生成sql表,获取所述sql表的字段参数。
S2,设置所述字段参数与Java中属性的映射关系、Java架构的模板和所述模板的模板变量。
S3,获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的基于sql生成自定义代码的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于sql生成自定义代码的方法。
在其中一些实施例中,还提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于sql生成自定义代码的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于sql生成自定义代码的方法,其特征在于,包括:
获取sql文件和配置参数,根据所述sql文件和所述配置参数生成sql表,获取所述sql表的字段参数;
设置所述字段参数与Java中属性的映射关系、Java架构的模板和所述模板的模板变量;
获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码。
2.根据权利要求1所述的基于sql生成自定义代码的方法,其特征在于,获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码包括:
将所述模板变量写入集合作为键,通过模板引擎在所述集合中获取所述键对应的值,得到键值对;
将所述键值对填入所述模板,生成所述Java代码。
3.根据权利要求2所述的基于sql生成自定义代码的方法,其特征在于,通过模板引擎在所述集合中获取所述键对应的值包括:
用预设标识符代替所述模板引擎的标识符;
对所述预设标识符进行解析,获取所述键对应的值。
4.根据权利要求1所述的基于sql生成自定义代码的方法,其特征在于,获取所述sql表的字段参数包括:
从本地mySQL数据库中获取与所述sql表对应的字段参数。
5.根据权利要求1所述的基于sql生成自定义代码的方法,其特征在于,所述配置参数的获取方法包括:
根据所述sql文件生成初始表,对所述初始表进行解析,获取所述配置参数。
6.根据权利要求5所述的基于sql生成自定义代码的方法,其特征在于,在获取所述配置参数之后,所述方法还包括:
删除所述初始表。
7.根据权利要求1所述的基于sql生成自定义代码的方法,其特征在于,设置所述字段参数与Java中属性的映射关系包括:
设置所述字段参数中字段类型与Java中数值类型的映射关系;
设置所述字段参数中字段名称与Java中驼峰的映射关系。
8.一种基于sql生成自定义代码的设备,其特征在于,包括获取模块、设置模块和生成模块:
所述获取模块,用于获取sql文件和配置参数,根据所述sql文件和所述配置参数生成sql表,获取所述sql表的字段参数;
所述设置模块,用于设置所述字段参数与Java中属性的映射关系、Java架构的模板和所述模板的模板变量;
所述生成模块,用于获取所述模板变量对应的值,根据所述映射关系、所述模板和所述模板变量对应的值生成Java代码。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的基于sql生成自定义代码的方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项所述的基于sql生成自定义代码的方法。
CN202011137055.9A 2020-10-22 2020-10-22 基于sql生成自定义代码的方法、设备和电子装置 Pending CN112346720A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011137055.9A CN112346720A (zh) 2020-10-22 2020-10-22 基于sql生成自定义代码的方法、设备和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011137055.9A CN112346720A (zh) 2020-10-22 2020-10-22 基于sql生成自定义代码的方法、设备和电子装置

Publications (1)

Publication Number Publication Date
CN112346720A true CN112346720A (zh) 2021-02-09

Family

ID=74359661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011137055.9A Pending CN112346720A (zh) 2020-10-22 2020-10-22 基于sql生成自定义代码的方法、设备和电子装置

Country Status (1)

Country Link
CN (1) CN112346720A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111065A (zh) * 2021-04-13 2021-07-13 北京锐安科技有限公司 数据库创建方法、装置、计算机设备及存储介质
CN113703777A (zh) * 2021-09-02 2021-11-26 中国农业银行股份有限公司 基于数据库表的代码生成方法、装置、存储介质和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN108762743A (zh) * 2018-05-23 2018-11-06 浪潮软件集团有限公司 一种数据表操作代码生成方法及装置
CN109471619A (zh) * 2018-11-20 2019-03-15 北京千丁互联科技有限公司 Mybatis代码生成方法、装置及计算机终端
CN110333849A (zh) * 2019-05-08 2019-10-15 八戒科技服务有限公司 一种基于FreeMarker模板引擎实现代码机器人的方法、装置
CN110851129A (zh) * 2019-11-13 2020-02-28 深圳市泰洲科技有限公司 数据管理类的软件系统代码自动生成方法
CN111324647A (zh) * 2020-01-21 2020-06-23 北京东方金信科技有限公司 一种生成etl代码的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN108762743A (zh) * 2018-05-23 2018-11-06 浪潮软件集团有限公司 一种数据表操作代码生成方法及装置
CN109471619A (zh) * 2018-11-20 2019-03-15 北京千丁互联科技有限公司 Mybatis代码生成方法、装置及计算机终端
CN110333849A (zh) * 2019-05-08 2019-10-15 八戒科技服务有限公司 一种基于FreeMarker模板引擎实现代码机器人的方法、装置
CN110851129A (zh) * 2019-11-13 2020-02-28 深圳市泰洲科技有限公司 数据管理类的软件系统代码自动生成方法
CN111324647A (zh) * 2020-01-21 2020-06-23 北京东方金信科技有限公司 一种生成etl代码的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王运成, 同济大学出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111065A (zh) * 2021-04-13 2021-07-13 北京锐安科技有限公司 数据库创建方法、装置、计算机设备及存储介质
CN113703777A (zh) * 2021-09-02 2021-11-26 中国农业银行股份有限公司 基于数据库表的代码生成方法、装置、存储介质和设备

Similar Documents

Publication Publication Date Title
US11366856B2 (en) System and method for updating target schema of graph model
CN103678556B (zh) 列式数据库处理的方法和处理设备
US10430164B2 (en) Automation of canonical model usage in application development processes
CN111797073B (zh) 数据库管理方法、电子设备与计算机可读存储介质
CN114096956A (zh) 一种数据库操作层表示方法及装置
CN109933571B (zh) 数据库设计文档生成方法、装置及计算机可读存储介质
WO2021217846A1 (zh) 接口数据处理方法、装置、计算机设备和存储介质
CN111177113B (zh) 数据迁移方法、装置、计算机设备和存储介质
CN112346720A (zh) 基于sql生成自定义代码的方法、设备和电子装置
WO2020192141A1 (zh) 接口模拟方法、装置、计算机设备和存储介质
CN107330014B (zh) 一种数据表的创建方法与设备
CN111159215B (zh) Java类与关系型数据库的映射方法、装置及计算设备
US11442796B2 (en) System and method for creating or updating an API configuration
CN113703862A (zh) 基于配置的接口调用方法、装置、设备及存储介质
CN113296854B (zh) 一种数据加载方法、系统、电子设备及存储介质
CN113590115B (zh) 一种业务系统代码自动生成方法及装置
CN113703777B (zh) 基于数据库表的代码生成方法、装置、存储介质和设备
CN117807106A (zh) 基于json和sql的数据库操作系统及方法
WO2023208012A1 (zh) 程序处理、运行方法、装置、终端、智能卡及存储介质
CN109726213B (zh) 一种程序代码转换方法、装置、介质和计算设备
CN112612530B (zh) 类查询方法及装置
CN108762737A (zh) 安卓设备id持久化方法、存储介质、电子设备及系统
CN113722321A (zh) 数据导出方法、装置和电子设备
CN114036178A (zh) 服务接口生成方法、装置、计算机及可读存储介质
CN112632081A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210209

RJ01 Rejection of invention patent application after publication