CN101963985B - 数据持久化框架与数据库代理之间的通信方法及系统 - Google Patents
数据持久化框架与数据库代理之间的通信方法及系统 Download PDFInfo
- Publication number
- CN101963985B CN101963985B CN 201010295788 CN201010295788A CN101963985B CN 101963985 B CN101963985 B CN 101963985B CN 201010295788 CN201010295788 CN 201010295788 CN 201010295788 A CN201010295788 A CN 201010295788A CN 101963985 B CN101963985 B CN 101963985B
- Authority
- CN
- China
- Prior art keywords
- database
- sql statement
- data persistence
- persistence framework
- framework
- 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.)
- Active
Links
Images
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 (3)
1.一种数据持久化框架与数据库代理之间的通信方法,其特征在于,包括数据库的驱动模块,连接数据库代理,用于数据持久化框架和数据库代理之间的通信,所述方法包括以下步骤:
S1:所述驱动模块接收数据持久化框架传递过来的SQL语句;所述驱动模块中包括JAVA标准接口类,用于兼容数据库持久化框架;所述SQL语句是由数据库持久化框架将业务层操作的实体对象转化为数据库能够识别的SQL语句;
S2:所述驱动模块将所述SQL语句传递给数据库代理;
S3:所述驱动模块将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
S4:所述驱动模块将所述结果集返回给所述数据持久化框架;所述数据持久化框架将所述结果集转化为可被业务层操作的实体对象。
2.如权利要求1所述的数据持久化框架与数据库代理之间的通信方法,其特征在于,所述步骤S1中使用兼容所述数据持久化框架的JAVA标准接口来接收所述SQL语句。
3.一种数据持久化框架与数据库代理之间的通信系统,其特征在于,包括:
数据库的驱动模块,连接数据库代理,用于数据持久化框架和数据库代理之间的通信;
SQL语句接收模块,用于接收数据持久化框架传递过来的SQL语句;所述驱动模块中包括JAVA标准接口类,用于兼容数据库持久化框架;所述SQL语句是由数据库持久化框架将业务层操作的实体对象转化为数据库能够识别的SQL语句;
SQL语句传递模块,用于将所述SQL语句传递给数据库代理;
结果转化模块,用于将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;
结果集返回模块,用于将所述结果集返回给所述数据持久化框架;所述数据持久化框架将所述结果集转化为可被业务层操作的实体对象。
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 CN101963985A (zh) | 2011-02-02 |
CN101963985B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598963B (zh) * | 2015-10-14 | 2021-08-10 | 五八同城信息技术有限公司 | 查询语句优化方法及装置 |
CN116302365B (zh) * | 2023-05-17 | 2023-08-15 | 建信金融科技有限责任公司 | 数据持久层的测试方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196926A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据库访问平台及其访问方法 |
CN101354696A (zh) * | 2008-09-08 | 2009-01-28 | 北京航空航天大学 | 基于电信领域共享信息模型的数据整合与应用服务系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502088B1 (en) * | 1999-07-08 | 2002-12-31 | International Business Machines Corporation | Method and system for improved access to non-relational databases |
-
2010
- 2010-09-28 CN CN 201010295788 patent/CN101963985B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196926A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据库访问平台及其访问方法 |
CN101354696A (zh) * | 2008-09-08 | 2009-01-28 | 北京航空航天大学 | 基于电信领域共享信息模型的数据整合与应用服务系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101963985A (zh) | 2011-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104236579B (zh) | 一种基于Android内核层实现高精度卫星导航定位方法 | |
CN101789171B (zh) | 一种数据传送总线变换方法及系统 | |
CN102360292A (zh) | 一种基于插件化接入设备的管理系统 | |
CN102035896B (zh) | 一种适用于软件系统的基于ttcn-3的分布式测试框架 | |
CN101916200B (zh) | 终端升级的方法、终端升级回退的方法和升级管理中心 | |
CN102227122A (zh) | 平台无关规约模块系统 | |
CN103677788A (zh) | 基于j2ee分布式架构的重用框架生成方法、装置及应用系统 | |
CN103699633A (zh) | 一种利用xml实现通用化数据交换的方法和系统 | |
CN101963985B (zh) | 数据持久化框架与数据库代理之间的通信方法及系统 | |
CN104219003A (zh) | 通信装置、测试系统及其测试方法 | |
CN103812953A (zh) | 一种微控制单元与 arm 处理器的通信接口系统 | |
CN101930362B (zh) | 一种ttcn语言与数据描述语言的集成方法 | |
CN101540808B (zh) | 在线抄表系统及方法 | |
CN202798801U (zh) | 一种用于实现分布式数据交互的通用性通讯系统 | |
CN101908985A (zh) | 一种报文校验的方法及装置 | |
CN102486838A (zh) | 一种多标准rfid标签数据集成与转换方法 | |
CN104503716A (zh) | 一种码图印刷方法及系统 | |
CN111522769B (zh) | 一种多线程spi通信数据传输方法 | |
CN101894031A (zh) | 普适服务的动态更新方法及其更新系统 | |
CN103929457A (zh) | 基于移动互联网的物联网应用数据交互系统和方法 | |
CN102413488A (zh) | 自动路测系统中的信息交互方法和设备 | |
CN203070089U (zh) | 一种新能源汽车车身模块程序维护系统 | |
CN101673218B (zh) | 一种获取Linux内核信息的方法和系统 | |
CN1971508A (zh) | 一种命名服务机制 | |
CN203217560U (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 |
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. |
|
CP02 | Change in the address of a patent holder |