基于类信息构建查询语句的查找方法与流程

文档序号:12463195阅读:309来源:国知局
本发明涉及数据库查询
技术领域
,尤其涉及一种基于类信息(类信息指与数据库中表相对应的Java类,表的列即类的属性)构建查询语句的查找方法。
背景技术
:Java语言作为一种较为成熟的编程语言,被广泛应用到各种软件开发中。在当今的软件开发中,主要是以B/S浏览器模式开发,AJAX局部刷新的交互方面是应用开发的主流,服务端一般采用数据持久化工具,如JDBCTEMPLATE、HIBERNATE、IBATIS等。典型的应用框架为JavaScript+Struts+Spring+Hibernate/Ibatis。同时,在软件开发中,数据访问是必不可少的,在数据库技术中,使用SQL语句是数据库操作的主要方法。以往专利中,大多都是仅从前台或后台单一方面进行介绍和创新,本发明中,综合前台页面查询条件的动态添加,以及后台查询语句的自动拼接,使用户仅使用简单的操作即可完成复杂的查询操作。目前,综合解决从后台到前台的动态类信息查询方法较少,鲜有涉及动态构建查询语句、自动完成和自动提示等方面的技术方案,且缺少针对类信息方面的应用。因此有必要提供一种基于类信息构建查询语句的查询方法,能自动生成Java对象的类信息数据表文件,实现信息的实时反馈。技术实现要素:鉴于上述的分析,本发明旨在提供一种基于类信息构建查询语句的查找方法,用以解决现有方法中从后台到前台的动态类信息查询方法较少的问题。本发明的目的主要是通过以下技术方案实现的:提供一种基于类信息构建查询语句的查找方法,包括以下步骤:步骤S1.服务器端通过扫描持久化类文件,提取Java类信息及其属性信息;读取预先设置的配置文件,获取各属性默认的配置;根据Java类信息、属性信息和配置信息,自动生成类信息数据表文件;步骤S2.客户端接收用户输入的业务参数,并根据用户的选择动态添加文本输入框;客户端接收用户通过文本输入框输入的查询内容,将输入的查询内容与业务参数一并发送到服务器端;步骤S3.服务器端接收通过客户端选择输入的查询内容和业务参数,自动拼接出SQL语句,根据拼接出的SQL语句进行数据库查找操作,并向客户端进行信息反馈。其中,步骤S1实现自动生成类信息数据表文件包括以下子步骤:创建Velocity模板;通过扫描持久化类文件,自动提取Java类信息及其属性信息;读取预先设置的配置文件,获取属性默认的配置;利用创建的Velocity模板生成SQL语句,并利用SQL语句将Java类的信息及其属性信息、配置信息写入数据表文件,生成类信息数据表文件;输出类信息数据表文件。优选的,在生成类信息数据表文件之后,通过编辑类信息数据表文件中Java类或其属性信息、配置信息,更新类信息数据表文件。优选的,步骤S2中,文本输入框可以跟随着用户的键入显示相应的匹配条目。所述采用Java反射机制,实现动态添加文本输入框,以及在文本输入框中显示匹配条目,具体步骤如下:客户端接收用户设置的业务参数;客户端根据用户输入,在前台界面中动态添加文本输入框,并接收用户通过文本输入框输入的词条,将接收的词条和业务参数一并发送到服务器端;服务器端接收词条和业务参数,根据类信息数据表文件以及业务参数,自动创建查询语句,然后执行查询语句,获取查询结果,作为用户输入词条的匹配条目;服务器端再将查询结果构建成Json字符串,并发送到客户端;客户端解析字符串并显示匹配条目,以供用户选择查询内容。步骤S3的实现包括以下子步骤:服务器接收客户端传输过来的业务参数和用户选择的查询内容;根据类信息数据表文件,获得查询内容和业务参数对应的属性信息和配置信息;针对每一个查询内容,获得对应的SQL语句片段并存储;将用户选择的各查询内容的SQL语句片段合并为一个标准SQL语句并存储;利用合并后的SQL语句进行相对应的数据库查找操作。优选的,所述针对每一个查询内容,获得对应的SQL语句片段,具体是根据文本框对应属性的数据类型进行对应的处理。本发明有益效果如下:本发明的服务端的在启动时通过扫描数据库表对应Java类文件自动生成Java对象的类信息数据表;客户端的前台界面中动态添加文本输入框,输入框跟随着用户键入显示匹配条目;最后,程序后台根据字段类型自动拼出SQL语句,并根据拼出的SQL语句进行相对应的数据库操作,完成信息实时反馈。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。图1为自动生成Java类的类信息数据表文件的流程图;图2为文本输入框的动态添加和显示匹配条目的流程图;图3为SQL语句的自动拼接流程图;图4为实现SQL语句的自动拼接的部分后台处理程序示意图;图5为客户端前台界面中动态文本输入框的示意图。具体实施方式下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。本发明的一个具体实施例,公开了一种基于类信息构建查询语句的查找方法,所述类信息指与数据库中表相对应的Java类,表的列即类的属性,具体包括以下步骤:步骤S1.服务器端通过扫描持久化类文件,提取Java类本身的信息及其属性信息;读取预先设置的配置文件,获取属性默认的配置;根据Java类信息、属性信息和配置信息,自动生成类信息数据表文件。这部分操作在服务器完成。本步骤进一步包括子步骤S11~S15,如图1。步骤S11.创建Velocity模板。所述Velocity模板用于实现SQL语句的共性抽象。所创建的Velocity模板包括Java类的全路径、属性名称、属性前端界面显示名称、属性前端在前端页面中对应的位置、宽度渲染方法、是否显示、是否排序、是否可编辑、排序序号等信息。它允许任何人仅仅简单的使用模板语言来引用由Java代码定义的对象。步骤S12.通过扫描持久化类文件,自动提取Java类信息及其属性信息,包括Java类的名称和信息,以及Java类中的各属性变量的名称、属性数据类型、属性对应的类的全路径、属性序号等;读取预先设置的配置文件,获取属性默认的配置,例如,是否可排序、可编辑、可显示等。所述持久化类文件是指应用项目中存储有数据属性信息的源代码、文本资料、表格等;所述Java类对应数据空中的表;Java类信息是指Java类自身的信息,如Java类的名称、存储位置等;Java类的属性即表的列,Java类的属性信息可以指一个Java类中包括的属性的信息,即列的信息,例如属性变量的名称、属性变量的数据类型、属性变量的序号等信息;所述配置文件是指面向用户定义的Java类中各属性变量的默认配置,例如,是否可排序、可编辑、可显示、可查询等。步骤S13.利用步骤S11创建的Velocity模板生成SQL语句,并利用该SQL语句将Java类的信息及其属性信息、配置信息添加到类信息数据表文件,如此自动生成了类信息数据表文件。生成SQL语句例如:insertintotablecolumninfovalue($CLASSFULLNAME,$COLUMNENUMNAME,$COLUMNLENGTH,$COLUMNNAME,$COLUMNTYPE,$MINI_ALIGN,$MINI_COLUMNTEXT)。步骤S14.输出持久化类文件对应的类信息数据表文件。步骤S15.编辑类信息数据表文件中Java类/属性/配置的信息,并更新类信息数据表文件。本发明中将类信息数据表文件设计成可编辑的,就能通过修改属性的默认配置(是否显示、是否排序、是否可编辑、排序序号)生成最终符合用户要求的配置信息,并更新到类信息数据表文件中,从而类信息数据表文件中记录了符合用户需求的配置。在步骤S1中,自动提取了类信息、属性信息和配置信息,基于Velocity技术自动创建插入类信息的SQL语句,将类信息、属性信息和配置信息(相当于一种元信息)写入类信息数据表文件中,并进行更新。如此操作能快速得到针对该持久化类文件、基于用户配置的类信息数据表文件,用于描述Java类及其属性,并包含了用户的配置信息。该类信息数据表文件的自动创建为后续的开发工作提供了便利。步骤S2.客户端接收用户输入的业务参数,并根据用户的选择动态添加文本输入框;客户端接收用户通过文本输入框输入的查询内容,将输入的查询内容与业务参数一并发送到服务器端。优选的,文本输入框跟随着用户的键入显示相应的匹配条目。实施例中采用了Java反射机制,实现文本输入框的动态添加和匹配条目的显示。Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用类中的任意一个的方法。这种动态获取的信息以及动态调用对象的功能称为Java语言的反射机制。反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象。利用反射机制,可以使开发效率更高、系统维护和迁移部署更简单。优选的,利用JS(Javascript)脚本的AJAX(AsynchronousJavascriptAndXML)技术实现无刷新提示功能,或者使用JQUERY的库组件实现无刷新自动完成和提示功能,这种技术可以帮助在网站中轻松添加输入框的自动完成和自动提示功能。当使用WEB页面搜索时,在WEB页面的文本输入框中键入词条,可随着用户键入显示匹配条目,从而节约时间,这就是自动完成功能。WEB页面中,文本输入框的自动完成和提示功能可以帮助用户快速的完成操作,是非常好的用户使用体验。在做信息化项目时,例如在新增业务时需要选择人员,此时,若在文本输入框中输入“李”,会自动出现下拉框,显示姓为“李”的人的姓名。若在文本输入框中继续输入“文”,会自动出现下拉框,显示姓名中包括“李文”的人的姓名。利用反射机制实现动态添加文本输入框,以及在输入框中显示匹配条目的具体方法如下,流程图如图2所示。S21.客户端接收用户设置的业务参数,业务参数为查询时需要检索的表以及需要检索的列(Java类对象的属性);S22.客户端根据用户输入,在前台界面中动态添加文本输入框,并接收用户通过文本输入框输入的词条,将接收的词条和业务参数一并发送到服务器端;S23.服务器端接收词条和业务参数;S24.服务器端根据类信息数据表文件以及业务参数,自动创建查询语句;S25.服务器端执行查询语句,获取查询结果,作为用户输入词条的匹配条目;S26.服务器端将查询结果构建成能够被客户端解析的Json字符串,并发送到客户端;S27.客户端解析字符串并显示匹配条目,以供用户选择查询内容。上述输入框的动态添加和文本输入框的自动匹配条目,可以帮助用户快速的完成文本框输入操作。步骤S3.服务器端接收客户端选择输入的查询内容和业务参数,自动拼接出SQL语句,并根据拼接出的SQL语句进行相对应的数据库查找操作,并向客户端进行信息反馈。具体地,SQL语句的自动拼接是对至少一个文本输入框中输入的查询内容进行SQL语句处理。优选的,首先针对单个文本输入框的信息进行SQL语句处理,然后再利用条件语句将它们联合起来。优选的,针对单个文本输入框的信息处理,可以根据文本框对应属性的数据类型进行相应处理。例如一个文本输入框中输入是字符串,该文本输入框对应字符串类型的属性,可以采用“Like”这一字符串匹配的方式进行这一个属性的SQL语句创建;针对长整形的数据,则采用“=”与否的数值比较方式进行这一属性的SQL语句创建。程序的一个示例如图4。通过SQL语句的自动拼接,降低了因为手动输入字符错误到导致的错误,同时节省了编码的时间,降低编程工作人员的编写难度。步骤S3具体包括以下子步骤,如图3所示:S31.服务器接收客户端传输过来的业务参数和用户选择的查询内容;S32.根据类信息数据表文件,依次获得查询内容和业务参数对应的属性信息和配置信息;例如数据类型、可查询等;S33.针对每一个查询内容,获得相对应的SQL语句片段并存储;S34.将用户选择的各查询内容的SQL语句片段合并为一个标准SQL语句并存储;S35.利用合并后的SQL语句进行相对应的数据库查找操作。综上所述,本发明实施例提供了一种基于类信息构建查询语句的方法,可以用于WEB页面搜索。本发明的服务端能自动生成类信息数据表文件,该文件能描述Java类的信息及其中属性信息和配置信息,相当于元信息数据表文件,这个数据表这能为后续工作的数据查询、查询拼接提供便利,不用每一次都去对应的Java类中查找属性信息和配置信息,而直接根据类信息数据表文件得到Java类中的信息和配置,因此方便了不同查询项目之间数据查找,提高了查找速度。此外,本发明在Java程序前台界面中动态的添加文本输入框时,输入框可以跟随着用户键入显示匹配条目,如此能够帮助用户快速完成操作。最后,程序后台根据字段类型自动拼出SQL语句,并根据拼出的SQL语句进行相对应的数据库操作,完成信息实时反馈,简化了代码、降低了输入错误,同时节省了编码的时间。本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1