- 浏览: 34767 次
- 性别:
- 来自: 湖南
-
文章分类
最新评论
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 630HttpClient client = new HttpCli ... -
HTTPClient的多线程编程
2012-03-02 09:09 1503Axis2的连接主要采用了HttpClient进行与服务器的服 ... -
HttpClient超时区别
2012-03-02 09:07 1088HttpClient 4 设置超时 httpclient 超时 ... -
HttpClient Theading
2012-03-01 10:49 688有技术兴趣的 请加28830308群. 这篇文章概括了怎样在 ... -
HttpClient使用
2012-03-01 10:43 747有技术兴趣的 请加28830308群. HttpClien ... -
线程请求执行,一个多线程程执行HTTP请求的例子。
2012-03-01 10:40 1785package cn.lake.util; import ... -
httpclient 4 下载 文件
2012-03-01 10:38 985import java.io.File; import ja ... -
使用了httpclient实现的上传商品的demo
2012-03-01 10:36 1171package com.taobao.top.sample.u ... -
socket简介
2012-02-07 10:58 699第一步 充分理解Socket ... -
转载socket
2012-02-07 10:57 596对TCP/IP、UDP、Socket编程这些词你不会很陌生吧? ... -
Java的synchronized关键字:同步机制总结
2012-02-07 10:54 594不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对 ... -
JAVA RMI
2012-02-07 10:53 591Java RMI 指的是远程方法调用 (Remote Meth ... -
JXL生成复杂的EXCEL
2011-12-26 13:52 1406public String ExcelTaskRepo ... -
如何快速的为现有数据库建立数据字典?
2011-12-20 13:55 1013大部分项目在验收时都需要向客户提供一份详细的数据字典,而编写数 ... -
在java中获取客户端真实的IP地址
2011-12-20 13:55 574public static String getRemoteA ... -
用JavaMail的API发送邮件
2011-12-20 13:55 5451、MimeMessage的包装类 public c ... -
在项目中整合FreeMarker框架
2011-12-16 15:40 598FreeMarker是一个用Java编写的模板引擎,既可以 ... -
Commons FTP范例
2011-12-16 15:33 516public class FtpUtil { privat ... -
Java实现的图片生成器
2011-12-16 15:32 540一、本图片生成器具有以下功能特性: 1、可以设置图 ... -
jacob学习总结
2011-12-16 15:27 469JACOB 就是 JAVA-COM Bridge的缩写,提供自 ...
相关推荐
内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。
嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip
内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。
少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。
嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip
少儿编程scratch项目源代码文件案例素材-驾驶通关.zip
小区开放对周边道路通行能力影响的研究.pdf
内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。
少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip
内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。
基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf
嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip
Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统
C# WPF - LiveCharts Project
少儿编程scratch项目源代码文件案例素材-恐怖叉子 动画.zip
嵌入式八股文面试题库资料知识宝典-嵌⼊式⼯程师⾯试⾼频问题.zip