【技术实现步骤摘要】
本专利技术涉及数据库技术,特别涉及一种对数据库进行访问的方法和装置。
技术介绍
对数据库的访问通常采用执行结构化查询语言(SQL,Structured QueryLanguage)语句的方式,在此过程中系统将查询参数拼装在SQL语句中,然后执行该 SQL语句。通常系统往往要支持多种数据库,例如SQL Server与Oracle数据库等,在实现相同功能时,不同类型的数据库常常会用到不同的SQL语句。由于现有技术中,SQL语句是编写在代码中的,因此在实现对不同类型数据库某一相同功能的访问时,需要在调用方对数据库类型进行区分,也就是说,针对同一功能需要在方法上对不同数据库类型进行区分,调用方根据不同的数据库类型调用不同的SQL语句。例如,要对SQL krver与Oracle数据库两种数据库进行查询前N个数据的访问, 那么在进行SQL语句编写时,需要在代码中对这两种数据库进行方法上的区分。假设SQL Server 对应的方法为 Queryl,相应的 SQL i吾句为 select top N employee_id from tbl_ employee order by salary desc ;0racle数据库对应的方法为Query2,才画应的SQLi吾句为 select employee_id fromtbl_employee where rownum< = N order by salary desc。在对SQL Server进行查询前N个数据的访问时,在调用方需要调用方法Queryl,在对Oracle 数据库进行查询前N个数据的访问时,在调用方 ...
【技术保护点】
1.一种对数据库进行访问的方法,其特征在于,应用于包含多种类型数据库模板的数据库访问装置,每种类型的数据库模板中包含该类型数据库的结构化查询语言SQL语句以及SQL语句对应的功能标识,所述数据库模板中具有相同功能的SQL语句对应相同的功能标识;该方法包括:A、数据库访问装置启动后,加载所有模板;B、接收到调用指令后,确定当前连接的数据库类型对应的所有SQL语句构成的结果集;C、在所述结果集中查询所述调用指令包含的功能标识对应的SQL语句,执行该SQL语句以实现对数据库的访问。
【技术特征摘要】
1.一种对数据库进行访问的方法,其特征在于,应用于包含多种类型数据库模板的数据库访问装置,每种类型的数据库模板中包含该类型数据库的结构化查询语言SQL语句以及SQL语句对应的功能标识,所述数据库模板中具有相同功能的SQL语句对应相同的功能标识;该方法包括A、数据库访问装置启动后,加载所有模板;B、接收到调用指令后,确定当前连接的数据库类型对应的所有SQL语句构成的结果集;C、在所述结果集中查询所述调用指令包含的功能标识对应的SQL语句,执行该SQL语句以实现对数据库的访问。2.根据权利要求1所述的方法,其特征在于,在步骤A中所述加载所有模板之后还包括将各模板中的SQL语句进行解析,分别得到各数据库类型对应的结果集,所述结果集中包含对应数据库的所有SQL语句以及SQL语句对应的功能标识。3.根据权利要求2所述的方法,其特征在于,所述数据库装置还包含通用语句模板,用于存储多种类型数据库相同的SQL语句以及SQL语句对应的功能标识;在所述将各模板中的SQL语句进行解析之后还包括对通用语句模板中的各SQL语句进行遍历,将遍历到的SQL语句及其功能标识分别添加到各数据库类型对应的结果集中。4.根据权利要求3所述的方法,其特征在于,所述通用语句模板中的SQL语句引用所述数据库模板中的功能标识,被引用的功能标识对应的SQL语句与引用该功能标识的SQL语句具有相同功能;在所述将遍历到的SQL语句及其功能标识分别添加到各数据库类型对应的结果集中之前还包括判断当前遍历到的SQL语句是否引用了其它功能标识,如果否,继续执行所述将遍历到的SQL语句及其功能标识分别添加到各数据库类型对应的结果集中;如果是,在各数据库类型对应的结果集中查找被引用的功能标识,在查找到被引用的功能标识的结果集中,将所述当前遍历到的SQL语句对应的功能标识替换查找到的结果集中被引用的功能标识,并将所述当前遍历到的SQL语句及其对应的功能标识添加到没有查找到被引用的功能标识的结果集中。5.根据权利要求3或4所述的方法,其特征在于,当在数据库访问装置中新增一种类型的数据库模板时,如果该新增的数据库模板中存在与通用语句模板中具有相同功能的不同 SQL语句时,该具有相同功能的不同SQL语句采用相同的功能标识;在将遍历到的SQL语句及其功能标识添加到结果集中之前,还包括判断要添加到的结果集中是否已经存在要添加的功能标识,如果是,则不将遍历到的SQL语句及其功能标识添加到结果集中,否则,将遍历到的SQL语句及其功能标识添加到结果集中。6.根据权利要求3所述的方法,其特征在于,数据库模板中的SQL语句引用所述通用语句模板中的功能标识;在对数据库模板中的SQL语句进行解析时,如果解析到的SQL语句引用了通用语句模板中的功能标识,则利用被引用的功能标识在通用语句模板中对应的SQL语句替换所述解析到的SQL语句中引用功能标识的部分。7.根据权利要求1、2、3、4或6所述的方法,其特征在于,步骤C中所述执行该SQL语句具体包括利用所述调用指令中的访问参数对查询到的SQL语句进行赋值,执行赋值后的SQL语句。8.—种对数据库进行访问的装置,其特征在于,该装置包括SQL模板单元、模板控制单元和SQL执行单元;所述SQL模板单元,用于存储多种类型的数据库模板,每种类型的数据库模板中包含该类型数据库的SQL语句以及SQL语句对应的功能标识,所述数据库模板中具有相同功能的SQL语句对应相同的功能标识;所述模板控制单元,用于在所述装置启动后,加载所有模板;所述SQL执行单元,用于接收到调用指令后,确定当前连接的数据库类型对应的所有 SQL语句构成的结果集,在所述结果集中查询所述调用指令包含的功能标识对应的SQL语句,执行该SQL语...
【专利技术属性】
技术研发人员:余天舒,杨静涛,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:86
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。