Hibernate MyBatis JDBC

Hibernate 和 Mybatis 的区别?

两者相同点:

        1)Hibernate 与 MyBatis 都可以是通过 SessionFactoryBuider 由 XML 配置文件生成 SessionFactory,然后由 SessionFactory 生成 Session,最后由 Session 来开启执行事务和 SQL 语句。其中 SessionFactoryBuider, SessionFactory,Session 的生命周期都是差不多的。

        2)Hibernate 和 MyBatis 都支持 JDBC 和 JTA 事务处理。

Mybatis 优势:

        1)MyBatis 可以进行更为细致的 SQL 优化,可以减少查询字段。

        2)MyBatis 容易掌握,而 Hibernate 门槛较高。

Hibernate 优势:

        1)Hibernate 的 DAO 层开发比 MyBatis 简单,Mybatis 需要维护 SQL 和结果映射。

        2)Hibernate 对对象的维护和缓存要比 MyBatis 好,对增删改查的对象的维护要方便。

        3)Hibernate 数据库移植性很好,MyBatis 的数据库移植性不好,不同的数据库需要写不同 SQL。

        4)Hibernate 有更好的二级缓存机制,可以使用第三方缓存。MyBatis 本身提供的缓存机制不 佳。

Hibernate 和 JDBC 优缺点对比

相同点:

        1)两者都是 java 数据库操作的中间件、

        2)两者对数据库进行直接操作的对象都是线程不安全的,都需要及时关闭。

        3)两者都可对数据库的更新操作进行显式的事务处理。

不同点:

JDBC 是 SUN 公司提供一套操作数据库的规范,使用 java 代码操作数据库。

Hibernate 是一个基于 jdbc 的主流 持久化框架,对 JDBC 访问数据库的代码做了封装。

        使用的SQL 语言不同:JDBC 使用的是基于关系型数据库的标准 SQL 语言,Hibernate 使用的是 HQL(Hibernate query language)语言。

        操作的对象不同:JDBC 操作的是数据,将数据通过 SQL 语句直接传送到数据库中执行,Hibernate 操作的是持 久化对象,由底层持久化对象的数据更新到数据库中。

        数据状态不同:JDBC 操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而 Hibernate 操作的数 据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值