面试之mybatis和hibernate的区别 mybatis和hibernate的区别面试题

\u8bf7\u7b80\u8ff0MyBatis\u548cHibernate\u7684\u533a\u522b\u3002

\u7b54\uff1aHibernate\u548cMybatis\u90fd\u662form\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\u6846\u67b6\uff0c\u90fd\u662f\u7528\u4e8e\u5c06\u6570\u636e\u6301\u4e45\u5316\u7684\u6846\u67b6\u6280\u672f\u3002
Hiberante\u8f83\u6df1\u5ea6\u7684\u5c01\u88c5\u4e86jdbc\uff0c\u5bf9\u5f00\u53d1\u8005\u5199sql\u7684\u80fd\u529b\u8981\u6c42\u7684\u4e0d\u662f\u90a3\u4e48\u7684\u9ad8\uff0c\u6211\u4eec\u53ea\u8981\u901a\u8fc7hql\u8bed\u53e5\u64cd\u4f5c\u5bf9\u8c61\u5373\u53ef\u5b8c\u6210\u5bf9\u6570\u636e\u6301\u4e45\u5316\u7684\u64cd\u4f5c\u4e86\u3002
\u53e6\u5916hibernate\u53ef\u79fb\u690d\u6027\u597d\uff0c\u5982\u4e00\u4e2a\u9879\u76ee\u5f00\u59cb\u4f7f\u7528\u7684\u662fmysql\u6570\u636e\u5e93\uff0c\u4f46\u662f\u968f\u7740\u4e1a\u52a1\u7684\u53d1\u5c55\uff0c\u73b0mysql\u6570\u636e\u5e93\u5df2\u7ecf\u65e0\u6cd5\u6ee1\u8db3\u5f53\u524d\u7684\u7ee3\u7403\u4e86\uff0c\u73b0\u5728\u51b3\u5b9a\u4f7f\u7528Oracle\u6570\u636e\u5e93\uff0c\u867d\u7136sql\u6807\u51c6\u5b9a\u4e49\u7684\u6570\u636e\u5e93\u95f4\u7684sql\u8bed\u53e5\u5dee\u8ddd\u4e0d\u5927\uff0c\u4f46\u662f\u4e0d\u540c\u7684\u6570\u636e\u5e93sql\u6807\u51c6\u8fd8\u662f\u6709\u5dee\u8ddd\u7684\uff0c\u90a3\u4e48\u6211\u4eec\u624b\u52a8\u4fee\u6539\u8d77\u6765\u4f1a\u5b58\u5728\u5f88\u5927\u7684\u56f0\u96be\uff0c\u4f7f\u7528hibernate\u53ea\u9700\u6539\u53d8\u4e00\u4e0b\u6570\u636e\u5e93\u65b9\u8a00\u5373\u53ef\u641e\u5b9a\u3002\u7528hibernate\u6846\u67b6\uff0c\u6570\u636e\u5e93\u7684\u79fb\u690d\u53d8\u7684\u975e\u5e38\u65b9\u4fbf\u3002
\u4f46\u662fhibernate\u4e5f\u5b58\u5728\u7740\u8bf8\u591a\u7684\u4e0d\u8db3\uff0c\u6bd4\u5982\u5728\u5b9e\u9645\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u4f1a\u751f\u6210\u5f88\u591a\u4e0d\u5fc5\u8981\u7684sql\u8bed\u53e5\u8017\u8d39\u7a0b\u5e8f\u8d44\u6e90\uff0c\u4f18\u5316\u8d77\u6765\u4e5f\u4e0d\u662f\u5f88\u65b9\u4fbf\uff0c\u4e14\u5bf9\u5b58\u50a8\u8fc7\u7a0b\u652f\u6301\u7684\u4e5f\u4e0d\u591f\u592a\u5f3a\u5927\u3002\u4f46\u662f\u9488\u5bf9\u4e8ehibernate\u5b83\u4e5f\u63d0\u4f9b\u4e86\u4e00\u4e9b\u4f18\u5316\u7b56\u7565\uff0c\u6bd4\u5982\u8bf4\u61d2\u52a0\u8f7d\u3001\u7f13\u5b58\u3001\u7b56\u7565\u6a21\u5f0f\u7b49\u90fd\u662f\u9488\u5bf9\u4e8e\u5b83\u7684\u4f18\u5316\u65b9\u6848\u3002
Mybatis \u4e5f\u662f\u5bf9jdbc\u7684\u5c01\u88c5\uff0c\u4f46\u662f\u5c01\u88c5\u7684\u6ca1\u6709hibernate\u90a3\u4e48\u6df1\uff0c\u6211\u4eec\u53ef\u4ee5\u518d\u914d\u7f6e\u6587\u4ef6\u4e2d\u5199sql\u8bed\u53e5\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u5b9a\u5236sql\u8bed\u53e5\uff0c\u6570\u636e\u4f18\u5316\u8d77\u6765\u8f83hibernate\u5bb9\u6613\u5f88\u591a\u3002
Mybatis\u8981\u6c42\u7a0b\u5e8f\u5458\u5199sql\u7684\u80fd\u529b\u8981\u76f8\u5bf9\u4f7f\u7528hibernate\u7684\u5f00\u53d1\u4eba\u5458\u8981\u9ad8\u7684\u591a\uff0c\u4e14\u53ef\u79fb\u690d\u6027\u4e5f\u4e0d\u662f\u5f88\u597d\u3002
\u6d89\u53ca\u5230\u5927\u6570\u636e\u7684\u7cfb\u7edf\u4f7f\u7528Mybatis\u6bd4\u8f83\u597d\uff0c\u56e0\u4e3a\u4f18\u5316\u8f83\u65b9\u4fbf\u3002\u6d89\u53ca\u7684\u6570\u636e\u91cf\u4e0d\u662f\u5f88\u5927\u4e14\u5bf9\u4f18\u5316\u6ca1\u6709\u90a3\u4e48\u9ad8\uff0c\u53ef\u4ee5\u4f7f\u7528hibernate

mybatis\u4e0d\u5b8c\u5168\u5c01\u88c5,\u5982\u679c\u8981\u5199\u5f88\u590d\u6742\u7684SQL\uff0c\u5b58\u50a8\u8fc7\u7a0b\u7b49\u7528mybatis\u76f8\u5bf9\u597d\u4e00\u70b9
hibernate\u5b8c\u5168\u5c01\u88c5,HQL\u9762\u5411\u5bf9\u8c61\uff0c\u6709\u4e8c\u7ea7\u7f13\u5b58\u6982\u5ff5\u7b49\u3002

第一章     Hibernate与MyBatis

Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。

MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html  

Hibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html_single/

1.1 Hibernate 简介

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。

1.2 MyBatis简介

iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。

第二章 开发对比

开发速度

Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。

开发社区

Hibernate 与Mybatis都是流行的持久层开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。而Mybatis相对平静,工具较少,当前最高版本3.2。

开发工作量

Hibernate和MyBatis都有相应的代码生成工具。可以生成简单基本的DAO层方法。

针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。

第三章 系统调优对比

Hibernate的调优方案



  • hibeinate濡備綍鏇挎崲鎴mybatis
    绛旓細1銆乮mplDao瀹炵幇鎺ュ彛鐨勫湴鏂硅鏀癸紝濡傦細hibernate鐢ㄧ殑HibernateSessionFactory鏀规垚mybatis鐢ㄧ殑SqlSessionFactoryBean锛2銆侀厤缃枃浠讹紝涓や釜锛歝onfiguration.xml(鎶婂鐞唖ql鐨勯厤缃枃浠舵斁鍦ㄩ噷闈紝鍏蜂綋涓嶅お娓呮);澶勭悊sql鐨勯厤缃枃浠讹紱3銆乻pring鐨勯厤缃枃浠禷pplicationContext.xml鏀瑰ソ灏辨垚浜嗭紝杩欓噷涓昏鏀筪ataSource鍜宻essionFactor...
  • 扩展阅读:mybatis-plus面试题 ... 森sir和wing为什么分手 ... mybatis常见面试题总结 ... 安卓手机如何打开 lib文件 ... mybatis中#和$区别 ... mybatis源码面试题 ... mybatis面试12道题 ... mybatis企业必问面试题 ... hr暗示你已经面试成功了 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网