JDBC,Mybatis和Hibernate的区别?

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

5个回答

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层的编码工作

u012669062
jacksong66 恩 ,清晰了很多
接近 5 年之前 回复

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

u012669062
jacksong66 是这么一回事
接近 5 年之前 回复

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的效率要高。
各有利弊,关键看你注重什么,选择什么了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问