CN103544211A - 一种将对象转化为sql语句的通用查询系统及方法 - Google Patents

一种将对象转化为sql语句的通用查询系统及方法 Download PDF

Info

Publication number
CN103544211A
CN103544211A CN201310396649.5A CN201310396649A CN103544211A CN 103544211 A CN103544211 A CN 103544211A CN 201310396649 A CN201310396649 A CN 201310396649A CN 103544211 A CN103544211 A CN 103544211A
Authority
CN
China
Prior art keywords
attribute
sql statement
converted
querying condition
inquiry
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
CN201310396649.5A
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.)
GUANGDONG QTONE EDUCATION CO Ltd
Original Assignee
GUANGDONG QTONE EDUCATION 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 GUANGDONG QTONE EDUCATION CO Ltd filed Critical GUANGDONG QTONE EDUCATION CO Ltd
Priority to CN201310396649.5A priority Critical patent/CN103544211A/zh
Publication of CN103544211A publication Critical patent/CN103544211A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Abstract

本发明公开了一种将对象转化为SQL语句的通用查询系统及方法,其中,所述方法包括:首先,在面向对象语言中生成基本对象;然后,设置查询条件,令所述查询条件与每一基本对象的属性相对应;根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。相比于现有技术,具有以下特点:a.统一处理、所有查询条件均会经过本系统进行检测,不会遗漏某些属性。查询条件的变化,不影响装置本身。b.低依赖性。不依赖特定的软件框架,引入方便。c.使用方便。一行代码即可调用,无须管理配置文件。

Description

一种将对象转化为SQL语句的通用查询系统及方法
技术领域
本发明涉及面向对象查询技术领域,尤其涉及一种将对象转化为SQL语句的通用查询系统及方法。 
背景技术
在软件系统中,经常需要用户输入查询条件,查询出需要的结果。其本质即是将用户输入的数据转化为SQL语句,在数据库中查询出结果并返回。 
当前使用较多的方法有: 
(1)每做一个查询功能,都要重新根据查询条件组装SQL语句,费时费力、重复工作且易出错。例如组装SQL时忘了组装一个字段则导致整个结果不正确;一但新增了查询条件,又要重新编写组装SQL的代码,否则新增的查询条件无法生效。
(2)在一些开源的数据库框架上进行修改,例如ibatis。其优点在于可以做到灵活组装SQL,但缺点在于限制了用户必须使用该框架,否则无法使用其自动组装的特点。 
即便如此,ibatis也是使用一次需编写一次配置文件,只是在一次配置中不需要再修改。例如配置好了产品相关的配置文件,则产品结构的变动不需要再重新修改;但新增一种新闻查询时,仍需要重新配置新闻查询对应的配置文件。 
有鉴于此,现有技术有待改进和提高。 
发明内容
鉴于现有技术中的不足,本发明目的在于提供一种将对象转化为SQL语句的通用查询系统及方法。旨在解决现有技术中查询系统费时费力,重复工作且容易出错等问题。 
本发明的技术方案如下: 
一种将对象转化为SQL语句的通用查询方法,其中,所述方法包括以下步骤:
A、在面向对象语言中生成基本对象;
B、设置查询条件,令所述查询条件与每一基本对象的属性相对应;
C、根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
所述的将对象转化为SQL语句的通用查询方法,其中,所述步骤A中,所述基本对象为javaBean。 
所述的将对象转化为SQL语句的通用查询方法,其中,所述步骤B中,所述基本对象的属性newsId,属性类别是整数;则会形成查询条件 如下: 
news_id= 属性的值。
所述的将对象转化为SQL语句的通用查询方法,其中,所述步骤B中,所述基本对象的属性newsTitle,属性类别是字符串;则会形成查询条件 如下: 
news_title   like   ‘%属性的值%’。
所述的将对象转化为SQL语句的通用查询方法,其中,所述步骤C中组装对应的SQL语句是根据属性是否有值来决定是会要组装该字段,根据属性类别判断是要用相应条件进行连接,再加上取得属性的值则组装成完整的SQL语句。 
一种将对象转化为SQL语句的通用查询系统,其中,包括: 
对象生成单元,用于在面向对象语言中生成基本对象;
对应单元,用于设置查询条件,令所述查询条件与每一基本对象的属性相对应;
组装单元,用于根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
所述的将对象转化为SQL语句的通用查询系统,其中,所述对象生成单元中,所述基本对象为javaBean。 
所述的将对象转化为SQL语句的通用查询系统,其中,所述对应单元中,所述基本对象的属性newsId,属性类别是整数;则会形成查询条件 如下: 
news_id= 属性的值。
有益效果: 
本发明的将对象转化为SQL语句的通用查询系统及方法,相比于现有技术,具有如下优点:
(1)只需要在查询时一句代码调用本装置,自动生成对应的SQL语句,不需要查询一次组装一次SQL
(2)可直接使用,不需要安装指定的软件框架,不影响原有的系统结构,不需要相应的配置文件。
(3)只返回组装后的SQL语句,使用者可根据实际需要再进行二次组装,可灵活的进行修改,不会完全的限制输出结果。 
另外,所述将对象转化为SQL语句的通用查询系统还具有以下特点:a.统一处理、所有查询条件均会经过本系统进行检测,不会遗漏某些属性。查询条件的变化,不影响装置本身。b.低依赖性。不依赖特定的软件框架,引入方便。C.使用方便。一行代码即可调用,无须管理配置文件。 
附图说明
图1为本发明的将对象转化为SQL语句的通用查询方法的流程图。 
图2为本发明的将对象转化为SQL语句的通用查询方法中实施例的示意图。 
图3为本发明的将对象转化为SQL语句的通用查询系统的结构框图。 
图4为本发明的将生成查询条件,令查询条件与对象中的属性一一对应的框图。 
图5为本发明的对查询对象进行全面解析的框图。 
具体实施方式
本发明提供一种将对象转化为SQL语句的通用查询系统及方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 
请参阅图1,其为本发明的将对象转化为SQL语句的通用查询方法的流程图。如图所示,所述方法包括以下步骤: 
S1、在面向对象语言中生成基本对象;
S2、设置查询条件,令所述查询条件与每一基本对象的属性相对应;
S3、根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
下面分别针对上述步骤进行详细描述: 
所述步骤S1为在面向对象语言中生成基本对象。具体来说,即生成基本对象(例如javaBean),面向对象语言中均会先生成基本对象。
所述步骤S2为设置查询条件,令所述查询条件与每一基本对象的属性相对应。例如,如图2所示,当存在查询条件1、查询条件2和查询条件3时,对象Bean中包括与查询条件1、查询条件2和查询条件3分别对应的属性1、属性2和属性3。例如对象属性名是 newsId,属性类别是整数,说明要在数据库表中查一个整数类型的字段,则会形成查询条件 “news_id= 属性的值”;如果属性名是newsTitle,属性类别是字符串,说明是要查询文本,则会形成查询条件“ news_title   like   ‘%属性的值%’”,依此类推。 
所述步骤S3为根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。在本实施例中,组装对应的SQL语句是根据属性是否有值来决定是会要组装该字段,根据属性类别判断是要用相应条件进行连接,再加上取得属性的值则组装成完整的SQL语句。 
下面通过一个具体的例子来说明将对象转化为SQL语句的通用查询方法是如何实现的。 
实施例
在本实施例中需要进行新闻搜索 
首先,生成基本的新闻对象,其代码如下所示:
Figure DEST_PATH_315334DEST_PATH_IMAGE001
然后,生成查询条件,令查询条件与对象中的属性一一对应,如图4所示;
最后,如图5所示,对查询对象进行全面解析,组装出对应的SQL语句
select * from v_news where 1=1  and news_title like '%新%' and scci=1 and news_pubtime>='2013-04-01'
本发明还提供了一种将对象转化为SQL语句的通用查询系统,如图3所示,其包括:
对象生成单元100,用于在面向对象语言中生成基本对象;
对应单元200,用于设置查询条件,令所述查询条件与每一基本对象的属性相对应;
组装单元300,用于根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
进一步地,所述的将对象转化为SQL语句的通用查询系统中,所述对象生成单元中,所述基本对象为javaBean。 
进一步地,所述的将对象转化为SQL语句的通用查询系统中,所述对应单元中,所述基本对象的属性newsId,属性类别是整数;则会形成查询条件 如下: 
news_id= 属性的值。
上述各个部分的功能都已经在上述方法中进行了详细介绍,这里就不再冗述了。 
综上所述,本发明的将对象转化为SQL语句的通用查询系统及方法,其中,所述方法包括:首先,在面向对象语言中生成基本对象;然后,设置查询条件,令所述查询条件与每一基本对象的属性相对应;根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。相比于现有技术,具有以下特点:a.统一处理、所有查询条件均会经过本系统进行检测,不会遗漏某些属性。查询条件的变化,不影响装置本身。b.低依赖性。不依赖特定的软件框架,引入方便。C.使用方便。一行代码即可调用,无须管理配置文件。 
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。 

Claims (8)

1.一种将对象转化为SQL语句的通用查询方法,其特征在于,所述方法包括以下步骤:
A、在面向对象语言中生成基本对象;
B、设置查询条件,令所述查询条件与每一基本对象的属性相对应;
C、根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
2.根据权利要求1所述的将对象转化为SQL语句的通用查询方法,其特征在于,所述步骤A中,所述基本对象为javaBean。
3.根据权利要求1所述的将对象转化为SQL语句的通用查询方法,其特征在于,所述步骤B中,所述基本对象的属性newsId,属性类别是整数;则会形成查询条件 如下:
news_id= 属性的值。
4.根据权利要求1所述的将对象转化为SQL语句的通用查询方法,其特征在于,所述步骤B中,所述基本对象的属性newsTitle,属性类别是字符串;则会形成查询条件 如下:
news_title   like   ‘%属性的值%’。
5.根据权利要求1所述的将对象转化为SQL语句的通用查询方法,其特征在于,所述步骤C中组装对应的SQL语句是根据属性是否有值来决定是会要组装该字段,根据属性类别判断是要用相应条件进行连接,再加上取得属性的值则组装成完整的SQL语句。
6.一种将对象转化为SQL语句的通用查询系统,其特征在于,包括:
对象生成单元,用于在面向对象语言中生成基本对象;
对应单元,用于设置查询条件,令所述查询条件与每一基本对象的属性相对应;
组装单元,用于根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。
7.根据权利要求6所述的将对象转化为SQL语句的通用查询系统,其特征在于,所述对象生成单元中,所述基本对象为javaBean。
8.根据权利要求6所述的将对象转化为SQL语句的通用查询系统,其特征在于,所述对应单元中,所述基本对象的属性newsId,属性类别是整数;则会形成查询条件 如下:
news_id= 属性的值。
CN201310396649.5A 2013-09-04 2013-09-04 一种将对象转化为sql语句的通用查询系统及方法 Pending CN103544211A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310396649.5A CN103544211A (zh) 2013-09-04 2013-09-04 一种将对象转化为sql语句的通用查询系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310396649.5A CN103544211A (zh) 2013-09-04 2013-09-04 一种将对象转化为sql语句的通用查询系统及方法

Publications (1)

Publication Number Publication Date
CN103544211A true CN103544211A (zh) 2014-01-29

Family

ID=49967664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310396649.5A Pending CN103544211A (zh) 2013-09-04 2013-09-04 一种将对象转化为sql语句的通用查询系统及方法

Country Status (1)

Country Link
CN (1) CN103544211A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138326A (zh) * 2015-08-11 2015-12-09 北京思特奇信息技术股份有限公司 一种基于ibatis实现sql动态配置的方法及系统
CN106610973A (zh) * 2015-10-21 2017-05-03 北京国双科技有限公司 电视数据查询方法及装置
CN106874364A (zh) * 2016-12-30 2017-06-20 厦门南讯软件科技有限公司 基于xml配置的动态化sql查询方法
CN107229672A (zh) * 2017-04-20 2017-10-03 中国科学院计算机网络信息中心 一种针对SolrCloud的大数据SQL查询方法及系统
CN107423342A (zh) * 2017-05-10 2017-12-01 北京数码大方科技股份有限公司 页面数据查询方法和装置
CN109033456A (zh) * 2018-08-28 2018-12-18 百度在线网络技术(北京)有限公司 一种条件查询方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
彭兵: "用javabean实现对SQL Server数据库中图像文件的存取", 《电脑知识与技术》 *
罗在文: "JSP技术访问SQLServer数据库的设计与实现", 《长春理工大学学报》 *
赵晓峰: "基于JSP与javabean的web应用开发", 《深圳信息职业技术学院学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138326A (zh) * 2015-08-11 2015-12-09 北京思特奇信息技术股份有限公司 一种基于ibatis实现sql动态配置的方法及系统
CN105138326B (zh) * 2015-08-11 2019-03-22 北京思特奇信息技术股份有限公司 一种基于ibatis实现sql动态配置的方法及系统
CN106610973A (zh) * 2015-10-21 2017-05-03 北京国双科技有限公司 电视数据查询方法及装置
CN106874364A (zh) * 2016-12-30 2017-06-20 厦门南讯软件科技有限公司 基于xml配置的动态化sql查询方法
CN107229672A (zh) * 2017-04-20 2017-10-03 中国科学院计算机网络信息中心 一种针对SolrCloud的大数据SQL查询方法及系统
CN107423342A (zh) * 2017-05-10 2017-12-01 北京数码大方科技股份有限公司 页面数据查询方法和装置
CN109033456A (zh) * 2018-08-28 2018-12-18 百度在线网络技术(北京)有限公司 一种条件查询方法、装置、电子设备和存储介质
CN109033456B (zh) * 2018-08-28 2021-02-05 百度在线网络技术(北京)有限公司 一种条件查询方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN103544211A (zh) 一种将对象转化为sql语句的通用查询系统及方法
CN110908997B (zh) 数据血缘构建方法、装置、服务器及可读存储介质
CN109062952B (zh) 一种数据查询方法、装置及电子设备
US7194485B2 (en) Mapping XML schema components to qualified java components
US20140258840A1 (en) Xml based custom code generating method and generator, computer program product and computer readable medium
CN105138326B (zh) 一种基于ibatis实现sql动态配置的方法及系统
CN107506383B (zh) 一种审计数据处理方法和计算机设备
CN111443901B (zh) 一种基于Java反射的业务扩展方法及装置
CN103559025A (zh) 一种采用聚类方式进行软件重构的方法
US7970757B2 (en) Computer program product for database query optimization
CN110750553A (zh) 一种在业务管理系统中对数据进行自定义导出的方法
CN103678396B (zh) 一种基于数据模型的数据备份方法和装置
CN102915344A (zh) 一种sql语句处理方法及装置
CN108595162B (zh) 一种代码生成方法及装置
CN102402515A (zh) 通用自定义查询系统及方法
US20080126317A1 (en) Method and system for converting source data files into database query language
CN105224686A (zh) 一种mes采集终端动态可配置显示系统及其实现方法
CN114238345A (zh) 一种数据库的处理、数据查询方法及设备
CN111177234A (zh) 一种文档型数据文件快速处理装置及方法
CN116431672A (zh) 数据库操作语句的谓词逻辑优化方法、存储介质与设备
Ho et al. An approach of transforming ontologies into relational databases
CN107463618B (zh) 一种索引创建方法和装置
CN103020162B (zh) Cc2000模型转换导入d5000系统的方法
CN104731597A (zh) 将sql语句应用于工程软件编辑平台的方法
CN109684329B (zh) 一种基于数据中心设备的资源管理方法

Legal Events

Date Code Title Description
C06 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: 20140129

RJ01 Rejection of invention patent application after publication