分享
 
 
 

【开源O/R Mapping框架】OpenORM 0.1RC1版发布

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

OpenORM是基于JAVA的符合SQL使用习惯的对象/关系(O/R Mapping)持久化(Persistence)框架。

OpenORM将Java语言和SQL语言有机融合,实现了面向对象的查询语言OOSQL。在java语言中为你营造了一个SQL语言环境,使我们能够在Java语言中以面向对象的方式编写SQL数据操作,OpenORM还对常用数据库的特性进行了统一化,比如函数、分段查询等,使得我们在开发中不需要再过多的关注数据库平台的区别。基于OOSQL,系统开发更灵活、更有效率,更主要的,OOSQL的使用也是符合SQL语言使用习惯的,任何熟悉SQL语言得人都能够很快的熟悉OOSQL,不需要再特别的学习其他的查询语言。更多特性请查阅http://www.openorm.org

OpenORM主要特性列表:

面向对象的SQL查询语言(OOSQL)

面向对象的编写SQL

SQL函数支持

存储过程支持

其它SQL特性支持

数据库平台的一致性

数据类型的一致性

函数的一致性

操作的一致性

传统的SQL语言使用习惯

复合主键支持

最少使用反射,提高系统性能

多种映射模式支持

多持久层支持

使用多个持久层

在不同的持久层之间定义关系

将一个持久类的各部分映射到多个持久层中

易于扩展的系统架构

可交互的配置文件

可重用的扩展

自动生成数据库脚本

开放源代码

面向对象的SQL查询语言(OOSQL) ^top

面向对象的编写SQL

在OpenORM中,SQL中的一切元素,如表、列、表达式等,都是对象,我们只需要使用这些对象,以传统的编写SQL语句的习惯就能够实现数据的查询、更新以及删除操作。基于OOSQL,使得系统开发更快捷,系统代码更易维护。而且使用OOSQL,能够以集合的方式处理数据,批量的数据处理更有效率。

SQL函数支持

OpenORM对常用的SQL函数进行了封装,并且是与数据库无关的,数据操作中可以很方便的使用这些函数。

存储过程支持

存储过程在OpenORM中也是以对象的方式存在的,并且也是与数据库无关的,我们可以以面向对象的方式使用存储过程。

其它SQL特性支持

OpenORM目前的目标是在Java中营造一个完整的与数据库平台无关的SQL语言环境,所以OpenORM在接下来的开发中还将实现SQL中的其他的特性支持,如触发器、自定义函数等。

数据库平台的一致性 ^top

在OpenORM中,所有的功能特性的实现都将是与数据库平台无关的(特别定制的除外),这也就给系统开发提供了一个一致的应用接口,使得再开发中不再需要特别关注各个数据库平台之间的差别,这也降低了应用系统在不同数据库平台上移植的成本。这些一致性表现在以下几个方面:

数据类型的一致性

各种数据库的数据类型不尽相同,一些特殊的数据类型的访问方法存在差异,然而OpenORM为系统开发提供了一致的数据类型,向用户屏蔽数据库直接的数据访问,这使得在系统开发中不比特别关注不同数据库平台的数据类型的差异,简化应用开发。

函数的一致性

OpenORM中的SQL函数是对各个数据库平台中常用SQL函数的综合,对不同的数据库平台上函数名称的作了相应的映射,函数结果作了相应的变换,使他们有了一致的输出结果。

操作的一致性

OpenORM向用户屏蔽了数据库层的操作,不管是在那种数据库平台中,所有的操作都是一样的。

传统的SQL使用习惯 ^top

在OpenORM中,数据的操作是基于OOSQL的,而OOSQL的使用与传统SQL语言的编写没有太大的区别,熟悉SQL语言的人能够很快上手OpenORM。

复合主键支持 ^top

OpenORM支持数据库中的复合主键,只需要为相应的持久类的主键进行映射,不需要任何特别的处理。

最少使用反射,提高系统性能 ^top

在OpenORM中,所有的对象在它的生命周期中,最多使用一次反射,最大限度的减少反射的使用,在一定程度上提高了系统性能。

多种映射模式支持 ^top

OpenORM支持多种映射模式:ONE_INHERITANCE_TREE_ONE_TABLE(每个继承树映射到一个表)、ONE_INHERITANCE_PATH_ONE_TABLE(每个继承路径映射到一个表)、ONE_CLASS_ONE_TABLE(每个类映射到一个表),没种继承模式都支持符合主键,而且ONE_CLASS_ONE_TABLE映射模式更支持将继承树中的每个类映射到不同的持久层(数据库)中。

多持久层支持 ^top

使用多个持久层

在OpenORM中,允许同时使用多个持久层(对应多个数据库或其他的存储介质),并提供了多个持久层之间的紧密集成,在进行持久类的操作时不需要考虑持久类与持久层之间的关系,只需在持久类的映射中指定即可。

在不同的持久层之间定义关系

OpenORM还允许在多个持久层之间定义数据关系(持久类与其关系类不再同一个持久层中,即不在同一个数据库中),并且OpenORM会自动维护他们之间的关系,不需要开发人员的干预。

将一个持久类的各部分映射到多个持久层中

在OpenORM中,通过采用特定的映射模式,可以将同一个持久类属性分散映射到多个持久层中,OpenORM会自动处理这些持久类的各种持久化操作。用户在操作这些持久类时与其他的持久类的操作是一样的,没有任何特别的地方。

易于扩展的系统架构 ^top

OpenORM拥有一个灵活的体系结构,任何人都可以对OpenORM进行扩展,而且OpenORM为您提供了扩展的切入点。通过扩展OpenORM框架,实现系统开发多样化的需求。

可交互的配置文件

OpenORM的扩展都必须在配置文件中指定,指定的元素的节点就是这个扩展的配置点,任何一个扩展类只要实现了指定的接口,就可以将配置点作为参数带入扩展类中,从而使得扩展部分的配置信息与OpenORM有机融合,不需要再另外设置配置文件,为系统扩展提供了极大的方便和灵活性。

可重用的扩展

所有的OpenORM的扩展部分,都与OpenORM框架本身形成一个有机的整体,可以将他们应用在不同的项目中,如果扩展部分具有数据库无关性,那么还可以将这些扩展部分应用在不同的数据库平台上。

自动生成数据库脚本 ^top

OpenORM提供了系统数据库脚本生成工具,在用户定义好持久类以及持久类映射之后,只需要使用该工具就可自动生成数据库脚本。

开放源代码 ^top

OpenORM是开放源代码的,任何人都可以通过产看OpenORM的源代码了解OpenORM内部的运行机制,更方便的进行系统开发。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有