为什么说hibernate 学习门槛高呢,你要说进阶门槛高我能理解,可是hibernate 都不需要学习sql就能写持久层代码,反观mybatis 还需要会sql才能学。可是网上对比两者都会说hibernate 学习门槛高🧐
历史原因
hibernate 对数据库结构提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作,比如其自带的save,saveorupdate方法等。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。学习hibernate还需要了解hql语句,跟sql语句不太相同哦。而相比于其他比如mybatis,只需要在xml中写sql语句就ok了。
1.都作为ORM框架 两者的理念不同 Hibernate存在一定的局限性
2.尤其是作为Java开发SQL是决定你薪资高低的最本质
3.Hibernate已经被很多大厂弃用了比如阿里巴巴、腾讯等都弃用了 可以小学一下没必要太深入 会写就可以了
其实不用纠结在框架的选择上,从底层技术来说,都是基于JDBC的,多掌握一些SQL的查询知识,还有优化策略,对程序性能提升有更大帮助。Hibernate在国内企业开发中使用不多,基本上都是采用mybatis或者mybatis-plus等组件。希望可以解决你的疑问。