为什么不使用Hibernate?
Hibernate是全自动全映射ORM(Object Relation Mapping)框架:旨在消除SQL,将SQL语句交由框架去处理。
缺点:
1.全自动场景下,SQL由框架管理,开发人员无法进行优化(整个执行过程是一个黑盒);
2.SQL也可以由开发人员管理,但需要学习HQL,需要深入了解Hibernate的机制,加重了学习负担;
3.Hibernate是全映射框架,javaBean和数据库的列一一对应,查询时需要取出所有的数据,不符合用户需求;
为什么使用Mybatis?
我们希望将SQL交给开发人员去管理,不失去SQL的灵活性。
1、半自动化的持久层框架,将SQL语句写在配置文件中,可自定义声明和优化;
2、SQL与Java编码分离,由开发人员控制;
3、开发人员只需要掌握好SQL;