在Java企业级平台开发任务当中,持久层框架的选择,Mybatis和Hibernate都占据一定的市场。从大趋势来说,传统企业偏爱Hibernate,而互联网更偏爱Mybatis。今天的大数据基础分享,我们就来对Mybatis和Hibernate两个框架做个简单的对比分析。

一、关于Mybatis
MyBatis本是Apache的一个开源项目iBatis,2010年迁移到google code,并且改名为MyBatis,之后就以Mybatis命名固定下来,2013年11月迁移到Github。
MyBatis是一款优秀的持久层框架,基于Java,内部封装了JDBC,使得开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
具体来说,Mybatis支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。

二、关于Hibernate
Hibernate同样也是一个优秀的持久层框架,出身于sf.net,现在已经成为Jboss的一部分。Hibernate作为O/R mapping框架,与Mybatis常常被拿来作比。
Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。开发者往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate提供的方法完成持久层操作,甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。

三、MyBatis和Hibernate的对比
MyBatis与Hibernate都是对象关系映射(ORM)框架,都是用于将数据持久化的框架技术,都是对JDBC的封装。两者的区别是存在于多方面的:1.Hibernate是全自动,而MyBatis是半自动
Hibernate完全可以自动生成SQL。而MyBatis仅有基本的字段映射,仍然需要通过手写SQL来实现和管理。2.Hibernate编码量小会减少开发周期,MyBatis编码量大会拖慢开发周期
Hibernate是对JDBC的高度封装,使用起来几乎不用写SQL,开发的时候,会减低开发周期.MyBatis需要自己写SQL,编码量较大,会拖慢开发周期。3.Hibernate数据库移植性远大于MyBatis
Hibernate通过它强大的映射结构和HQL语言,大大降低了对象与数据库(oracle、mySQL等)的耦合性,而MyBatis由于需要手写SQL,移植性也会随之降低很多,成本很高。4.MyBatis入门简单,Hibernate入门比较难
MyBatis入门简单,即学即用。Hibernate学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要开发者的经验和能力都很强才行。5.SQL直接优化上,MyBatis要比Hibernate方便很多
由于MyBatis的SQL都是写在xml里,因此优化SQL比Hibernate方便很多。而Hibernate的SQL很多都是自动生成的,无法直接维护SQL;总之,写SQL的灵活度上Hibernate不及MyBatis。四、MyBatis和Hibernate选哪个?
在实际开发任务当中,对于持久层框架的选择,不仅仅要考虑到它们的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发。
举个简单的例子,一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择Hibernate效率就很快了,因为基本的SQL语句已经被封装好了,可以节约时间提升效率;而对于一个大型项目,复杂语句较多,选择MyBatis就会更适合,而且SQL语句的管理也比较方便。
关于大数据基础,Mybatis和Hibernate对比分析,以上就为大家做了简单的介绍了。持久层框架的选择,是大数据基础架构设计当中需要考虑的重要一环,Hibernate和Mybatis建议可以结合实际来选择。

hibernate oracle查询最大值_Java大数据:Mybatis和Hibernate对比分析相关推荐

  1. oracle 查的数据去重复数据,Oracle查询和过滤重复数据

    对数据库某些意外情况,引起的重复数据,如何处理呢? ----------------查重复: select * from satisfaction_survey s where s.as_side = ...

  2. 大数据时代的全能日志分析专家--Splunk安装与实践

    大数据时代的全能日志分析专家 --Splunk安装与实践 0.背  景 随着大家对网络安全意识的提高,企业网管理人员,必须对IT基础设置进行监控及安全事件的管理,管理数据的数量和种类非常巨大,那么就需 ...

  3. Hadoop大数据平台开发与案例分析

    关于举办"Hadoop大数据平台开发与案例分析 "高级工程师 一.课程介绍 1. 需求理解 Hadoop 设计之初的目标就定位于高可靠性.高可拓展性.高容错性和高效性,正是这些设计 ...

  4. 基于大数据的农产品价格信息监测分析系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从某蔬菜网采集所有农产品的价格数据,包括北京.上海.安徽.湖北等全国所有省和直 ...

  5. 大数据陷阱:谁有权享有大数据,谁有权分析大数据

    既要保持数据的自由流动性,又要维护每个主体在数据上的权益,这是个空前的法律难题.而创制和维护这样的数据利用秩序却是大数据应用的前提,是大数据战略得以实施的根本保证 中国信息通信研究院在第十六届中国互联 ...

  6. 大数据背景下网络信息安全分析探讨

    大数据背景下网络信息安全分析探讨 刘松溢 (华北理工大学 河北省唐山市曹妃甸区华北理工大学063210) 摘要:在经济快速发展的今天,大数据技术已被广泛地运用于社会生活中,这些技术的应用给人类的生产和 ...

  7. 大数据·实战个例“宏”分析

    大数据·实战个例"宏"分析 MBA教育体系最成功之处,就在于导入了科学的个案分析. Ps,二战最伟大的技术成功,不是原子弹.导弹.喷气机,而是流水线.流水线提供的生产力,比二战所有 ...

  8. Qlik潘应麒:大数据时代下的现代分析学

    文章讲的是Qlik潘应麒:大数据时代下的现代分析学,大数据时代的来临同时意味着我们将进入人工智能化的时代.我们所面对的数据容量,数据种类,数据变化的数据同之前都大不相同.但是,在面对这样庞大的数据量多 ...

  9. 2019你必须了解的大数据就业指导:前景分析和学习方法!

    大数据广泛应用于电网运行.经营管理及优质服务等各大领域,并正在改变着各行各业,也引领了大数据人才的变革.大数据就业前景怎么样? 01 大数据人才需求及现状分析 随着国家重视大数据,政府扶持大数据,大数 ...

最新文章

  1. 四年级计算机期末质量分析,信息技术四年级(下)质量分析——刘千慧
  2. 大工17春计算机应用基础在线测试2答案,大工14春《计算机应用基础》在线测试2...
  3. C#语言使用多态(接口与override) ——帮您剔除对面向对象多态性的疑惑
  4. html 访问节点,HTML DOM 访问节点
  5. ORB-SLAM2代码思维导图
  6. windows2003配置
  7. [C++/CLI编程宝典][5]编译与反汇编
  8. 【NOI2015】【codevs4600】【BZOJ4195】自动程序分析,我太弱了
  9. 智能终端会议系统(20)---网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系
  10. 抖音内测语音直播功能 支持8位观众同时在线聊天
  11. 设计灵感|电商美工,年年都能借鉴的新年
  12. Java购票系统实训总结_Java 购票系统实现
  13. vector的初始化和使用
  14. 浙江大学计算机专业介绍,浙江大学计算机科学与技术专业课程设置
  15. 物联网环境下信息安全问题与对策
  16. 中国水疗产品行业市场供需与战略研究报告
  17. AR单片机编程软件的菜单栏功能及用法
  18. 亲民地理38期-江西极顶武功山(下)
  19. EasyPR--开发详解(5)颜色定位与偏斜扭转
  20. es6转es5的转码器babel的安装与使用

热门文章

  1. 6.4.3树和森林的遍历
  2. HTML期末作业-旅游网页
  3. HTML期末作业-宠物网
  4. mysql数据库作业_mysql数据库操作练习
  5. 动易php,动易数据转成dedecms的php程序
  6. 软考 计算机网络,软考-计算机网络总复习
  7. java 泛型 擦除_Java泛型和类型擦除
  8. 数据结构之排序算法:基数排序
  9. (计算机组成原理题目题型总结)第二章:数据的表示和运算
  10. 6-6-1:STL之map和set——set的基本使用