JDBC,Mybatis和Hibernate的区别?

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

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

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

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

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

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