我们知道Hibernate和Mybatis都是持久化的框架,用来处理Java程序和数据库数据交流的框架。那么二者到底有什么区别呢?或者说我们在选择持久层框架的时候,如何针对不同的需求来选用这两个框架呢?
1.Hibernate
Hibernate是一个标准的ORM(对象关系映射)的框架,入门的门槛较高,不需要程序员自己写SQL语句,SQL语句根据定义的HQL语句和hbm.xml映射文件自动的生成了,因为SQL语句是自动生成的,所以如果我们要修改SQL语句是比较困难的。
适用场景:适用于需求变化不多的小型的项目,这样的项目SQL修改的不多。如:后台管理项目:erp,orm等。
2.Mybatis
Mybatis是一个不完全的ORM框架,虽然程序员自己写SQL,当是Mybatis也实现了映射关系:
输入映射:将方法中传递过来的参数映射到了SQL语句中。
输出映射:将从数据库中查询出来的结果集映射到了普通的Java对象中。
Mybatis是可以让程序员专注SQL本身,需要程序员自己编写SQL语句,所以SQL的修改和优化比较方便。
适用场景:适用于需求变化较快的项目,比如:互联网项目。
3.企业技术选型的原则
底成本,高回报。根据项目组的技术力量进行判断。