- 浏览: 34129 次
- 性别:
- 来自: 湖南
文章分类
最新评论
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内部的运行机制,更方便的进行系统开发。
发表评论
-
HttpClient容易忽视的细节——连接关闭
2012-03-02 09:15 622HttpClient client = new HttpCli ... -
HTTPClient的多线程编程
2012-03-02 09:09 1486Axis2的连接主要采用了HttpClient进行与服务器的服 ... -
HttpClient超时区别
2012-03-02 09:07 1075HttpClient 4 设置超时 httpclient 超时 ... -
HttpClient Theading
2012-03-01 10:49 679有技术兴趣的 请加28830308群. 这篇文章概括了怎样在 ... -
HttpClient使用
2012-03-01 10:43 727有技术兴趣的 请加28830308群. HttpClien ... -
线程请求执行,一个多线程程执行HTTP请求的例子。
2012-03-01 10:40 1764package cn.lake.util; import ... -
httpclient 4 下载 文件
2012-03-01 10:38 958import java.io.File; import ja ... -
使用了httpclient实现的上传商品的demo
2012-03-01 10:36 1159package com.taobao.top.sample.u ... -
socket简介
2012-02-07 10:58 687第一步 充分理解Socket ... -
转载socket
2012-02-07 10:57 577对TCP/IP、UDP、Socket编程这些词你不会很陌生吧? ... -
Java的synchronized关键字:同步机制总结
2012-02-07 10:54 578不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对 ... -
JAVA RMI
2012-02-07 10:53 579Java RMI 指的是远程方法调用 (Remote Meth ... -
JXL生成复杂的EXCEL
2011-12-26 13:52 1387public String ExcelTaskRepo ... -
如何快速的为现有数据库建立数据字典?
2011-12-20 13:55 999大部分项目在验收时都需要向客户提供一份详细的数据字典,而编写数 ... -
在java中获取客户端真实的IP地址
2011-12-20 13:55 556public static String getRemoteA ... -
用JavaMail的API发送邮件
2011-12-20 13:55 5351、MimeMessage的包装类 public c ... -
在项目中整合FreeMarker框架
2011-12-16 15:40 585FreeMarker是一个用Java编写的模板引擎,既可以 ... -
Commons FTP范例
2011-12-16 15:33 507public class FtpUtil { privat ... -
Java实现的图片生成器
2011-12-16 15:32 523一、本图片生成器具有以下功能特性: 1、可以设置图 ... -
jacob学习总结
2011-12-16 15:27 449JACOB 就是 JAVA-COM Bridge的缩写,提供自 ...
相关推荐
"OR_Mapping_Simulation"指的是对这种映射过程的一种模拟或实践,特别是关于Hibernate ORM框架的应用。 **描述:“hibernate学习笔记,见博客http://blog.csdn.net/specialshoot/article/details/48182735”** 这...
Fun_语言_OR_Mapping_框架_fun-orm
它与OR Mapping框架(如Hibernate或iBatis)结合使用,为开发者提供了便捷的数据操作接口,减少了手写SQL语句的需求。 2. **特点**: - **简洁API**:S2DAO提供了一套简单的API,使得执行CRUD操作变得非常直观,...
3. 系统服务:数据实体、数据缓存管理、工作流引擎、短信平台、对象空间、元数据管理、OR Mapping 框架、事务管理、业务逻辑组件、数据访问对象、远程访问代理、表现层组件、运行时框架。 开发流程包括: 1. 需求...
ORM(Object-Relational Mapping,对象关系映射)框架是软件开发中的一种技术,它将数据库中的表结构映射到Java对象,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。在Java中实现ORM...
该项目是一个用于SNMP的OR Mapping框架,它可以使SNMP项目更简单,更易于维护和易于扩展。并且该项目与Hibernate to Datebase相同。 它可以使 SNMP 操作像操作 Java bean 一样简单。
例如,在struts-config.xml文件中没有配置companyNews的action,引发javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews。 解决方法:在struts-config.xml文件中添加companyNews的...
8. **分组(Group By) vs 聚合(Aggregation)**:SQL使用GROUP BY语句进行分组操作,而MongoDB则提供了聚合框架来处理类似需求。 9. **BSON语法**:MongoDB查询表达式以JSON对象形式表示,但实际上使用的是一种二进制...
在.NET环境中,这种工具通常被称为ORM(Object-Relational Mapping)框架,如Entity Framework、NHibernate等。本文将深入探讨"数据OR自动生成工具"及其在数据库DB开发中的应用。 标题中的"数据OR自动生成工具"是指...
**Olation OR-Mapping Persistence Framework** 是一个专为C#和VB.Net开发的开源对象关系映射(ORM)和持久性框架。ORM框架的核心功能在于它能够将应用程序中的对象模型与数据库中的表结构进行自动映射,使得开发者...
项目说明 Easydb,是一款简洁易用的O/R Mapping产品,是应用于JAVA/J2EE项目中的持久层框架,使得开发人员可以更加高效地构建应用系统,着重关注业务逻辑而非数据存储,节省项目的开发、维护成本。 Easydb,其思路...
理解Hibernate的对象关系映射(OR Mapping)机制,包括实体类、映射文件的配置,以及ID生成策略。掌握HQL和QBC查询语言,以及Log4j日志系统。对于Hibernate的缓存机制,包括一级缓存和二级缓存也需要有深入的理解。 ...
最流行的OR Mapping工具hibernate也使用CGLIB来代理单端single-ended(多对一和一对一)关联(对集合的延迟抓取,是采用其他机制实现的)。EasyMock和jMock是通过使用模仿(mock)对象来测试java代码的包。它们都通过...
- **持久层框架**:MyBatis将ORM(Object-Relational Mapping,对象关系映射)与SQL执行结合起来,简化了数据库访问层的开发。 - **SqlSession和Mapper接口**:通过SqlSession进行数据库交互,Mapper接口则提供了...
BeetSql是一个全功能DAO工具,同时...灵活直观的支持支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能。下面是一个简单的例子~
morphia mongo db OR-mapping mongo db再带的CRUD 太麻烦了, 一个不错的框架 类似 Hibernate
Hibernate作为ORM(Object-Relational Mapping)框架,解决了Java应用与数据库之间的数据映射问题,将对象模型转换为关系型数据库模型,简化了数据库操作。在SSH项目中,Hibernate主要负责数据的持久化,通过HQL...
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(Object-Relational Mapping)框架简化了这个过程,将对象与关系数据库之间的交互变得更加简单。本篇文章将详细探讨Android数据库ORM框架,特别是关于"ormlite"库的使用。 首先,ORMlite是一个轻量级的Java ORM...