MyBaits与Hibernate的区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

相同点:都是持久层的框架,都用于dao层的开发。
不同点:
1.       hibernate对sql语句做了封装,使用HQL语句操作数据库。数据库无关性支持好,在项目需要支持多种数据库的情况下,代码开发量少,sql语句性能优化困难。
mybatis使用sql语句操作数据库,不支持数据库无关性,在项目需要支持多种数据库的情况下,代码开发量相对较多。sql语句性能优化容易。
2.       hibernate配置java对象,与数据库表的对应关系,多表的关联关系查询配置复杂。mybatis配置java对象,与sql语句执行结果的对应关系,多表的关联关系查询配置简单。

 

Mybatis优势

    MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

    MyBatis容易掌握,而Hibernate门槛较高。

    MyBatis更加灵活,动态编写sql语句,提供xml标签,支持编写动态sql,解除sql与程序代码的耦合,容易上手方便后续开发团队的运维,适合需求变化频繁,大型项目,比如:互联网项目。

 

小巧、方便、高效、学习简单、半自动、移植性不好

 

 

Hibernate优势

    Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。适合需求稳定的中小型项目,比如:办公自动化系统,财务系统。

强大、方便、高效、学习复杂、全自动、移植性好

转载于:https://my.oschina.net/u/3905833/blog/2252140

你可能感兴趣的:(MyBaits与Hibernate的区别)