老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
AVA的数据计算层主要是为了降低应用程序和数据存储之间的耦合性,分担它们的计算压力。它应当符合如下特征:
1、可以统一计算来自任意数据存储结构的数据,不仅包括数据库,也包括非数据库的Excel/Txt/XML,对最常见的结构化数据的计算是重点。
2.可以进行不同种类数据源之间的相互计算,包括异种数据库之间、数据库和非数据库之间的计算。
3.数据库和计算层、计算层和JAVA代码之间要有尽量低的耦合性,方便移植。
4.可以是非JAVA架构,但必须能和JAVA方便的集成。
5.要有较高的开发效率,包括脚本编写,可读性,调试,日常维护。
6.复杂计算目标和大数据计算是流行趋势,数据计算层应该能直接支持。
考察对象有5个——Hibernate,SQL,iBatis,集算器,R languae。考察的指标包括:成熟度、低耦合性、脚本编写、集成、界面友好性、性能、复杂计算、大数据支持、非数据库计算、跨库计算、调试方便性,以0-5星为评分,5星为最高分。纯熟个人观点,欢迎交流。
分别描述之~~~~~~~~~~~~!
Hibernate
Hibernate是轻量级的ORM框架,由Gavin King创造,现在属于JBOSS。它是非分布式环境中(intranet)中优秀的数据计算层。它具有彻底的基于对象的访问方式,而iBatis和集算器只能算半对象或类对象。
Hibernate几乎做到了计算脚本、JAVA代码、数据库之间的彻底解耦。但计算能力不足使它仍然在很多地方依靠SP/SQL,这是个尴尬的问题。
另外EJB的JPA属于数据计算层协议,但考虑到Hibernate是实际上的JPA,所以不介绍它了。
成熟度:4星。经过10多年的市场检验,Hibernate已经非常成熟。
低耦合性:4星。这是Hibernate出现的原因。但本地SQL仍然是不可避免的,难以完美移植。
脚本编写:2星。Hibernate的计算方式是对象引用和HQL,前者最容易,给5星;但后者的学习难度比SQL高,而且调试极困难,开发效率不如SQL,2星;另外有些计算还是不得不依靠SQL,2种语言混用,困难,给2星。平均3星。
集成:2星。Hibernate是纯java架构,只需要复制jar包和N个映射文件,并利用好session,入门比较容易。但驾驭Hibernate的缓存是必修课,这需要极高的架构设计能力,不建议普通程序员接触。当然,ORM的这种天生的缺陷在其他数据计算层并不存在。
界面友好性:0星。Hibernate有对象生成器;但缺乏最重要的HQL图形化设计界面,等于没有GUI。
性能:3星。支持3级缓存,虽然一定不如SQL,但据我个人经验其综合性能达到了SQL的60%。
复杂计算:0星。不支持复杂计算,需要依靠SQL/外部工具实现。
大数据支持:1星。不直接支持Hadoop架构,但有人在研究。
非数据库计算:0星。不直接支持非数据库的计算。
跨库计算:0星。不直接支持库间的计算,每个HQL只支持单库。
调式方便性:0星。很难调试,对程序员来讲,这是致命的。
分享到:
相关推荐
### Java一次性查询处理几百万数据解决方法 在Java开发中,处理大数据量是常见的需求之一,特别是当数据规模达到几百万级别时,如何高效、稳定地处理这些数据变得尤为重要。本文将详细介绍一种Java一次性查询处理几...
为了解决这个问题,我们可以采用以下几种策略: 1. **分批导出**: - 考虑将大数据集分成若干小批次,每次只处理和导出一部分数据。例如,可以按行或按特定数量的数据进行划分。 - 使用`java.util.Iterator`遍历...
基于Java的网格计算框架为解决大规模计算问题提供了一种高效、可靠的解决方案。通过充分利用Java语言的特点和技术优势,可以构建出功能强大且易于扩展的网格计算系统。未来的研究可以进一步探索如何优化网格计算框架...
在具体实现层面,基于Web的Java并行计算通常涉及到以下几个关键步骤: 1. **任务分解**:将大型任务拆分为若干个较小的子任务,以便能够在不同的计算机节点上并行执行。 2. **任务调度**:根据各个节点的计算能力和...
下面我们将探讨从Cobol到Java移植的全面解决方案。 1. **语言转换工具**: - **CobolJava**: 这可能是指一种特定的转换工具或框架,用于将Cobol代码自动转换为Java代码。这种工具通常会尝试保留原始代码的逻辑结构...
1. **Java编程基础**:这包括类、对象、变量、控制流、异常处理等基本概念,这些都是编写LeetCode解决方案的基础。 2. **数据结构**:如数组、链表、栈、队列、堆、哈希表、二叉树、图等,理解和熟练使用这些数据...
通过深入理解和实践这些Java数据结构,开发者能够设计出更高效、更优雅的解决方案,为软件开发带来显著的提升。在实际工作中,选择合适的数据结构并结合适当的算法是解决问题的关键。因此,对这些概念的熟练掌握是每...
"JAVA语言开发的水蒸气计算包.rar"是一个专为火电厂热力设备性能计算设计的软件工具,它利用Java的强大功能和跨平台特性,为用户提供了一种高效、准确的水蒸汽热力性能计算解决方案。 水蒸汽计算在火电厂中至关重要...
在Java Web数据采集系统中,主要涉及到以下几个关键知识点: 1. **网络爬虫**:数据采集的核心部分是网络爬虫,它通过模拟浏览器发送HTTP请求到目标网站,获取HTML或其他格式的网页内容。Java中的HttpURLConnection...
总的来说,Java处理数学表达式的方式多样,`jeval`库提供了一种便捷的解决方案,适用于大部分简单的到中等复杂的计算需求。对于更复杂或定制化的需求,可以考虑使用自定义解析器或Java的`ScriptEngine`。理解并熟练...
在使用过程中,遇到问题可以参考GeoTools的官方文档、社区论坛和示例代码,获取帮助和解决方案。 总之,GeoTools作为开源的Java地理空间库,不仅提供了丰富的API和工具,还拥有活跃的社区支持,是开发GIS应用的理想...
Java并发编程是Java开发语言中的一个关键领域,特别是在构建高性能、高并发的后端...阅读提供的"Java并发编程与高并发解决方案(高清视频教程).txt"文件,可以进一步了解课程内容和结构,从而有针对性地学习和提升。
在“一个计算机专业学生几年的Java编程经验汇总.txt”这个文件中,我们可以期待找到以下几个方面的内容: 1. **基础语法**: 包括变量、数据类型、控制结构(如if-else,for,while循环)、类与对象、封装、继承、...
为了实现这个功能,我们需要以下几个关键知识点: 1. **坐标系统**:雷达屏幕上的每个点可以用二维坐标(x, y)表示,其中x和y分别代表点在水平和垂直方向上的位置。我们需要定义一个坐标类来存储这些信息。 2. **...
这里提到的几个管理系统源码,结合了Java技术和SQL数据库,为我们提供了深入理解如何构建这些系统的机会。 1. **Java与SQL结合**:Java通过JDBC(Java Database Connectivity)API与SQL数据库进行交互。JDBC是Java...
在解决大数据分析问题时,需要掌握以下几个关键知识点: 1. **大数据平台**:如Apache Hadoop和LexisNexis HPPC,它们提供了处理大数据的基础架构,包括分布式文件系统(如HDFS)和并行计算模型(如MapReduce)。 ...
Oracle的数据仓库系统整体解决方案由以下几个部分构成: 1. **数据的管理**:Oracle提供了先进的数据库管理系统,如Oracle 9i和Oracle 10g,支持Grid计算技术,确保大规模数据的高效存储和处理。此外,元数据管理...
作为一个开源框架,Hadoop为海量数据的存储、处理和分析提供了高效且可扩展的解决方案。本文将深入探讨“Hadoop高级编程——构建与实现大数据解决方案”这一主题,旨在帮助读者掌握如何利用Hadoop构建实际的大数据...
5. **效率和性能**:ojalgo的设计注重性能,采用了优化的数据结构和算法,尤其在处理大型矩阵时,能够提供高效且内存友好的解决方案。 6. **文档与API**:与Ujmp相比,ojalgo-33.15的一个显著优势是它的文档丰富,...
Java语言的特点和优势主要体现在以下几个方面: 1. 面向对象编程:Java是一种面向对象的编程语言,这意味着在Java中,程序被看作是对象的集合,每个对象都含有其属性和方法。面向对象编程(OOP)强调了封装、继承和...