CN101751260B - 一种基于动态标签的业务对象持久化处理方法 - Google Patents
一种基于动态标签的业务对象持久化处理方法 Download PDFInfo
- Publication number
- CN101751260B CN101751260B CN 200910259916 CN200910259916A CN101751260B CN 101751260 B CN101751260 B CN 101751260B CN 200910259916 CN200910259916 CN 200910259916 CN 200910259916 A CN200910259916 A CN 200910259916A CN 101751260 B CN101751260 B CN 101751260B
- Authority
- CN
- China
- Prior art keywords
- persistence
- mapping relations
- business object
- persistence engine
- logic class
- 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
- 230000002688 persistence Effects 0.000 title claims abstract description 54
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000013507 mapping Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 abstract description 2
- 230000003213 activating effect Effects 0.000 abstract 1
- 230000018109 developmental process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于动态标签的业务对象持久化处理方法,该方法包括以下步骤:1)业务对象调用持久化引擎,并激活持久化引擎;2)持久化引擎获得业务逻辑类的全名;3)持久化引擎在缓冲中查找该业务逻辑类名是否有映射关系,如果存在映射关系,执行步骤4),否则转到步骤5);4)持久化引擎从缓冲区中得到映射关系,并跳转到步骤8);5)通过动态标签映射,计算对于此业务逻辑类名的映射关系,并判断计算是否成功,若为是,执行步骤6),若为否,则转到步骤7);6)将此业务逻辑类名的映射关系存入缓冲,跳转到步骤8)等步骤。与现有技术相比,本发明具有提高开发、调试和单元测试的执行效率等优点。
Description
技术领域
本发明涉及一种业务对象持久化方法,尤其是涉及一种基于动态标签的业务对象持久化处理方法。
背景技术
B/S(Browser-Server,浏览器服务器模式)架构的软件由于不需要部署客户端,维护成本低,以及平台无关性等优势,应用范围越来越大。
B/S架构的软件一般按照MVC(MODEL业务层、VIEW视图层、CONTROLLER控制层)三层模型进行系统开发。其中,业务层一般使用面向对象(OO)的编程语言,如JAVA、.NET等编程语言,使用类(classes)、对象(objects)来定义实体对象,并进行对象的处理和持久化。
而其中的业务对象持久化,重复开发工作较多,如何有效的提高其开发效率是一个值得研究的问题。针对这一问题,本发明在现有技术的基础上,提出一种基于动态标签的业务对象自动持久化的方法。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种通用性强的基于动态标签的业务对象持久化处理方法。
本发明的目的可以通过以下技术方案来实现:
一种基于动态标签的业务对象持久化处理方法,其特征在于,该方法包括以下步骤:
1)业务对象调用持久化引擎,并激活持久化引擎;
2)持久化引擎获得业务逻辑类的全名;
3)持久化引擎在缓冲中查找该业务逻辑类名是否有映射关系,如果存在映射关系,执行步骤4),否则转到步骤5);
4)持久化引擎从缓冲区中得到映射关系,并跳转到步骤8);
5)通过动态标签映射,计算对于此业务逻辑类名的映射关系,并判断计算是否成功,若为是,执行步骤6),若为否,则转到步骤7);
6)将此业务逻辑类名的映射关系存入缓冲,跳转到步骤8);
7)如果此类没有配置映射关系,或者映射关系配置错误,则执行异常处理,并跳转到步骤10);
8)根据映射关系,调用JDK或者.NET的原始API函数,完成属性和字段的数据交换,并判断是否成功,若为是,跳转到步骤10),若为否,则执行步骤9;
9)持久化执行失败,调用异常处理;
10)结束。
所述的持久化引擎安装在Java虚拟机或.NET平台的服务器上。
与现有技术相比,本发明具有以下优点:
1、与传统的解决方案如Hibernate等,基于动态标签的业务对象持久化的方法是更为轻量级的解决方案,本方法侧重于减小开发的复杂度。
2、由于本方案采用基于POJOs(简单洁净Java对象)的方法进行开发,因此应用不依赖于任何容器,这可以提高开发、调试和单元测试的执行效率。
3、利用此方法,只需要进行简单的配置,即可完成后台业务对象的持久化存储,实现了业务对象与持久化对象的自动绑定。使得开发工作集中在关键的业务逻辑处理上,提高了软件开发效率。
4、本发明实现的方法更加具有通用性,除了适用于标准的关系数据库外,还适用于其他文件类型(包括二进制、文本、XML等),用户可以根据不同需求,选择合适的持久化对象进行开发。
附图说明
图1为一种基于动态标签的业务对象持久化处理方法的流程图;
图2为一种基于动态标签的业务对象持久化处理方法的硬件结构图;
图3为一种基于动态标签的业务对象持久化处理方法的业务对象与数据库数据的映射图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例1
如图2所示,本方法主要通过一个数据持久化引擎a来实现业务对象c和数据库数据d之间的映射,系统运行在安装有JVM或者.NET平台b的任何服务器上,不受操作系统和其他组件库的影响。另外,数据持久化引擎a基于POJOs方式开发,调用JDK或者.NET平台的原生API函数,使其不依赖于其他任何容器或者组件。数据持久化的形式可以有很多种,例如:数据库存储方式、文件存储方式等。
以常用的数据库存储为例,详细介绍本方法的实现方式。
首先,如图3所示,持久化引擎a需要得到业务对象c和数据库数据d之间的映射关系。
这些映射关系包括:类名到数据库表名(或视图名)的映射,类属性到数据库表字段的映射,以及类属性类型到数据库字段类型的映射。
目前,几乎所有的高级语言(JAVA、.Net等)都支持标签注释功能。通过在类、属性上增加特殊的标签标记,完成此业务类的映射关联。
最后,当某个业务对象需要持久化时,调用持久化引擎的标准方法(增、删、改、查),以此完成业务对象的持久化工作。
持久化引擎a的整个工作流程如图1所示,具体说明如下:
1)业务对象调用持久化引擎,并激活持久化引擎;
2)持久化引擎获得业务逻辑类的全名;
3)持久化引擎在缓冲中查找该业务逻辑类名是否有映射关系,如果存在映射关系,执行步骤4),否则转到步骤5);
4)持久化引擎从缓冲区中得到映射关系,并跳转到步骤8);
5)通过动态标签映射,计算对于此业务逻辑类名的映射关系,并判断计算是否成功,若为是,执行步骤6),若为否,则转到步骤7);
6)将此业务逻辑类名的映射关系存入缓冲,跳转到步骤8);
7)如果此类没有配置映射关系,或者映射关系配置错误,则执行异常处理,并跳转到步骤10);
8)根据映射关系,调用JDK或者.NET的原始API函数,完成属性和字段的数据交换,并判断是否成功,若为是,跳转到步骤10),若为否,则执行步骤9;
9)持久化执行失败,调用异常处理;
10)结束。
实施例2
该方法已经被应用于上海10号线的地铁信号维护支持系统中,系统主要功能包括设备状态的采集、报警信息的管理、维修工作管理和统计分析等工作。
地铁信号维护支持系统是基于JAVA开发的,采用Oracle数据库保存系统数据。
通过将后台数据对象与持久化对象进行绑定,自动实现对业务对象的添加、删除和修改等操作方法;
从系统的开发进度来看,使用该发明方法后,编程复杂度降低了很多,开发效率有很大提高,开发人员在数据持久化上基本上不需要花费时间;另一方面,由于使用了缓冲池技术,执行效率除了第一次比传统方式(持久化层硬编码)慢一些之外,在整个运行过程中系统的执行效率和传统方式相比基本接近。
在本系统实际运行过程中,数据库平均每秒执行SQL语句在500次左右,系统很好完成了任务。另外,从用户使用后的反馈来看,其交互模式和响应速度也得到了广泛认可。
Claims (2)
1.一种基于动态标签的业务对象持久化处理方法,其特征在于,该方法包括以下步骤:
1)业务对象调用持久化引擎,并激活持久化引擎;
2)持久化引擎获得业务逻辑类的全名;
3)持久化引擎在缓冲中查找该业务逻辑类名是否有映射关系,如果存在映射关系,执行步骤4),否则转到步骤5);
4)持久化引擎从缓冲区中得到映射关系,并跳转到步骤8);
5)通过动态标签映射,计算对于此业务逻辑类名的映射关系,并判断计算是否成功,若为是,执行步骤6),若为否,则转到步骤7);
6)将此业务逻辑类名的映射关系存入缓冲,跳转到步骤8);
7)如果此类没有配置映射关系,或者映射关系配置错误,则执行异常处理,并跳转到步骤10);
8)根据映射关系,调用JDK或者.NET的原始API函数,完成属性和字段的数据交换,并判断是否成功,若为是,跳转到步骤10),若为否,则执行步骤9);
9)持久化执行失败,调用异常处理;
10)结束。
2.根据权利要求1所述的一种基于动态标签的业务对象持久化处理方法,其特征在于,所述的持久化引擎安装在Java虚拟机或.NET平台的服务器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910259916 CN101751260B (zh) | 2009-12-23 | 2009-12-23 | 一种基于动态标签的业务对象持久化处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910259916 CN101751260B (zh) | 2009-12-23 | 2009-12-23 | 一种基于动态标签的业务对象持久化处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751260A CN101751260A (zh) | 2010-06-23 |
CN101751260B true CN101751260B (zh) | 2013-01-02 |
Family
ID=42478278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910259916 Active CN101751260B (zh) | 2009-12-23 | 2009-12-23 | 一种基于动态标签的业务对象持久化处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751260B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521274A (zh) * | 2011-11-24 | 2012-06-27 | 上海明想电子科技有限公司 | 一种基于ibatis的SQL脚本动态加载方法 |
CN104317964A (zh) * | 2014-11-14 | 2015-01-28 | 中国建设银行股份有限公司 | 一种基于iBatis的对象关系映射方法及系统 |
CN105159920A (zh) * | 2015-07-28 | 2015-12-16 | 卡斯柯信号有限公司 | 一种基于属性标签的数据库访问方法 |
CN117271525A (zh) * | 2023-10-27 | 2023-12-22 | 衡阳凯新特种材料科技有限公司 | 一种特种陶瓷数据长期存储系统及方法 |
CN118445801B (zh) * | 2024-07-08 | 2024-08-30 | 江西科技学院 | 一种移动终端软件测试方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008952A (zh) * | 2007-01-30 | 2007-08-01 | 华为技术有限公司 | 一种持久层生成方法及装置 |
CN101030271A (zh) * | 2006-03-03 | 2007-09-05 | 中国电信股份有限公司 | 一种资源业务对象的持久化和查询方法 |
CN101131638A (zh) * | 2007-08-14 | 2008-02-27 | 中兴通讯股份有限公司 | 业务对象内存表示和持久化表示的解耦合装置及方法 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
-
2009
- 2009-12-23 CN CN 200910259916 patent/CN101751260B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030271A (zh) * | 2006-03-03 | 2007-09-05 | 中国电信股份有限公司 | 一种资源业务对象的持久化和查询方法 |
CN101008952A (zh) * | 2007-01-30 | 2007-08-01 | 华为技术有限公司 | 一种持久层生成方法及装置 |
CN101131638A (zh) * | 2007-08-14 | 2008-02-27 | 中兴通讯股份有限公司 | 业务对象内存表示和持久化表示的解耦合装置及方法 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751260A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463635B (zh) | 一种图片数据查询的方法和分布式NewSQL数据库系统 | |
CN101840352B (zh) | 一种数据库连接池的监控方法及装置 | |
CN101751260B (zh) | 一种基于动态标签的业务对象持久化处理方法 | |
CN103092742B (zh) | 程序日志记录优化方法和系统 | |
WO2012174767A1 (zh) | 一种基于orm架构的高效数据库访问的实现方法及装置 | |
CN105094851A (zh) | 一种基于Git随时发布代码的实现方法 | |
CN102236672A (zh) | 一种数据导入方法及装置 | |
CN106446019A (zh) | 一种软件功能处理方法和装置 | |
US20120047484A1 (en) | Decorated model architecture for efficient model-driven application development | |
CN103019691A (zh) | 一种etl作业关系图的转化方法及其实现系统 | |
CN110780879B (zh) | 一种基于智能编译技术的决策执行方法、装置、设备及介质 | |
CN103092866B (zh) | 数据监控方法及监控装置 | |
CN113312181A (zh) | 一种基于activiti自定义表单的高并发工作流审批方法 | |
CN106685902A (zh) | 一种用户权限管理方法及客户端、服务器 | |
CN106126564A (zh) | 一种基于动态模板语言渲染的方法 | |
CN109254989B (zh) | 一种基于元数据驱动的弹性etl架构设计的方法及装置 | |
CN106446064A (zh) | 一种数据转换方法及装置 | |
Kolovos et al. | The epsilon pattern language | |
CN102707956B (zh) | 用于处理触发器返回结果不确定性的方法 | |
CN107608662B (zh) | 基于MongoDB的分布式计时系统 | |
Cai et al. | Business process recovery for system maintenance—An empirical approach | |
CN116204550A (zh) | 数据库查询语句的优化方法、存储介质与设备 | |
CN114925130A (zh) | 一种基于调用链技术进行跨层根因分析的方法 | |
CN103744989B (zh) | 一种层次节点数据的查询方法 | |
CN101236557B (zh) | 一种抽取ims数据库中数据的方法和装置 |
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 |