本发明专利技术提供一种基于模板引擎的数据库动态生成方法,其特征在于,包括:解析并封装配置文件中的配置信息以生成数据信息;基于所述数据信息动态创建所述数据库及数据库表;将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件;基于所述类文件创建类对象,并将对象类型强制转为接口类型;利用数据模型模板设计所述数据库的操作接口并根据所述接口类型建立调用所述操作接口的操作方法实现数据库操作。本发明专利技术可实现数据库生成、存储、查询的统一化及便利性,实现多种数据量存储的需求。
【技术实现步骤摘要】
一种基于模板引擎的数据库动态生成方法
本专利技术涉及计算机
,特别涉及一种基于模板引擎的数据库动态生成方法。
技术介绍
数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理和存取大量的数据资源。数据库技术主要研究如何存储,使用和管理数据。数年来,数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域。数据库技术不仅应用于事务处理,并且进一步应用到情报检索、人工智能、专家系统、大数据等领域。主流的数据库系统包括MySQL、MariaDB、MongoDB、HBase、MicrosoftSQLServer、Oracle、DB2等。数据库接口是与数据库建立连接的技术。目前最流行的两种数据库接口是ODBC和JDBC。Microsoft推出的ODBC(OpenDatabaseConnectivity)技术为异质数据库的访问提供了统一的接口。ODBC基于SQL,并将其作为访问数据库的标准。JDBC(JavaDatabaseConnectivity)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,由一组使用Java语言编写的类和接口组成。通常情况下,无论使用PHP、Java、C/C++、C#等哪种程序语言,涉及数据库相关操作,开发人员都是预先知道数据库的结构,并针对指定业务执行特定操作。如预先写好数据库建表和数据库插入的脚本,预先设定针对指定数据表的操作等。而此时容易引发一系列问题:(1)在数据量很大的情况下,数据库建表操作及数据保存和查询等操作涉及的数据量也会加大。(2)在数据量不确定或者数据量经常需要修改的情况下,开发人员需要花费大量时间在修改数据库操作接口代码上。(3)如果很多数据业务的性质是一致的,例如同为测试数据的不同数据包,完全可以整合,而不需要单独为每个数据包的操作编写代码。(4)当用户数据量改变时,需要开发人员重新修改数据处理及数据库操作代码,直接降低了用户体验和开发人员的工作量。后来开发人员为避免频繁修改数据量导致在数据库开发的时候频繁修改代码的问题,使用配置文件动态建表的方法,重新建库只需要更新配置文件。但有两个问题始终没有得到有效的解决:(1)动态数据操作,数据量和数据库表动态更新,但数据库的存储和查询等操作仍需要单独修改,换句话说,数据模型和数据操作方法仍未统一,数据库相关操作仍需针对特定数据模型。(2)最终的操作接口未完全移交至用户端,一旦用户更新数据量,仍需要开发人员进行相应的修改,用户不能完全独立操作数据库。
技术实现思路
本专利技术技术方案所解决的技术问题为,如何提供一种数据库生产方法可实现数据库存储、查询的统一化及便利性,实现多种数据量存储的需求。为了解决上述技术问题,本专利技术技术方案提供了一种基于模板引擎的数据库动态生成方法,包括:解析并封装配置文件中的配置信息以生成数据信息;基于所述数据信息动态创建所述数据库及数据库表;将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件;基于所述类文件创建类对象,并将对象类型强制转为接口类型;利用数据模型模板设计所述数据库的操作接口并根据所述接口类型建立对象调用所述操作接口的操作方法以建立外部数据源和所述数据库的交互。可选的,所述数据库动态生成方法还包括:配置所述配置文件;所述配置信息至少包括:数据库信息系统、数据库服务器信息、数据库账户信息、数据库引擎信息、数据库编码信息、数据库表名、数据库表字段信息。可选的,所述解析包括:XML解析或JOSN解析。可选的,所述配置信息是指生成的数据模型类及其属性的配置信息,在所述模板引擎的驱动下,配置信息填充至所述数据模型模板,即可生成一个可用的数据类;所述将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件包括:生成所述数据类并通过自编译形成所述类文件。可选的,所述自编译包括:采用JDK中JavaCompiler+CompilationTask的方式,需要传入Java源文件路径和指定Class编译目录,编译成功之后将会在编译目录下根据包路径生成所述类文件可选的,所述配置信息包括数据库表配置信息和数据模型配置信息;所述数据库表配置信息和数据模型配置信息是一一对应的。可选的,所述数据库动态生成方法还包括:采用模板引擎驱动所述数据模型模板,所述模板引擎为FreeMarker模板引擎。可选的,所述基于所述类文件创建类对象,并将对象类型强制转为接口类型包括:调用数据操作方法,绕过直接生成数据类对象,通过反射的形式创建对象,然后强制转换为数据操作接口的类型。可选的,所述调用数据操作方法至少包括如下操作中的一种:数据赋值、数据取值、保存数据到数据库中、从数据库查询数据。可选的,数据赋值操作包括:在数据操作接口中定义批量设置数据类中所有的数据值,逐一根据各数据量或属性的类型和长度在字节流中转换提取数据实际值,然后调用对应属性的Setter方法设置其值;数据取值操作包括:在数据操作接口中定义数据赋值的逆过程,即首先调用Getter方法得到数据类中所有属性的实际值,然后将其转换并存储于预先分配的字节数组中;保存数据到数据库中操作包括:在数据操作接口中定义保存生成的模型数据类各数据量或属性到指定数据库中,根据属性列表拼接了一条SQLINSERT语句,基于属性的名称与数据库字段名称一致关系保存数据库实现动态操作;从数据库查询数据操作包括在数据操作接口中定义根据检索条件从指定数据库查询对应表的各字段值,解析并给数据类的属性赋值,根据属性列表拼接了一条SQLSELETE语句以实现查询数据库的动态操作。本专利技术技术方案的有益效果至少包括:作为本专利技术技术方案的一个方面,提供了开发人员动态生成数据库、动态操作数据库的方法,并可解决频繁修改数据量或数据量较大引发的频繁修改代码的问题;作为本专利技术技术方案的另一方面,本专利技术技术方案为用户实现了只需通过修改配置文件信息和数据传入接口即可满足数据库操作需求的快速生成数据库的方法,不用关心任何内部数据库操作相关问题,生成所需数据库的过程简单、高效。本专利技术技术方案可适应数据存储需求的不断提高的行业需要,在进行数据存储和查询的同时,可满足不断变化的数据量存储需求,提高数据库操作的灵活性,有助于提高开发效率。本专利技术技术方案数据库生成方法,乃至数据库产生后的数据存储及查询操作均是动态实现的,用户如需更新数据量,只需要修改配置文件即可,操作简单并实现操作统一化及便利性;本专利技术技术方案还借助模板引擎并结合接口操作、多态、自编译技术,本专利技术技术方案的数据类的生成、编译及对象创建,乃至调用数据操作方法的整个过程都是动态的,实现了数据量变化场景下的一致操作。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其他特征、目的和优点将会变得更明显:图1为本专利技术技术方案提供的一种基于模板引擎的数据库动态生成方法的流程示意图;图2为本专利技术技术方案中模板及数据模型的输入/输出关系示意图;图3为本专利技术技术方案中基于模板引擎的数据库动态生成方法的算法框架示意图;图4为本专利技术技术方案中配置文件的一则实例的结构示意图。具体实施方式为了更好的使本专利技术的技术方案清晰的表示出来,下面结合附图对本专利技术作进一步说明。本本文档来自技高网...
【技术保护点】
一种基于模板引擎的数据库动态生成方法,其特征在于,包括:解析并封装配置文件中的配置信息以生成数据信息;基于所述数据信息动态创建所述数据库及数据库表;将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件;基于所述类文件创建类对象,并将对象类型强制转为接口类型;利用数据模型模板设计所述数据库的操作接口并根据所述接口类型建立对象调用所述操作接口的操作方法以建立外部数据源和所述数据库的交互。
【技术特征摘要】
1.一种基于模板引擎的数据库动态生成方法,其特征在于,包括:解析并封装配置文件中的配置信息以生成数据信息;基于所述数据信息动态创建所述数据库及数据库表;将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件;基于所述类文件创建类对象,并将对象类型强制转为接口类型;利用数据模型模板设计所述数据库的操作接口并根据所述接口类型建立对象调用所述操作接口的操作方法以建立外部数据源和所述数据库的交互。2.如权利要求1所述的数据库动态生成方法,其特征在于,还包括:配置所述配置文件;所述配置信息至少包括:数据库信息系统、数据库服务器信息、数据库账户信息、数据库引擎信息、数据库编码信息、数据库表名、数据库表字段信息。3.如权利要求1所述的数据库动态生成方法,其特征在于,所述解析包括:XML解析或JOSN解析。4.如权利要求1所述的数据库动态生成方法,其特征在于,所述配置信息是指生成的数据模型类及其属性的配置信息,在所述模板引擎的驱动下,配置信息填充至所述数据模型模板,即可生成一个可用的数据类;所述将所述数据信息传递至数据模型模板并在模板引擎的作用下生成类文件包括:生成所述数据类并通过自编译形成所述类文件。5.如权利要求4所述的数据库动态生成方法,其特征在于,所述自编译包括:采用JDK中JavaCompiler+CompilationTask的方式,需要传入Java源文件路径和指定Class编译目录,编译成功之后将会在编译目录下根据包路径生成所述类文件。6.如权利要求1所述的数据库动态生成方法,其特征在于,所述配置信息包括数据库表配置信息和数据模型...
【专利技术属性】
技术研发人员:王洋,叶周,
申请(专利权)人:王洋,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。