CN101963985A - 数据持久化框架与数据库代理之间的通信方法及系统 - Google Patents

数据持久化框架与数据库代理之间的通信方法及系统 Download PDF

Info

Publication number
CN101963985A
CN101963985A CN2010102957885A CN201010295788A CN101963985A CN 101963985 A CN101963985 A CN 101963985A CN 2010102957885 A CN2010102957885 A CN 2010102957885A CN 201010295788 A CN201010295788 A CN 201010295788A CN 101963985 A CN101963985 A CN 101963985A
Authority
CN
China
Prior art keywords
data persistence
database
persistence framework
sql statement
result set
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.)
Granted
Application number
CN2010102957885A
Other languages
English (en)
Other versions
CN101963985B (zh
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.)
Beijing Shenzhou Taiyue Software Co Ltd
Original Assignee
Beijing Shenzhou Taiyue Software 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 Beijing Shenzhou Taiyue Software Co Ltd filed Critical Beijing Shenzhou Taiyue Software Co Ltd
Priority to CN 201010295788 priority Critical patent/CN101963985B/zh
Publication of CN101963985A publication Critical patent/CN101963985A/zh
Application granted granted Critical
Publication of CN101963985B publication Critical patent/CN101963985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据持久化框架与数据库代理之间的通信方法,包括:接收数据持久化框架传递过来的SQL语句;将所述SQL语句传递给数据库代理;将所述数据库代理连接数据库执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;将所述结果集返回给数据持久化框架,还公开了一种数据持久化框架与数据库代理之间的通信系统,包括:SQL语句接收模块、SQL语句传递模块、结果转化模块及结果集返回模块。本发明在不改变或少量改变原系统代码的情况下实现了数据持久化框架与数据库代理或其它以SQL为标准的存储系统之间的通信。

Description

数据持久化框架与数据库代理之间的通信方法及系统
技术领域
本发明涉及数据库技术领域,特别涉及一种数据持久化框架与数据库代理之间的通信方法及系统。
背景技术
为了方便开发与维护,JAVA领域出现了很多数据持久化的框架,比如:Hibernate。这些框架的一个重要功能就是屏蔽底层数据库,让程序员直接操作对象。并且可以切换数据库,而不用改变原系统中的代码。但是数据持久化框架都是直接连接数据库的,如果对数据库有新的需求,持久化框架不能直接连接数据库了,而是通过数据库代理来操作,这个时候数据持久化框架就无能为力了。
现在的解决方案:把数据持久化框架这一层去掉,重新开发数据持久层(即另外开发一个数据持久化框架)连接数据库代理。
缺陷:这种解决方案需要改动大量的代码,原来能用的查询语句都不能用了。改造周期会很长,甚至会给系统带来灾难性的影响。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是;如何在不改变或少量改变原系统代码的情况下实现数据持久化框架与数据库代理或其它以SQL为标准的存储系统之间的通信。
(二)技术方案
为解决上述问题,本发明提供了一种数据持久化框架与数据库代理之间的通信方法,其特征在于,包括以下步骤:
S1:接收数据持久化框架传递过来的SQL语句;
S2:将所述SQL语句传递给数据库代理;
S3:将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
S4:将所述结果集返回给所述数据持久化框架。
其中,所述步骤S1中使用兼容所述数据持久化框架的JAVA标准接口来接收所述SQL语句。
其中,所述步骤S1之前还包括:
数据持久化框架将业务层操作的实体对象转化为SQL语句。
其中,所述步骤S4之后还包括:
所述数据持久化框架将所述结果集转化为可被业务层操作的实体对象。
本发明还提供了一种数据持久化框架与数据库代理之间的通信系统,包括:
SQL语句接收模块,用于接收数据持久化框架传递过来的SQL语句;
SQL语句传递模块,用于将所述SQL语句传递给数据库代理;
结果转化模块,用于将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
结果集返回模块,用于将所述结果集返回给所述数据持久化框架。
(三)有益效果
本发明通过在数据持久化框架与数据库代理之间加入实现本发明方法的驱动程序模块,使该驱动程序模块连接数据持久化框架和数据库代理,而不是数据库,实现了在不改变或少量改变原系统代码的情况下,数据持久化框架与数据库代理之间的通信,减少了系统修改时间和风险。
附图说明
图1是本发明实施例的一种数据持久化框架与数据库代理之间的通信方法流程图;
图2是本发明实施例的一种数据持久化框架与数据库代理之间的通信方法在业务数据库系统中的应用示意图;
图3是本发明实施例的一种数据持久化框架与数据库代理之间的通信系统结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
为了解决上述技术问题,本实施例中重新实现了数据库的驱动程序模块,驱动程序模块不再是连接并操作数据库,而是连接数据库代理,负责数据持久化框架和数据库代理之间的通信。这样持久化框架生成的操作语句通过连接传给数据库代理,执行结果再通过连接传给数据持久化框架。该驱动程序具体执行流程如图1所示,包括:
步骤S101,接收数据持久化框架传递过来的SQL语句。在驱动程序中实现JAVA标准接口类,这样就能兼容原有数据库持久化框架,实现不改变原系统代码的目的。必须实现的接口类有:AbstractConnection、DataSource、AbstractResultSet、AbstractPreparedStatement等。
步骤S102,将所述SQL语句传递给数据库代理。具体传递方式方式为:建立与数据库代理之间的SOCKET连接,通过该连接发送SQL语句,并接收返回结果。
步骤S103,将所述数据库代理连接数据库执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集。例如:如果数据库代理返回的执行结果是XML格式的文件,则通过解析这个XML文件把结果数据提取出来放到SQL结果集中,该结果集为JAVA的标准对象,能被数据库持久框架识别。
步骤S104,将所述结果集返回给数据持久化框架,利用上述JAVA标准接口返回,即放到步骤S101实现的AbstractResultSet接口类中返回。
由于重新实现了数据库的驱动程序模块,本发明的方法在业务数据库系统中的应用流程,如图2所示:
在上述步骤S101之前还包括数据持久化框架将业务层操作的实体对象转化为SQL语句,这里的操作包据:查询、修改、删除和添加等操作。有了数据化持久框架之后,系统的业务层就不用直接和数据库连接了,而是直接操作实体对象。数据化持久框架将对象的操作转化为相应的数据库可以识别的SQL语句,这样更有利于开发和维护。在上述步骤S104之后还包括数据持久化框架将所述结果集转化为可被业务层操作的实体对象,并将该对象返回给业务层。
本发明还提供了一种数据持久化框架与数据库代理之间的通信系统,在本实施例中即为数据库的驱动程序模块,如图3所示,包括:SQL语句接收模块,用于接收数据持久化框架传递过来的SQL语句;SQL语句传递模块,用于将所述SQL语句传递给数据库代理;结果转化模块,用于将所述数据库代理连接数据库执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;结果集返回模块,用于将所述结果集返回给数据持久化框架。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (5)

1.一种数据持久化框架与数据库代理之间的通信方法,其特征在于,包括以下步骤:
S1:接收数据持久化框架传递过来的SQL语句;
S2:将所述SQL语句传递给数据库代理;
S3:将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
S4:将所述结果集返回给所述数据持久化框架。
2.如权利要求1所述的数据持久化框架与数据库代理之间的通信方法,其特征在于,所述步骤S1中使用兼容所述数据持久化框架的JAVA标准接口来接收所述SQL语句。
3.如权利要求1或2所述的数据持久化框架与数据库代理之间的通信方法,其特征在于,所述步骤S1之前还包括:
数据持久化框架将业务层操作的实体对象转化为SQL语句。
4.如权利要求1或2所述的数据持久化框架与数据库代理之间的通信方法,其特征在于,所述步骤S4之后还包括:
所述数据持久化框架将所述结果集转化为可被业务层操作的实体对象。
5.一种数据持久化框架与数据库代理之间的通信系统,其特征在于,包括:
SQL语句接收模块,用于接收数据持久化框架传递过来的SQL语句;
SQL语句传递模块,用于将所述SQL语句传递给数据库代理;
结果转化模块,用于将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
结果集返回模块,用于将所述结果集返回给所述数据持久化框架。
CN 201010295788 2010-09-28 2010-09-28 数据持久化框架与数据库代理之间的通信方法及系统 Active CN101963985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010295788 CN101963985B (zh) 2010-09-28 2010-09-28 数据持久化框架与数据库代理之间的通信方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010295788 CN101963985B (zh) 2010-09-28 2010-09-28 数据持久化框架与数据库代理之间的通信方法及系统

Publications (2)

Publication Number Publication Date
CN101963985A true CN101963985A (zh) 2011-02-02
CN101963985B CN101963985B (zh) 2013-03-13

Family

ID=43516858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010295788 Active CN101963985B (zh) 2010-09-28 2010-09-28 数据持久化框架与数据库代理之间的通信方法及系统

Country Status (1)

Country Link
CN (1) CN101963985B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598963A (zh) * 2015-10-14 2017-04-26 五八同城信息技术有限公司 查询语句优化方法及装置
CN116302365A (zh) * 2023-05-17 2023-06-23 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056428A1 (en) * 1999-07-08 2001-12-27 Gajda Kimberly Lynn Method and system for improved access to non-relational databases
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101354696A (zh) * 2008-09-08 2009-01-28 北京航空航天大学 基于电信领域共享信息模型的数据整合与应用服务系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056428A1 (en) * 1999-07-08 2001-12-27 Gajda Kimberly Lynn Method and system for improved access to non-relational databases
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101354696A (zh) * 2008-09-08 2009-01-28 北京航空航天大学 基于电信领域共享信息模型的数据整合与应用服务系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598963A (zh) * 2015-10-14 2017-04-26 五八同城信息技术有限公司 查询语句优化方法及装置
CN106598963B (zh) * 2015-10-14 2021-08-10 五八同城信息技术有限公司 查询语句优化方法及装置
CN116302365A (zh) * 2023-05-17 2023-06-23 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质
CN116302365B (zh) * 2023-05-17 2023-08-15 建信金融科技有限责任公司 数据持久层的测试方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN101963985B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
CN104236579B (zh) 一种基于Android内核层实现高精度卫星导航定位方法
CN102360292A (zh) 一种基于插件化接入设备的管理系统
CN102752237B (zh) 一种通用网关设备以及物联网系统
CN104144466A (zh) 物联网中传感器接入方法、物联网系统和服务器
CN103699633A (zh) 一种利用xml实现通用化数据交换的方法和系统
CN101877002A (zh) 基于统一接口的内存数据库分布式访问方法及系统
CN101963985B (zh) 数据持久化框架与数据库代理之间的通信方法及系统
CN1838666B (zh) 一种跨操作系统平台的字节序转换方法
CN101634946A (zh) 一种rfid构件的生成方法
CN102111160B (zh) 用于反应式系统测试的编解码系统及其编解码器
CN101615116A (zh) 一种接口获取方法、装置及系统
CN101499931A (zh) 基于分布式环境的功能扩展方法和系统
CN102664952A (zh) 一种对嵌入式设备集群管理及监控的方法
CN101540808B (zh) 在线抄表系统及方法
CN105468736A (zh) 一种基于插件和组件的数据预处理系统及其实现方法
CN104331288A (zh) 一种配置化展现动态页面的方法及系统
CN103929457A (zh) 基于移动互联网的物联网应用数据交互系统和方法
CN104503716A (zh) 一种码图印刷方法及系统
CN103150952A (zh) 可重构的eda实验平台
CN101894031A (zh) 普适服务的动态更新方法及其更新系统
CN103118012A (zh) 通用仪器vxi-11协议适配系统、通用仪器及适配控制方法
CN102591688B (zh) 一种心电图机插件接入方法及系统
CN202939447U (zh) 一种数据采集控制器
CN101673218B (zh) 一种获取Linux内核信息的方法和系统
CN102255970B (zh) 一种互动业务远程访问系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer

Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.