CN103544211A - 一种将对象转化为sql语句的通用查询系统及方法 - Google Patents
一种将对象转化为sql语句的通用查询系统及方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
Abstract
本发明公开了一种将对象转化为SQL语句的通用查询系统及方法,其中,所述方法包括:首先,在面向对象语言中生成基本对象;然后,设置查询条件,令所述查询条件与每一基本对象的属性相对应;根据用户指令进行查询时,对查询对象进行全面解析,确定查询对象的属性,再组装出对应的SQL语句。相比于现有技术,具有以下特点:a.统一处理、所有查询条件均会经过本系统进行检测,不会遗漏某些属性。查询条件的变化,不影响装置本身。b.低依赖性。不依赖特定的软件框架,引入方便。c.使用方便。一行代码即可调用,无须管理配置文件。
Description
技术领域
本发明涉及面向对象查询技术领域,尤其涉及一种将对象转化为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语句的通用查询方法是如何实现的。
实施例
在本实施例中需要进行新闻搜索
首先,生成基本的新闻对象,其代码如下所示:
然后,生成查询条件,令查询条件与对象中的属性一一对应,如图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= 属性的值。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185930A (zh) * | 2011-06-09 | 2011-09-14 | 北京理工大学 | 一种sql注入漏洞检测方法 |
-
2013
- 2013-09-04 CN CN201310396649.5A patent/CN103544211A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185930A (zh) * | 2011-06-09 | 2011-09-14 | 北京理工大学 | 一种sql注入漏洞检测方法 |
Non-Patent Citations (3)
Title |
---|
彭兵: "用javabean实现对SQL Server数据库中图像文件的存取", 《电脑知识与技术》 * |
罗在文: "JSP技术访问SQLServer数据库的设计与实现", 《长春理工大学学报》 * |
赵晓峰: "基于JSP与javabean的web应用开发", 《深圳信息职业技术学院学报》 * |
Cited By (8)
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 |