jacksong66
2015-04-07 12:45
采纳率: 57.1%
浏览 5.3k
已采纳

JDBC,Mybatis和Hibernate的区别?

本人接触过JDBC和Mybatis和hibernate但还是不太明白 ,他们本质上的区别?还有点蒙

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • Sunshine0322 2015-04-07 17:35
    已采纳

    hibernate是利用的反射机制和jdbc的组合拼装而成的,他的效率相对与最为基本的jdbc操作的时候,效率稍微的低一些,比mybatis也低一些。但对于多数据库支持的话选择Hibernate是非常有必要的。
    Mybatis:效率比hibernate高(对于比较复杂的查询,可以优化SQL语句),SQL语句统一存放到配置文件以及SQL语句变量和传入参数的映射以及动态SQL,避免动态的sql出现。
    jdbc是基础,hibernate和mybatis都是对jdbc的封装,如果三者单单考虑查询效率的话,jdbc的效率要高。
    各有利弊,关键看你注重什么,选择什么了。

    打赏 评论
  • yiyoulu123 2015-04-07 12:59

    mybatis是把sql语句与java代码分离了...sql语句在xml文件配置的...
    hibernate是ORM框架,它对jdbc进行了封装,在分层结构中处于持久化层,
    它能建立面向对象的域模型和关系数据模型之间的映射.
    它大大简化了dao层的编码工作

    打赏 评论
  • 夜灵_雪 2015-04-07 13:08

    hibernate和Mybatis都是对JDBC进行了封装,具体点就是JDBC中sql语句与Java代码混在一起,hibernate可以自动生成sql语句,而Mybatis是将sql写在xml文件中,使用时动态生成的

    打赏 评论
  • threenewbee 2015-04-07 16:21

    jdbc是基础,换言之hibernate和mybatis都依赖jdbc,而hibernate和mybatis是两个orm框架,相比较hibernate封装程度更高,它拥有自己的hql语言。封装程度高的好处是,可以更容易适配不同的数据库。
    不同的数据库,sql有不同,如果基于sql映射,就要自己为不同的数据库写不同的查询。但是好处是,这样更直接高效和容易排错。
    关于两者的对比,可以看:http://blog.csdn.net/firejuly/article/details/8190229

    打赏 评论
  • Sunshine0322 2015-04-07 17:34

    hibernate是利用的反射机制和jdbc的组合拼装而成的,他的效率相对与最为基本的jdbc操作的时候,效率稍微的低一些,比mybatis也低一些。但对于多数据库支持的话选择Hibernate是非常有必要的。
    Mybatis:效率比hibernate高(对于比较复杂的查询,可以优化SQL语句),SQL语句统一存放到配置文件以及SQL语句变量和传入参数的映射以及动态SQL,避免动态的sql出现。
    jdbc是基础,hibernate和mybatis都是对jdbc的封装,如果三者单单考虑查询效率的话,jdbc的效率要高。
    各有利弊,关键看你注重什么,选择什么了。

    打赏 评论

相关推荐 更多相似问题