为什么现在用 mybatis 的那么多?

本贴最后更新于 3213 天前,其中的信息可能已经时移世改

为什么要抛弃 hibernate?

hibernate 用起来不是更简单吗,不用关心 pojo 和表的映射关系,简单的查询根本不用写 sql,复杂查询也能和 mybatis 一样自己写 sql 完成。

看到有人说,hibernate 在复杂查询下比 mybatis 效率差,然而也看到网上有人测试,差别没有太大。

那么,为什么现在都在用 mybatis 呢?

  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 726 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3200 引用 • 8216 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 364 关注
  • SQL
    129 引用 • 392 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • ZephyrJung

    大概正因为可以自己写 sql 显得更灵活?

  • Angonger

    我们还没用,我自己考虑看看

  • 714593351

    @Angonger 那你们用什么呢

  • 714593351

    @Zephyr hibernate 也能自己写 sql 啊。。

  • eurry

    写 HQL,还会转换成 SQL 去数据库里执行
    倒不如自己写 SQL,SQL 优化起来应该也方便

  • ZephyrJung

    @714593351 我 hibernate 没咋用过,我记得写个条件查询还得用个什么 criteria 方法什么的= =

  • ZephyrJung

    不过其实我觉得 hibernate 更牛一点

  • 714593351

    @Zephyr 是的,不过 criteria 用的很少,不太好用。简单查询 hql 能满足,复杂查询自己写 sql 了。

  • senowang

    hibernate 的一对多,多对对的关系映射 很多跟搞不懂,学习成本高,mybaitis 学习成本低。说实在的个人感觉 mybaitis 的优势 hibernate 都有,只是很多人没有发现而已。

  • 88250

    [Hibernate] 的始作俑者相当生猛,大家有兴趣可以搜搜看

  • 714593351
  • ZephyrJung

    刚才看了下百科说 Hibernate 的创始人决定开发 hibernate 后第一件事是到街上买了本 sql 入门 orz

  • 88250

    @Zephyr @714593351 嗯,正是此人

  • highway via macOS

    @Zephyr 卧槽 我也好奇的看了下。。惊讶一脸,sql 没接触过的人 两年写出框架

  • Angonger

    @714593351 依然 SST(tapestry)

  • 714593351

    @Angonger 没听过 tapestry。。

  • 88250

    @Angonger [Hibernate] 和 [Tapestry] 用的人少的一个原因我觉得是他们太过于强调 对象状态,这个对于才拿完驾照的司机来说过于复杂。

  • Angonger

    @88250 hibernate 还有人研究,三个状态马马虎虎可以和方法对应上,T 就……了,相当懵逼,虽然公司做了封装,开发起来快,但是特殊一点的业务需求就不好办了,快不起来。

  • zjhch123 via macOS

    @88250 我记得他搞完 hibernate 就被叫去开发 ejb3.0 了吧…

  • zjhch123 via macOS

    哇我最近在学 Spring Data JPA,感觉简直牛炸天了…

  • zjhch123 via macOS

    @88250 始作俑者贬义词吧!

  • 88250

    @zjhch123 褒义词吧。。总之作者很牛。。

  • fanfanfan

    这两个都有用在项目上开发过,个人小结:
    1.hibernate 是把双刃剑,很庞大,入门难度大一些,例如,get(),load()函数不理解好 hibernate 作者的用意,就用不准
    2.mybatis 容易上手很多,但是跨数据库这点做的不好,不同数据库的语法,还是有点区别的
    总的来说,编程是一种思想,orm 工具就比较容易上手

  • jasonboy

    其实还是因为框架太大了,有些东西用不到,而且 hibernate 学习曲线不友好

  • WesleyWong

    SpringDataJPA 配合 Hibernate 才是王道

  • selector

    sql 自己写 的,自己可以去优化

  • amazing1818

    看来你没做过大项目

  • JFinal 就挺好用的

请输入回帖内容 ...

推荐标签 标签

  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 77 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 250 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    589 引用 • 3538 回帖 • 1 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 31 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 2 关注
  • OneNote
    1 引用 • 3 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 451 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 407 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖 • 3 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 54 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 3 关注
  • 导航

    各种网址链接、内容导航。

    44 引用 • 177 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 503 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 396 回帖 • 1 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 129 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖 • 1 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖 • 2 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 636 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 3 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 763 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 279 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖