接下来我们比较下这两个持久层的框架的不同:
hibernate:
1.是一个标准的orm(Object Relational Mapping)框架,入门门槛比较高
2.有自带的hql语言,不需要程序员来写sql,sql会自定生成
3.对于sql的优化和修改比较困难
4.适用于需求变化不多的中小型项目,比如后台管理系统,erp,orm,oa等
5.Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。
mybatis:
1.我们在代码中看到,其实mybatis主要就是对于mapper文件中的sql进行编写,需要我们自己去定义sql的输入和输出映射
2.sql修改优化比较方便
3.我理解它是一个半orm,因为虽然是要自己写sql,但是也存在映射关系。
4.适用于需求变化比较多的项目,比如互联网项目(京东,需要不断上线新要求)
5.mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。