对象化SQL语句构造方法及装置制造方法及图纸

技术编号:15639307 阅读:85 留言:0更新日期:2017-06-15 22:42
本发明专利技术公开了一种对象化SQL语句构造方法及装置,解决了现有的SQL语句拼写错误率高的问题。本发明专利技术的主要技术方案为:响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。本发明专利技术主要用于构造标准的SQL语句。

【技术实现步骤摘要】
对象化SQL语句构造方法及装置
本专利技术涉及信息
,尤其涉及一种对象化SQL语句构造方法及装置。
技术介绍
随着信息技术的迅猛发展,大部分应用都或多或少的基于数据库进行数据的存储和管理。那么这个过程必然涉及SQL(StructuredQueryLanguage,结构化查询语言)操作,然而不管采用什么样的数据访问框架,如Hibernate(开放源代码的对象关系映射框架)、iBatis(基于SQL映射支持Java和.NET的持久层框架)等,只要涉及复杂的SQL处理以及和性能相关的优化,必然需要进行定制化SQL语句的构造。目前,SQL语句的构造过程都是以字符串的形式呈现,且各种语言的编译器都无法捕获上述SQL语句的拼写错误,而SQL语句的拼写错误一直是SQL构造过程中无法避免的问题,在SQL语句发生错误后只有程序运行时才可以发现,如果业务比较复杂那么定位过程是非常耗时的,因此现有查找SQL错误语句的效率低。
技术实现思路
鉴于上述问题,提出了本专利技术,以便提供一种克服上述问题或者至少部分地解决上述问题的构造对象化SQL语句方法及装置。为达到上述目的,本专利技术主要提供如下技术方案:一方面,本专利技术实施例提供了一种对象化SQL语句构造方法,该方法包括:响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。另一方面,本专利技术实施例还提供一种对象化SQL语句构造装置,该装置包括:响应单元,用于响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取单元,用于调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;确定单元,用于当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。借由上述技术方案,本专利技术实施例提供的技术方案至少具有下列优点:本专利技术实施例提供一种对象化SQL语句构造方法及装置,响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。与目前构造的SQL语句都是以字符串的形式表示的相比,本专利技术实施例通过基于对象化SQL框架快速的构造对象化SQL语句,通过本专利技术构造的SQL语句可以在语言层面规避常见的拼写错误,并且通过本专利技术构造的对象化SQL语句的可维护性好,基于对象化SQL框架构造的SQL语句相比大片的字符串SQL更有利于维护。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例提供的一种对象化SQL语句构造方法流程图;图2为本专利技术实施例提供的另一种对象化SQL语句构造方法流程图;图3为本专利技术实施例提供的一种对象化SQL语句构造装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为使本专利技术技术方案的优点更加清楚,下面结合附图和实施例对本专利技术作详细说明。本专利技术实施例提供了一种对象化SQL语句构造方法,如图1所示,所述方法包括:S101、响应构造对象化SQL命令,确定第一层级的对象类模板。其中,所述第一层级的对象类模板中包含多个第一预置SQL对象类,所述第一预置SQL对象类是根据SQL语言的规则预先配置的,第一预置SQL对象类具体可以根据SQL语言中的首个操作命令编写的,所述SQL语言中首个操作命令具体可以为SELECT、DELETE、UPDATE、CREATE、INSERT、DROP等,本专利技术实施例不做具体限定。在本专利技术实施例中,所述构造对象化SQL命令具体可以通过程序编辑界面中输入构造对象化SQL命令,就可以实现输出第一层级的对象类模板,其中第一层级的对象模板中包含有多个第一预置SQL类,如SELECT类、DELETE类和UPDATE类等,本专利技术实施例不做具体限定。需要说明的是,对象化SQL语句中的SQL对象类是预先编辑好的,在本专利技术实施例中可以通过SQL语法进行分类,将SQL语句分成以下几种形式:SQL子句(Select、Where、Joint、GroupBy等等)、运算符、表达式、函数、SQL语句、谓词、表运算和集合运算等,本专利技术实施例不做具体限定,然后创建这些对象的类,从而使得用户输入对象后SQL语句时,可以直接调用这些类,然后在这些类中填写相应的参数,即可完成对象化SQL语句的构造。S102、调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类。在本专利技术实施例中,当接收到客户端选择的第一预置SQL对象类时,调取并确定第一预置SQL对象类,然后显示所述客户端选择的第一预置SQL对象类。需要说明的是,可以接收客户端选择的一个或多个SQL对象类,如SELECT类、DELETE类和UPDATE类等,本专利技术实施例不做具体限定。例如,接收到客户端选择的第一预置SQL对象类为SELECT类,则显示出SELECT类具体如下所示:SqlSessionsesstion=newSqlSession(config);ISqlExpressionsqlExpression=sesstion.Select(Metadata_Column_PERSON_AGE)需要说明的是,本例中的SELECT类中的PERSON_AGE是用户端输入的具体表名和字段名。S103、当接收到第一预置SQL对象类对应的参数时,确定第二层级的对象类模板。其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。具体地,对于上述中第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系,可以是基于SQL语言本身逻辑顺序来确定的,例如,SQL语言执行格式、数据对象优先级设置等。对于本专利技术实施例,所述参数主要是描述数据属性的信息本文档来自技高网...
对象化SQL语句构造方法及装置

【技术保护点】
一种对象化SQL语句构造方法,其特征在于,包括:响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。

【技术特征摘要】
1.一种对象化SQL语句构造方法,其特征在于,包括:响应构造对象化SQL命令,确定第一层级的对象类模板;其中,所述第一层级的对象类模板中包含至少一个第一预置SQL对象类;调取所述至少一个第一预置SQL对象类,确定所述至少一个第一预置SQL对象类;当接收到所述第一预置SQL对象类对应的参数时,确定第二层级的对象类模板,其中,所述第二层级的对象类模板中至少包含一个第二预置SQL对象类,第一预置SQL对象类与所述第二预置SQL对象类的逻辑关系是根据SQL语言属性规则确定的。2.根据权利要求1所述的方法,其特征在于,所述确定第一层级的对象类模板之前,所述方法还包括:配置所述SQL中各个词语分别对应的SQL对象类。3.根据权利要求2所述的方法,其特征在于,所述配置SQL中各个词语分别对应的SQL对象类之前,所述方法还包括:按照所述SQL中的语法规则顺序,对所述SQL中的词语进行划分层级,其中,每一层级中至少包括一个词语,从高到低的层级之间的SQL词语顺序关系符合SQL语言本身的逻辑顺序;所述配置SQL中各个词语分别对应的SQL对象类包括:配置SQL中同一层级中的词语分别对应的SQL对象类;为同一层级的SQL对象类配置对应的对象类模板。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:判断是否能够将所述第一预置SQL对象类和所述第二预置SQL对象类转换成SQL语句;若不能,则输出SQL逻辑错误提示信息。5.根据权利要求4所述的方法,其特征在于,所述判断是否能够将所述第一预置SQL对象类和所述第二预置SQL对象类转换成SQL语句之后,所述方法还包括:若能,则执行所述SQL语句;记录执行错误的SQL语句。6.一种对象化SQL语句构造装置,其特征在于,包括...

【专利技术属性】
技术研发人员:商平锋
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1