hibernate 好用还是mybatis好用

news/2024/11/23 3:21:35/

转载:https://www.v2ex.com/t/518087

Mogugugugu 

    2

Mogugugugu   2018-12-16 21:53:04 +08:00 via Android

Java 混了这么多年不就是保守么。。。虽然也有创新,但是企业开发,用了什么新框架,小众框架,要重新踩坑不说,开发人员离职了谁来扛旗谁来接锅,这也就是为啥企业喜欢成熟的大众化的,开发效率 性能固然重要,但是还是要看长远的。

Sharuru 

    7

Sharuru   2018-12-16 22:11:22 +08:00   ❤️ 3

国内技术圈流行的东西和国外是有一定代差的。

就拿 Spring Boot 来说,注解配置都出来多久了,国内现在起手还是一个 xml 教你配置。
一方面语言是一种因素,另一方面我觉得百度上能搜到的教程都是屎;导致整体水准上不去。

其实 Hibernate 现在配合 Spring Data 足够易用了,简单需求可以只靠方法名就生成一堆搜索。

(然而之前还有帖子在说 ORM 是毒瘤,raw sql 才是王道。)

楼主既然眼界宽了一点,也就没必要自扰,喜欢一个用就完事儿了。

 

echo1937 

    8

echo1937   2018-12-16 22:15:13 +08:00 via iPhone   ❤️ 12

和 pivital 工程师聊过这个问题,对方的回答是,国内很喜欢手写 sql,尤其是复杂的 sql,在这点上老外这个需求就少很多。

进一步询问,这些 sql 都是干啥的,p 厂的调研结果是,给领导提供数据啊报表之类的需求多,业务需求相关其实少。

CallMeReznov 

    15

CallMeReznov   2018-12-16 22:33:06 +08:00

@echo1937 有没有专门整合这种临时需求的报表工具或者方式
领导,或者运营,产品总是对后端数据展示这块设计需求不重视,产品都上线了还是让运维到线上数据库查,查完就拉倒也不跟开发说要加个类似的参数展示.过几天又想看那就又查.
就不能搞个什么东西给他们 让他们自己查,最好还有一定的自定义的空间

alcarl 

    12

alcarl   2018-12-16 22:27:14 +08:00 via Android

国外的 java 历史比咱要早个十几年,遗留的东西和人也多,自然对新东西接受的就少一些。中国是从 2005 年左右起,互联网浪潮才开始有大规模的 java 开发,甚至到 2010 年以后才有大批量的新人入行,it 这行是什么新用什么是自然的。其实很久以前国内招 java 的基本全是要熟练 ssh 的,不过最近这些年 struts 基本没人用了,还经常出些大漏洞。hibernate 和 mybatis 相比要写很多框架需要的冗余代码,写小项目的效率不行,不适合雨后春笋般的互联网企业,spring boot 也是为了简化提高搭建效率而生的,很快就流行起来了。
从主观上说到底其实就一个原因码农天生的懒,懒癌晚期患者。。。。。。。

200123_normal.png?m=1481374171 

    17

sagaxu   2018-12-16 22:50:05 +08:00 via Android   ❤️ 7

db 访问分为这么几种
1. 写 sql,各个 db 差异要自己适配
2. 写 dsl,屏蔽了 db 差异,自动适配
3. 运行时或编译时自动合成 sql,屏蔽 db 差异

mybatis 和 jdbc 是第一种,hql 是第二种,jpa 是第三种,开发效率依次递增,表达能力依次递减。在我看来,mybatis 已经是过去式了,jpa 可以满足 80%以上的需求了,少数交给 hql,极少数直接走 jdbc(temple)。

 

HiJackXD 

    50

HiJackXD   2018-12-17 13:25:07 +08:00 via iPhone

主要原因还是 hibernate 深入太难,不看看文档一不小心就会掉入性能深坑,比如多字段的数据更新,hibernate 的 update 默认是更新所有字段(无论其他字段有没有变)但其实可以配置好只更新有变化的字段。 但是文档主要是英文,国人大部分看起来肯定没外国人流畅。但 mybatis 都是自控 sql,没多少需要注意的坑。大家就这样觉得 hibernate 性能不行, 其实是自己不会用。。

178820_normal.png?m=1466689766 

    52

kevinhwang   2018-12-17 13:39:11 +08:00   ❤️ 2

其实国内真的大部分是 mybatis,这是工程师素质导致的。
国内工程师英文比较差,较少读 api doc,遇到和 hibernate 和 jpa 的坑就会很无助。
而 mybatis 实现简单,直接查看源代码一步一步 debug 也能找出问题( hibernate 试试看)。
国外的趋势是对的,jpa 提高开发效率非常高。mybatis 和 jpa ( hibernate )都用过。
mybatis 开发慢,且注解方式非常不优雅,属于落后框架,但维护起来真的舒服。
hibernate 真的门槛比较高,若在并表的情况下(互联网很少),开发一时爽,维护火葬场。
个人看法是 hibernate+jdbc。mybatis 真的很落后,都什么年代了还 xml,注解又做不好。

ymstars 

    89

ymstars   2019-03-30 21:23:21 +08:00

看了这么多回复。忍不住了!
1. hibernate 历史悠久并不代表过时,mybatis 这种方式就是未来吗?肯定不是。数据库就是用来存数据的,联表查询一大堆只能说明数据结构设计是有问题的,只是不愿承认或者心里没底而已,竟然还有人为了排序筛选数据,把复杂的运算放到关系型数据库去做,咋不上天呀,你这是叫格力的仓管大爷去替你拿材料,顺便让他根据各种因子计算新型压缩机的功率损耗。数据分析就不应该让关系型数据库做,这叫各司其职。
2. @Narcissu5 这条语句的逻辑很有意思:“ UPDATE items SET price = 11 WHERE id = 1111 “,难道你公司更新数据的时候不需要先取出数据再更新吗?对了,但凡有一点点的并发需求,无论是乐观锁还是悲观锁,都需要查询到最新的数据不是吗,悲观的加锁,乐观的核对 Version。至于全字段回写数据库,只是不知道有这种操作而已,hibernate 明明可以指定局部字段更新的好吗
3. 报表逻辑真实存在!这也许是一种让程序员通过关系数据库把数据分析这活也干了的一种借口吧,程序员可不要乐在其中哦
4. 微服务都大行其道了,还在狂钉外键,一大堆联表查询,sql 语句多达几百行,想想都忍不住噗。定义好业务边界,拆分成独立子系统吧,不然到了一定规模,别说 hibernate 干不了这活,mybatis 手写 sql 又咋样,同样干不了,不信你给某个大厂的高流量数据钉个外键试试,看他们技术总监会不会拿刀追着你。小公司规模往往远没有达到那种撑不住的程度,大厂的高访问量业务数据早已不是这里逼逼的联表查询了。。。
5. 如果公司的数据库要从 mysql 转移到 Oracle 或者 sqlserver 或者其他的数据库,用 mybatis 的,就问你慌不慌吧。spring 官方支持 jpa 并不是没有依据的,jpa 屏蔽了底层差异。
既然 Jpa 用起来省心,没必要硬跟某些大厂的步伐,一步两步,似魔鬼的步伐!

就像淘宝技术十年里说的:

如用户模块,老的 member.taobao.com 继续维护,不添加新功能,新功能在新的模块上开发,跟老的模块共用一个数据库,开发完毕之后放到不同的应用集群上,另开一个域名 member1.taobao.com ,同时再替换老的功能,替换一个,就把老的模块上的功能关闭一个,逐渐把用户引导到 member1.taobao.com ,等所有的功能都替换完之后,关闭 member.taobao.com 上。从设计上来看,这个 member1 的二级域名应该是一个过渡状态,但我们把 member 域名的代码下线以后,发现很难把 member1 切换回 member,因为有些地方把链接写死了,于是后来很长时间里我们都是在用 member1.taobao.com 这样奇怪的域名。一年后,有另外一家互联网公司开始做电子商务了,我们发现他们的域名也叫 member1.xx.com 、auction1.xx.com ,复制得毫无保留,我们只能会心一笑。

 


http://www.ppmy.cn/news/259225.html

相关文章

家庭用洗地机到底好不好用、洗地机是不是智商税、试过才知道

洗地机是结合扫、拖、吸一体的多功能产品,它的面世很好的诠释了什么是新时代智能化的产物。它具备干湿垃圾一起清理的能力,之前我们做清洁的时候,需要扫地、擦地、清洗拖布等三步甚至四步才能完成,那现在使用洗地机之后仅需一个步…

非常好用的 npx!!!

非常好用的 npx npx是什么解决什么问题使用本地已安装的可执行工具,而不需要配置 scripts执行一次性命令使用不同的node版本运行命令 如何使用典型的使用场景Tip npx是什么 npm v5.2.0 引入的一条命令(npx),npx 会帮你执行依赖包…

非常好用的网站

爱资料工具:toolnb.com U钙网:uugai.com PickFrom:zh.pickfrom.net/ 中文加拼音注音:toneoz.com/ime/ 物种2000:www.sp2000.org.cn/ 微软爱写作:aimwriting.mtutor.engkoo.com/ 早年系统软件博物馆&#xf…

容量超大的晾衣机,还有烘干杀菌功能,云米智能晾衣机Sunny 2Pro体验

阴冷天气里,晾晒衣服是个大难题,好在这两年市面上有了晾衣机这种工具,既省地又方便,特别是那些支持暖风烘干的型号,尤其适合在冬天里使用,实际晾晒效果不亚于日晒,晚上收衣服的时候还可以打开照明灯,配合衣架升降功能,每天也能省下不少时间。 上周我就入手了一款云米智…

冲锋衣裤的正确洗涤方式

冲锋衣裤的正确洗涤方式 声明:本文系阿邦网独家稿件,未经许可,任何媒体和个人,不得全部或部分转载,违者必究。 冲锋衣冲锋裤这些压胶的衣服很多朋友都头疼应该如何洗涤,这里来详细介绍一下冲锋衣冲锋裤这类…

哪款家用洗地机好用?好用的家用洗地机推荐

洗地机是一款家庭清洁必备的工具,它可以很好的帮助我们轻松完成地面清洁工作。尤其是在厨房、卫生间等重油重污等场所,相比其他清洁工具洗地机的清洁效率非常高。不过,近年来市面上的洗地机的品牌和数量如雨后春笋一样爆发。那么市面上这么多…

【LeetCode热题100】打卡第14天:下一个排列最长有效括号

文章目录 【LeetCode热题100】打卡第14天:下一个排列&最长有效括号下一个排列⛅前言🔒题目🔑题解 最长有效括号🔒题目🔑题解 【LeetCode热题100】打卡第14天:下一个排列&最长有效括号 下一个排列 …

洗地机哪个牌子好用又实惠、真正好用的洗地机推荐

随着科技的进步,人们的生活质量也得到了提高。在清洁方面,市场上涌现出多种家用清洁设备。但是消费者常常会被这些设备的区别和特性所困惑。导致很多真心想要选购智能清洁家电的用户总是选不到真正合心意的产品!如果你正在考虑购买清洁家电&a…