hibernate 和 mybatis 的区别?
相同点:
1)都属于 ORM 框架2)都是对 jdbc 的包装3)都属于持久层的框架不同点:
1) hibernate 是面向对象的,mybatis 是面向 sql 的;
2) hibernate 全自动的 orm,mybatis 是半自动的 orm;
3) hibernate 查询映射实体对象必须全字段查询,mybatis 可以不用;
4) hibernate 级联操作,mybatis 则没有;
5) hibernate 编写 hql 查询数据库大大降低了对象和数据库的耦合性,mybatis 提供动态 sql, 需要手写 sql,与数据库之间的耦合度取决于程序员所写的 sql 的方法,所以 hibernate 的移植性要远大于 mybatis。
6) hibernate 有方言夸数据库,mybatis 依赖于具体的数据库。
7) hibernate 拥有完整的日志系统,mybatis 则相对比较欠缺。
MyBatis 的优点?
1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响, SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签,支持编写动态 SQL 语句,并可重用。
2、与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;
3、很好的与各种数据