- 我认为Hibernate是一款真正意义上的ORM框架,修改对象状态去修改数据库。而Mybatis某种意义上实际上是面向表结构,直接依赖于SQL语句
- Hibernate不需要写SQL语句,一些基础的API都已经实现。而Mybatis需要写SQL语句,一些基础的都需要实现,当然现在有Mybatis-plus
- 因为Hibernate不需要写SQL语句,所以Hibernate相较于Mybatis,他的数据库可移植性高,改变数据库Hibernate仍然能正确执行,但Mybatis不可以
- 因为Hibernate不需要写SQL语句,所以Hibernate最后拼接的SQL语句相较于Mybatis可视性差,不方便SQL调优
最后,我认为选用哪种框架,应该根据我们的业务来定。比如我们的互联网项目,使用增量开发,迭代速度比较快,同时项目体量大,使用到很多复杂的SQL语句,这时候用Hibernate就不太好,所以我选择主要技术栈是Mybatis