4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据库计算、跨库计算。
成熟度:4星。iBatis经过了十几年市场的考验,是我最喜欢的框架之一。但对缓存的支持不足一直是缺陷。
低耦合性:2星。SQL可以无缝替换,但仍然是针对具体数据库的SQL。事实上后者是数据库的问题,厂商要粘住客户,所以SQL不兼容,让你难以迁移;但程序员不愿被粘住,非要迁移。
脚本编写:3星。它就是SQL。
集成:4星。基本没有难度,初学者半天时间可以熟练掌握。
界面友好性:4星。没有图形化计算过程设计界面,但可以借用SQL工具。
性能:3星。性能比SQL略低,主要是resultSet和map/list之间转化需要多花费一点时间,另外缓存支持不如hibernate好(综合比起来两者区别不大)。其实我认为引入ORM的同时引入性能问题就是失败的。
复杂计算:3星。同SQL,比hibernate强。
大数据支持:1星。同SQL。
非数据库计算:1星。同SQL。
跨库计算:1星。同SQL。
调试方便性:1星。同SQL。
5、R语言
R语言不易和JAVA集成,但强大的计算能力和广泛的社区支持,以及大数据的特性使我不得不提到它。另外跨库的计算、非数据库的计算、模型计算也是它的强项。当然,在各种数据计算层中,它也是最难学习的。
成熟度:5星。R语言的历史仅次于SQL,无数的社区在热烈讨论R,尤其是大数据时代。
低耦合性:4星。R语言和集算器在这方面没区别。
脚本编写:3星。这方面R和集算器很像,区别是集算器更敏捷代码更灵活,对结构化数据的支持更专业,而R内置了大量模型算法。所以基本持平。
集成:1星。R不是JAVA架构,很难集成进JAVA,本来性能就不高,集成后更是大幅度降低。
界面友好性:3星。有专门的IDE界面,但很粗糙,实际价值不大,这也是开源产品的通病。
性能:2星。全内存运算,难以应付大数据量。
复杂计算:5星。同集算器类似。
大数据支持:3星。R与Hadoop的结合机制,但JAVA与非JAVA体系之间的结合并不容易,性能损失较大。
非数据库计算:5星。同集算器类似。
跨库计算:5星。同集算器类似。
调试方便性:2星。勉强算有调试功能,但很不专业。
分享到:
相关推荐
java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法 java几种分页方法java几种分页方法java几种分页方法
### Java一次性查询处理几百万数据解决方法 在Java开发中,处理大数据量是常见的需求之一,特别是当数据规模达到几百万级别时,如何高效、稳定地处理这些数据变得尤为重要。本文将详细介绍一种Java一次性查询处理几...
本文将详细介绍几种不同的方法来计算两个日期之间的差值,并提供相应的代码示例。 #### 1. 使用 `SimpleDateFormat` 和基本计算 这种方法涉及将日期格式化为字符串,然后解析回日期对象,最后通过计算毫秒值来得出...
在Java中,对象的大小通常可以通过以下几种方式来计算: 1. **使用Java API**:Java 9及以上版本引入了一个名为`sun.misc.Unsafe`的API,虽然它不是公开的,但可以通过反射访问。`Unsafe`类提供了一个`...
基于Java的网格计算框架为解决大规模计算问题提供了一种高效、可靠的解决方案。通过充分利用Java语言的特点和技术优势,可以构建出功能强大且易于扩展的网格计算系统。未来的研究可以进一步探索如何优化网格计算框架...
综上所述,基于Web的Java并行计算为解决大规模并行问题提供了一种创新的方法。通过利用Java的特性,不仅可以提高计算效率,还能有效地利用互联网上的闲置计算资源。未来,随着技术的不断进步,我们有理由相信这种...
本篇文章将详细讲解在Oracle数据库环境下,Java实现分页的三种方法。 一、JDBC手动分页 1. **设置SQL语句**: 使用`LIMIT`和`OFFSET`在Oracle中实现分页,但由于Oracle不直接支持这两个关键字,我们可以使用`ROWNUM...
Java作为一种广泛使用的编程语言,同样可以实现XIRR的计算功能。本工程提供的就是一个Java实现XIRR的例子,它包含了测试类,可以直接运行并验证结果的准确性。 XIRR的计算基于现金流的时间价值理论,它考虑了资金的...
本文将详细探讨C回调Java的几种方法。 1. **注册本地方法** 在JNI中,Java虚拟机(JVM)启动时会加载一个`JNI_OnLoad`函数,这是C代码与Java世界接触的第一个入口。在这个函数中,我们可以使用`RegisterNatives`...
为了解决这个问题,我们可以采用以下几种策略: 1. **分批导出**: - 考虑将大数据集分成若干小批次,每次只处理和导出一部分数据。例如,可以按行或按特定数量的数据进行划分。 - 使用`java.util.Iterator`遍历...
10. 动态规划和递归:这两种方法常用于解决复杂问题,如最短路径、背包问题等。理解和掌握它们能帮助我们编写高效的代码。 11. 并查集和堆:并查集用于处理合并和查询不相交集合的问题,堆(如优先队列)则在排序和...
Java编程的计算机是一种使用Java语言开发的软件应用,它提供了用户界面(UI)来执行基本或复杂的计算操作。这个小型计算机项目通常会涵盖以下几个关键知识点: 1. **Java基础**:Java是面向对象的编程语言,由Sun ...
本程序采用了一种基本的方法,即根据两个日期之间的天数差以及已知的一个星期中的某一天(例如星期一)来计算另一个日期是星期几。 ### 2. 日期计算中的闰年判断 闰年的判断是日期计算中非常重要的一步,因为闰年...
Java编程语言在处理大型数据集时,经常需要借助外部库来执行特定的数学计算,比如矩阵操作、特征值计算等。Matlab是一款强大的数学软件,它提供了丰富的数值计算功能,但其原生环境并不适合处理实时或大规模的服务器...
总的来说,Java处理五百万数据的排序需要结合高效的算法和合理的内存管理,通过外部排序和并行计算等技术,能够在不消耗大量内存的情况下实现高效排序。当然,具体实现还需要根据实际情况进行优化,包括硬件资源、...
例如,它可以创建几个`Course`对象,然后调用`calculateGPA`方法来测试GPA的计算是否正确。`Java.jpg`可能是与课程相关的图片,例如一个关于Java编程的示例代码截图。 总结来说,通过Java的构造方法重载,我们可以...
"JAVA语言开发的水蒸气计算包.rar"是一个专为火电厂热力设备性能计算设计的软件工具,它利用Java的强大功能和跨平台特性,为用户提供了一种高效、准确的水蒸汽热力性能计算解决方案。 水蒸汽计算在火电厂中至关重要...
Java 实现的数据采集系统是一种基于 Java 语言开发的软件应用,用于从各种数据源收集、处理和存储数据。数据采集是大数据分析、机器学习和业务智能等领域的基础步骤,能够帮助我们从海量信息中提取有价值的数据。在...
在实际项目中,`GetSPIHis.java`可能包含多个方法,如`connectToDB()`(建立数据库连接)、`getPrecipitationData()`(获取降水数据)、`calculateRanks()`(计算秩)、`applyDistribution()`(应用概率分布函数)、...
总的来说,Java处理数学表达式的方式多样,`jeval`库提供了一种便捷的解决方案,适用于大部分简单的到中等复杂的计算需求。对于更复杂或定制化的需求,可以考虑使用自定义解析器或Java的`ScriptEngine`。理解并熟练...