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

文档序号:6332982阅读:121来源:国知局
专利名称:数据持久化框架与数据库代理之间的通信方法及系统的制作方法
专利说明本发明涉及数据库技术领域,特别涉及一种数据持久化框架与数据库代理之间的 通信方法及系统。
背景技术
为了方便开发与维护,JAVA领域出现了很多数据持久化的框架,比如 Hibernate0这些框架的一个重要功能就是屏蔽底层数据库,让程序员直接操作对象。并且 可以切换数据库,而不用改变原系统中的代码。但是数据持久化框架都是直接连接数据库 的,如果对数据库有新的需求,持久化框架不能直接连接数据库了,而是通过数据库代理来 操作,这个时候数据持久化框架就无能为力了。现在的解决方案把数据持久化框架这一层去掉,重新开发数据持久层(即另外 开发一个数据持久化框架)连接数据库代理。缺陷这种解决方案需要改动大量的代码,原来能用的查询语句都不能用了。改造 周期会很长,甚至会给系统带来灾难性的影响。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是;如何在不改变或少量改变原系统代码的情况下实现 数据持久化框架与数据库代理或其它以SQL为标准的存储系统之间的通信。( 二 )技术方案为解决上述问题,本发明提供了一种数据持久化框架与数据库代理之间的通信方 法,其特征在于,包括以下步骤Sl 接收数据持久化框架传递过来的SQL语句;S2 将所述SQL语句传递给数据库代理;S3 将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据 库持久框架能识别的结果集;S4 将所述结果集返回给所述数据持久化框架。其中,所述步骤Sl中使用兼容所述数据持久化框架的JAVA标准接口来接收所述 SQL语句。其中,所述步骤Sl之前还包括数据持久化框架将业务层操作的实体对象转化为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标准接口返回, 即放到步骤SlOl实现的AbstractResultSet接口类中返回。由于重新实现了数据库的驱动程序模块,本发明的方法在业务数据库系统中的应 用流程,如图2所示在上述步骤SlOl之前还包括数据持久化框架将业务层操作的实体对象转化为SQL语句,这里的操作包据查询、修改、删除和添加等操作。有了数据化持久框架之后,系 统的业务层就不用直接和数据库连接了,而是直接操作实体对象。数据化持久框架将对象 的操作转化为相应的数据库可以识别的SQL语句,这样更有利于开发和维护。在上述步骤 S104之后还包括数据持久化框架将所述结果集转化为可被业务层操作的实体对象,并将该 对象返回给业务层。本发明还提供了一种数据持久化框架与数据库代理之间的通信系统,在本实施例 中即为数据库的驱动程序模块,如图3所示,包括SQL语句接收模块,用于接收数据持久化 框架传递过来的SQL语句;SQL语句传递模块,用于将所述SQL语句传递给数据库代理;结 果转化模块,用于将所述数据库代理连接数据库执行SQL语句得到的执行结果转化为数据 库持久框架能识别的结果集;结果集返回模块,用于将所述结果集返回给数据持久化框架。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种数据持久化框架与数据库代理之间的通信方法,其特征在于,包括以下步骤S1接收数据持久化框架传递过来的SQL语句;S2将所述SQL语句传递给数据库代理;S3将所述数据库代理在连接数据库时执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;S4将所述结果集返回给所述数据持久化框架。
2.如权利要求1所述的数据持久化框架与数据库代理之间的通信方法,其特征在于, 所述步骤Sl中使用兼容所述数据持久化框架的JAVA标准接口来接收所述SQL语句。
3.如权利要求1或2所述的数据持久化框架与数据库代理之间的通信方法,其特征在 于,所述步骤Sl之前还包括数据持久化框架将业务层操作的实体对象转化为SQL语句。
4.如权利要求1或2所述的数据持久化框架与数据库代理之间的通信方法,其特征在 于,所述步骤S4之后还包括所述数据持久化框架将所述结果集转化为可被业务层操作的实体对象。
5.一种数据持久化框架与数据库代理之间的通信系统,其特征在于,包括 SQL语句接收模块,用于接收数据持久化框架传递过来的SQL语句;SQL语句传递模块,用于将所述SQL语句传递给数据库代理;结果转化模块,用于将所述数据库代理在连接数据库时执行SQL语句得到的执行结果 转化为数据库持久框架能识别的结果集;结果集返回模块,用于将所述结果集返回给所述数据持久化框架。
全文摘要
本发明公开了一种数据持久化框架与数据库代理之间的通信方法,包括接收数据持久化框架传递过来的SQL语句;将所述SQL语句传递给数据库代理;将所述数据库代理连接数据库执行SQL语句得到的执行结果转化为数据库持久框架能识别的结果集;将所述结果集返回给数据持久化框架,还公开了一种数据持久化框架与数据库代理之间的通信系统,包括SQL语句接收模块、SQL语句传递模块、结果转化模块及结果集返回模块。本发明在不改变或少量改变原系统代码的情况下实现了数据持久化框架与数据库代理或其它以SQL为标准的存储系统之间的通信。
文档编号G06F17/30GK101963985SQ201010295788
公开日2011年2月2日 申请日期2010年9月28日 优先权日2010年9月28日
发明者赵路平 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1