我们参加Java培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。
本文列举的技术问题有:
- hibernate 和 mybatis 的区别是什么?
- MyBatis 的优点是什么?
- MyBatis 框架的缺点是什么?
- MyBatis 框架使用的场合有哪些?
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~
157、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 则相对比较欠缺。
158、MyBatis 的优点是什么?
1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签,支持编写动态 SQL 语句,并可重用。
2、与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;
3、很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要 JDBC 支持的数据库 MyBatis 都支持)。
4、能够与 Spring 很好的集成;
5、提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对象关系组件维护。
159、MyBatis 框架的缺点是什么?
(1)SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。
(2)SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
160、MyBatis 框架使用的场合有哪些?
(1)MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。
(2)对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是不错的选择。
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~