二进制长对象流化数据处理装置和方法

文档序号:6372534阅读:394来源:国知局
专利名称:二进制长对象流化数据处理装置和方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种二进制长对象流化数据处理装置和一种二进制长对象流化数据处理方法。
背景技术
一些大型业务产品很多复杂业务模型、文件、图片等复杂信息都是存储在数据库BLOB (二进制长对象)字段中。而在一些项目的产品升级等操作过程中,因为项目数据的特殊性或产品BUG等原因会导致有些BLOB字段信息数据不对。而BLOB字段的特殊性导致这些数据不能用通过普通的数据库工具直接更改数据库数据来修正错误,项目现场的实施人员因为没有源代码,不熟悉开发环境等客观原因无法通过程序来解决。所以出现此类问 题,项目实施人员只能将客户数据库导出,然后通过ftp等传给开发部门,开发部门通过程序跟踪处理。如果客户禁止数据库导出,就只能请求产品开发人员去现场支持。数据库流化信息存储通常使用BLOB字段。BLOB是指二进制长对象。BLOB是一个大文件,典型的BLOB是一张图片或某中格式的数据文件。数据库处理Blob字段的主要策略是不用理会文件是什么,而只关心如何存储它。这样就直接导致BLOB字段一旦写入,就无法像其他字段一样可以被传统的数据库管理工具查看和修改。从而直接导致在下述场景中BLOB字段成为应用瓶颈I)程序开发过程中程序员需要查看BLOB存储的业务信息;2)程序开发过程中,因为程序逻辑的尚不完整,会造成BLOB数据的异常,这时就需要直接查看BLOB数据信息,确定数据何处异常,从而协助程序逻辑修正;3)因为程序错误或系统升级等原因,需要手工修正BLOB数据;4)在项目现场等场合,在没有程序源代码以及开发环境时,需要手工快速修正BLOB数据。5)需要将BLOB流化信息导出为第三方文件格式;6) BLOB流化数据不能像其他数据文件一样通过邮件等方式进行文件传递。而在软件开发或软件产品使用过程中,往往需要将BLOB信息进行备份/传阅等操作。因此,需要一种新的技术方案,能够保证多种不同的业务场景,仍然可以顺利获取BLOB流化数据,并保证能够为用户将所述BLOB数据以合适方式展现,并供用户对数据进行操作。

发明内容
本发明所要解决的技术问题在于,提供一种新的技术方案,能够保证多种不同的业务场景,仍然可以顺利获取BLOB流化数据,并保证能够为用户将所述BLOB数据以合适方式展现,并供用户对数据进行操作。有鉴于此,本发明提供一种二进制长对象流化数据处理装置,包括数据库管理模块,从数据库中获取二进制长对象流化数据;对象资源管理模块,获取所述二进制长对象流化数据对应的对象资源;对象转换模块,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象;展现模块,根据所述内存对象的类型,展现所述内存对象。在该技术方案中,由于获取了 BLOB流化数据对应的对象资源,所以利用该对象资源可以顺利地将BLOB解析为内存对象,按其类型进行展现,通过本方案在多种复杂的业务场景下都可以顺利解析并展现BLOB数据。在上述技术方案中,优选地,在所述内存对象被修改后,所述对象转换模块将所述内存对象转换为新的二进制长对象流化数据,并由所述数据库管理模块存储到所述数据库中。在该技术方案中,如果 用户根据为其展现的内容,对内存对象进行了修改,则本方案可以根据用户的修改更新数据库中BLOB流化数据,保证用户可以在多种业务场景下对BLOB流化数据进行修改操作。在上述技术方案中,优选地,所述对象资源管理模块还设置对象资源库,存储所述对象资源的文件路径,并按照所述文件路径获取所述对象资源。在该技术方案中,可以预置对象资源的路径,则可以保证随时可以获取对象资源,以将BLOB流化数据处理为内存对象,并进行展现。在上述技术方案中,优选地,所述展现模块在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在上述技术方案中,优选地,还包括文件保存模块,将所述内存对象存储为特定格式的文件。在该技术方案中,还可以为用户将内存对象导出为第三方文件,以满足用户备份或使用的需要。本发明还提供一种二进制长对象流化数据处理方法,包括步骤202,从数据库中获取二进制长对象流化数据;步骤204,获取所述二进制长对象流化数据对应的对象资源;步骤206,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象;步骤208,根据所述内存对象的类型,展现所述内存对象。在该技术方案中,由于获取了 BLOB流化数据对应的对象资源,所以利用该对象资源可以顺利地将BLOB解析为内存对象,按其类型进行展现,通过本方案在多种复杂的业务场景下都可以顺利解析并展现BLOB数据。在上述技术方案中,优选地,还包括在所述内存对象被修改后,将所述内存对象转换为新的二进制长对象流化数据并存储到所述数据库中。在该技术方案中,如果用户根据为其展现的内容,对内存对象进行了修改,则本方案可以根据用户的修改更新数据库中BLOB流化数据,保证用户可以在多种业务场景下对BLOB流化数据进行修改操作。在上述技术方案中,优选地,所述步骤204包括设置对象资源库,存储所述对象资源的文件路径;按照所述文件路径获取所述对象资源。在该技术方案中,可以预置对象资源的路径,则可以保证随时可以获取对象资源,以将BLOB流化数据处理为内存对象,并进行展现。在上述技术方案中,优选地,所述步骤208包括在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在上述技术方案中,优选地,还包括将所述内存对象存储为特定格式的文件。在该技术方案中,还可以为用户将内存对象导出为第三方文件,以满足用户备份或使用的需要。通过以上技术方案,可以实现一种二进制长对象流化数据处理装置和一种二进制长对象流化数据处理方法,能够保证多种不同的业务场景,仍然可以顺利获取BLOB流化数据,并保证能够为用户将所述BLOB数据以合适方式展现,并供用户对数据进行操作。


图I是根据本发明的一个实施例的二进制长对象流化数据处理装置的框图; 图2是根据本发明的一个实施例的二进制长对象流化数据处理方法的流程图;图3是将不同数据存储为二进制长对象流化数据的示意图;图4是根据本发明的一个实施例的二进制长对象流化数据处理装置展现二进制长对象流化数据的示意图;图5是根据本发明的一个实施例的二进制长对象流化数据处理装置的工作示意图;图6至图10是根据本发明的一个实施例的二进制长对象流化数据处理装置的界面截图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图I是根据本发明的一个实施例的二进制长对象流化数据处理装置的框图如图I所示,本发明提供一种二进制长对象流化数据处理装置100,包括数据库管理模块102,从数据库中获取二进制长对象流化数据;对象资源管理模块104,获取所述二进制长对象流化数据对应的对象资源;对象转换模块106,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象;展现模块108,根据所述内存对象的类型,展现所述内存对象。在该技术方案中,由于获取了 BLOB流化数据对应的对象资源,所以利用该对象资源可以顺利地将BLOB解析为内存对象,按其类型进行展现,通过本方案在多种复杂的业务场景下都可以顺利解析并展现BLOB数据。在上述技术方案中,在所述内存对象被修改后,所述对象转换模块106将所述内存对象转换为新的二进制长对象流化数据,并由所述数据库管理模块102存储到所述数据库中。在该技术方案中,如果用户根据为其展现的内容,对内存对象进行了修改,则本方案可以根据用户的修改更新数据库中BLOB流化数据,保证用户可以在多种业务场景下对BLOB流化数据进行修改操作。在上述技术方案中,所述对象资源管理模块104还设置对象资源库,存储所述对象资源的文件路径,并按照所述文件路径获取所述对象资源。在该技术方案中,可以预置对象资源的路径,则可以保证随时可以获取对象资源,以将BLOB流化数据处理为内存对象,并进行展现。在上述技术方案中,所述展现模块108在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在上述技术方案中,还包括文件保存模块110,将所述内存对象存储为特定格式的文件。在该技术方案中,还可以为用户将内存对象导出为第三方文件,以满足用户备份或 使用的需要。图2是根据本发明的一个实施例的二进制长对象流化数据处理方法的流程图。如图2所示,本发明还提供一种二进制长对象流化数据处理方法,包括步骤202,从数据库中获取二进制长对象流化数据;步骤204,获取所述二进制长对象流化数据对应的对象资源;步骤206,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象;步骤208,根据所述内存对象的类型,展现所述内存对象。在该技术方案中,由于获取了BLOB流化数据对应的对象资源,所以利用该对象资源可以顺利地将BLOB解析为内存对象,按其类型进行展现,通过本方案在多种复杂的业务场景下都可以顺利解析并展现BLOB数据。在上述技术方案中,还包括在所述内存对象被修改后,将所述内存对象转换为新的二进制长对象流化数据并存储到所述数据库中。在该技术方案中,如果用户根据为其展现的内容,对内存对象进行了修改,则本方案可以根据用户的修改更新数据库中BLOB流化数据,保证用户可以在多种业务场景下对BLOB流化数据进行修改操作。在上述技术方案中,所述步骤204包括设置对象资源库,存储所述对象资源的文件路径;按照所述文件路径获取所述对象资源。在该技术方案中,可以预置对象资源的路径,则可以保证随时可以获取对象资源,以将BLOB流化数据处理为内存对象,并进行展现。在上述技术方案中,所述步骤208包括在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在该技术方案中,针对不同类型的内存对象,提供了不同的展现方式,以保证用户能够清楚了解BLOB流化数据。在上述技术方案中,还包括将所述内存对象存储为特定格式的文件。在该技术方案中,还可以为用户将内存对象导出为第三方文件,以满足用户备份或使用的需要。以下结合实施例详细说明本发明的技术方案,约定术语如下程序加工指通过程序代码进行数据的加工处理过程;流化存储指将二进制数据存入到数据库的BLOB类型字段,java/C++等编程语言均提供了标准的接口来实现流化操作,将不同类型的数据存储为BLOB流化数据的示意图如图3所示;BLOB流化数据指流化存储后的数据;内存对象指特定计算机语言对文件/图像等数据类型实例的定义和表述方式。在本发明的一个实施例中,BLOB解析引擎(相当于前述的二进制长对象流化数据处理装置)执行流程如图4所示,将BLOB流化数据展现为以不同形式进行展现,以下具体说明BLOB解析引擎的原理。流程说明如下
技术方案说明如图5所示I、先通过数据源管理模块进行数据源定义,动态管理和切换需要加载BLOB的数据库资源,SQL执行器502 (相当于前述的数据库管理模块)可以在选定的数据源上实行手工编写的SQL,从而读取BLOB字段的数据信息;2、BLOB流化对象都对应着某种数据文件格式,如文本文件,图像文件,声音文件,以及某种编程语言的内存对象。加载BLOB数据时,需要知道BLOB数据使用到该编程语言的哪些对象资源。通过BLOB对象资源库504 (相当于前述的对象资源管理模块)来管理这些对象资源的类路径;3、根据第二步定义的对象资源库,BLOB加载器506 (相当于前述的对象转换模块)将二进制的BLOB数据转换为编程语言的内存对象;4.根据内存对象类型的不同,数据对象查看器508 (相当于前述的展现模块)使用不同的方式进行展现如果是图形类型,直接进行图形展现;声音类型,直接进行播放;其他类型内存对象,根据对象内部引用层次关系,分解为一个树结构,以树结构形式进行对象展现;5、如果需要,对树型结构展现形态的内存模型,可以直接修改该内存对象的属性值,然后调度SQL执行器502进行修改内容的保存;6、同时支持将该内存对象另存为xml文件等第三方文件格式。举例说明,有报表模型CellsModel,模型包含一个name属性来记录报表名称,默认值为default, java语言实现的类结构如下public class CellsModel implements Serializable { private String name = “default”; public String getName(){ return name;
}
public void setNamei String name) {
Th is. name = name;
}
}此业务模型存储为数据库表bap_i^port的model字段,字段类型为BLOB类型,另有主键字段PK,字段类型为字符类型。现有一报表模型已经存储到数据库表中,Pk值为“demol”。通过本技术方案修改name属性,流程如下I、在数据源管理中,确定该数据库连接,保证可读取数据表bapjeport的信息;手工编写sql语句如下Select model from bap_report where pk= ‘demol’则能读取该业务模型的二进制字节流数据;2、修改BLOB类资源库,将CellsModel类文件的路径添加到资源库;3、利用java语义的ClassLoader机制加载定义好的资源库,即可找到CellsModel类,这样就可将第一步读取的二进制信息,反序列化为CellsModel内存对象;4、构建一个树结构,根节点为CellsModel类名,子节点为其包含的属性name,通过java类反射机制,读取属性name的值“default” ;5、构建文本编辑器,录入新的值“NewName”,通过java类反射机制,回写属性name的值“NewName”,即修改了 CellsModel内存对象的name属性的值;6、将新的内存对象序列化为二进制数组,调用如下SQL将值回写到数据库update bap_report set model= where pk= ‘demol’如需要另存为外部文件,对此二进制数组做相应转换操作即可。上述技术方案与数据库中BLOB流化数据的业务含义没有任何关系,该方案可以操作任何业务含义的BLOB数据,实现了不用关心任何具体业务逻辑即可以完成流化业务数据的查看/编辑/导出。该方案充分保证了数据库的BLOB字段也可以像varchar等普 通数据类型字段一样,进行独立于业务的可视化的查看/编辑/转存。根据本发明的实施例的二进制长对象流化数据处理装置,经过系列项目现场的使用和验证,满足BLOB信息的可视化查看和修改要求。方案步骤如下I、如图6所示,配置数据源指定数据源名称、驱动、链接、用户及密码,并测试通过;2、如图7所示,配置java库类路径配置blob信息涉及到的java类路径和jar包路径;
3、如图8所示,加载BLOB信息拼写SQL语句,在定义的数据源上执行,查找到相关BLOB信息,并加载对应BLOB字段;4、如图9所示,将BLOB数据以树形结构展现根据java类反射机制,将BLOB存储的业务模型的各属性以层级关系展现;5、如图10所示,属性值可以通过编辑器进行编辑和保持针对m_dirty属性进行值编辑,编辑完成后通过工具栏“保存”按钮保存。综上所述,通过本发明,实现了一种数据库BLOB字段的可视化操作解决方案,可以直接访问数据库读取BLOB字段,并对BLOB流化信息进行解析,可以通过图形界面直观的 查看/修改,从而很好地解决了 BLOB字段上述应用难题,其特点是支持任何业务内容的流化存储内容的读写操作;动态解析BLOB流化内容;图形化界面浏览BLOB流化信息;支持流化内容修改;支持流化内容的导出和格式转存。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种二进制长对象流化数据处理装置,其特征在于,包括 数据库管理模块,从数据库中获取二进制长对象流化数据; 对象资源管理模块,获取所述二进制长对象流化数据对应的对象资源; 对象转换模块,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象; 展现模块,根据所述内存对象的类型,展现所述内存对象。
2.根据权利要求I所述的二进制长对象流化数据处理装置,其特征在于,在所述内存对象被修改后,所述对象转换模块将所述内存对象转换为新的二进制长对象流化数据,并由所述数据库管理模块存储到所述数据库中。
3.根据权利要求I所述的二进制长对象流化数据处理装置,其特征在于,所述对象资源管理模块还设置对象资源库,存储所述对象资源的文件路径,并按照所述文件路径获取所述对象资源。
4.根据权利要求I所述的二进制长对象流化数据处理装置,其特征在于,所述展现模块在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。
5.根据权利要求I至4中任一项所述的二进制长对象流化数据处理装置,其特征在于,还包括 文件保存模块,将所述内存对象存储为特定格式的文件。
6.一种二进制长对象流化数据处理方法,其特征在于,包括 步骤202,从数据库中获取二进制长对象流化数据; 步骤204,获取所述二进制长对象流化数据对应的对象资源; 步骤206,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象; 步骤208,根据所述内存对象的类型,展现所述内存对象。
7.根据权利要求6所述的二进制长对象流化数据处理方法,其特征在于,还包括 在所述内存对象被修改后,将所述内存对象转换为新的二进制长对象流化数据并存储到所述数据库中。
8.根据权利要求6所述的二进制长对象流化数据处理方法,其特征在于,所述步骤204包括 设置对象资源库,存储所述对象资源的文件路径; 按照所述文件路径获取所述对象资源。
9.根据权利要求6所述的二进制长对象流化数据处理方法,其特征在于,所述步骤208包括 在所述内存对象为图形类型时,以图形显示方式展现所述内存对象;和/或 在所述内存对象为声音类型时,以音频播放方式展现所述内存对象;和/或 在所述内存对象为其他类型时,以树形结构的文本方式展现所述内存对象。
10.根据权利要求6至9中任一项所述的二进制长对象流化数据处理方法,其特征在于,还包括 将所述内存对象存储为特定格式的文件。
全文摘要
本发明提供一种二进制长对象流化数据处理装置和方法,其中,装置包括数据库管理模块,从数据库中获取二进制长对象流化数据;对象资源管理模块,获取所述二进制长对象流化数据对应的对象资源;对象转换模块,通过所述对象资源,将所述二进制长对象流化数据转换为内存对象;展现模块,根据所述内存对象的类型,展现所述内存对象。通过本发明,由于获取了BLOB流化数据对应的对象资源,所以利用该对象资源可以顺利地将BLOB解析为内存对象,按其类型进行展现,通过本方案在多种复杂的业务场景下都可以顺利解析并展现BLOB数据。
文档编号G06F17/30GK102841918SQ20121022512
公开日2012年12月26日 申请日期2012年6月29日 优先权日2012年6月29日
发明者刘应耀 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1