`

OR Mapping框架

    博客分类:
  • java
 
阅读更多

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

 

分享到:
评论

相关推荐

    IBatis源码+xsd+帮助

    IBatis源码+xsd+帮助,不错的一种OR Mapping框架!

    Spider-开源

    该项目是一个用于SNMP的OR Mapping框架,它可以使SNMP项目更简单,更易于维护和易于扩展。并且该项目与Hibernate to Datebase相同。 它可以使 SNMP 操作像操作 Java bean 一样简单。

    ssh框架错误总结

    例如,在struts-config.xml文件中没有配置companyNews的action,引发javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews。 解决方法:在struts-config.xml文件中添加companyNews的...

    easydb:#easydb,是在2007年开发完成的一款简洁易用的OR Mapping产品

    项目说明 Easydb,是一款简洁易用的O/R Mapping产品,是应用于JAVA/J2EE项目中的持久层框架,使得开发人员可以更加高效地构建应用系统,着重关注业务逻辑而非数据存储,节省项目的开发、维护成本。 Easydb,其思路...

    iBATIS介绍入门

    iBATIS不同于一般的OR映射框架。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。 所以,iBATIS做的是SQL Mapping的工作。 它把SQL...

    Olation OR-Mapping Persistence Framework-开源

    Olation是C#和VB.Net的O / R映射和持久性框架。 您可以使用Olation将对象映射到基于Sql的数据库或将对象映射到xml文件。 设计目标之一是尝试最小化配置。

    cglib-3.2.0.jar

    最流行的OR Mapping工具hibernate也使用CGLIB来代理单端single-ended(多对一和一对一)关联(对集合的延迟抓取,是采用其他机制实现的)。EasyMock和jMock是通过使用模仿(mock)对象来测试java代码的包。它们都通过...

    play framework 框架手册 word 版

    Actions: @{…} or @@{…} - 46 - Messages: &{…} - 46 - Comment: *{…}* - 46 - Scripts: %{…}% - 46 - Template inheritance继承 - 47 - 定制模板标签 - 48 - 检索tag参数 - 48 - 调用标签体 - 48 - 格式化特定...

    BeetlSQL数据库访问框架是一个全功能 DAO 工具,同时具有 Hibernate.rar

    BeetSql是一个全功能DAO工具,同时...灵活直观的支持支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能。下面是一个简单的例子~

    morphia-1.00-SNAPSHOT.jar

    morphia mongo db OR-mapping mongo db再带的CRUD 太麻烦了, 一个不错的框架 类似 Hibernate

    Android代码-Log4a 是一个基于 mmap, 高性能、高可用的 Android 日志收集框架

    If you like, welcome to star/fork it or follow me. Log4a uses file mapping memory(mmap) as a cache, that the integrity of the log can be guaranteed without sacrificing performance. The log will be ...

    支持多数据库的ORM框架ef-orm.zip

    A Simple OR-Mapping framework on multiple databases. 使用手册(中文)http://geequery.github.io/ef-orm/manual/EF-ORM-user-guide.docx  使用示例工程 ...

    cgilb应用开发详解

    CGLIB 也广泛应用于许多 OR Mapping 工具,例如 Hibernate,它们使用 CGLIB 来代理单端 single-ended(多对一和一对一)关联(对集合的延迟抓取,是采用其他机制实现的)。 EasyMock 和 jMock 都是通过使用模仿...

    OPLib对象持久层 (源码)

    OPLib是一个基于ADO2.8和COM+技术的for VB6的对象持久层(Persistence Layer)框架,它实现了数据库和中间层的Broker功能,提供OR-Mapping,将关系数据库对象映射到Class,使中间层对数据库“无知”(Law of Demeter)。...

    Superpixel-Based Graphical Model for Remote Sensing Image Mapping(笔记)

    在本文中,我们使用一个基于超像素的图形模型来建立一个新的分类框架。以超像素代替像素作为图形模型的基本单元,获取超像素之间的上下文信息和空间依赖关系该方法的优点是使分类对噪声和分割尺度不敏感。本文的贡献...

    一个用Python编写的基于ORM模型的MYSQL驱动.rar

    ORM英文是(Object Relation Mapping),中文意思是对象关系映射,它是RDBMS和业务实体对象之间的一个映射。换句话说,是将底层的RDBMS封装成业务实体对象,提供给业务逻辑层使用。优点是: 一旦定义好了对象模型,...

    java8集合源码-awesome-java:真棒Java

    框架、库和软件列表。 基于 翻译与优化,并搭配相应的教程。 注意,内容按照 A-Z 字幕顺序排序。 Contents Projects Bean Mapping Frameworks that ease bean mapping. - Provides fluent API for typesafe domain ...

    play框架手册

    Actions: @{…} or @@{…} - 46 - Messages: &{…} - 46 - Comment: *{…}* - 46 - Scripts: %{…}% - 46 - Template inheritance继承 - 47 - 定制模板标签 - 48 - 检索tag参数 - 48 - 调用标签体 - 48 - 格式化特定...

    企业级管理软件快速开发平台介绍

    极致管理软件开发平台通过OR Mapping(对象-关系映射)的方式封装了对数据库的访问,以对象的方式来访问数据库中的数据,避免了通过写SQL语句来创建或维护数据表,或通过写SQL语句实现对数据的新增、修改、删除和...

    .net快速开发平台整体解决方案

    极致管理软件开发平台通过OR Mapping(对象-关系映射)的方式封装了对数据库的访问,以对象的方式来访问数据库中的数据,避免了通过写SQL语句来创建或维护数据表,或通过写SQL语句实现对数据的新增、修改、删除和...

Global site tag (gtag.js) - Google Analytics