OR Mapping框架

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

面向对象的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内部的运行机制,更方便的进行系统开发。
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内部的运行机制,更方便的进行系统开发。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值