mybatis简介(一)

JDBC、Hibernate、Mybatis区别

1.JDBC

java程序都是通过JDBC连接数据库的,从而实现通过SQL对数据库编程。JDBC实际就是一系列规范,但是它只定义了接口规范,而具体的实现交由各个数据库厂商去实现。因为每个数据库都有其特性,这些是java规范没有办法确定的,所以JDBC就是一种典型的桥接模式。

缺点:

(1)工作量大,需要先连接,然后再处理事物与数据类型,还需要操作Connection对象,Statement对象与ResultSet对象,并关闭他们。

(2)要对JDBC编程可能产生的异常进行捕获并正确关闭资源。

因为他的复杂,ORM模型出现了。

2.ORM模型(对象关系映射)

所有的ORM模式都是对JDBC的封装,只是封装的强度不一样。

主要解决数据库数据和POJO对象(j简单的JAVA对象)的相互映射。

3.Hibernate

hibernate通过xml映射文件(注解)直接操作数据库,全表映射

优势:配置了映射文件与数据库连接文件后,就可以通过session操作。

提供了级联、映射、缓存。

缺点:

(1)全表映射的不便,更新时需要发送所有的字段

(2)无法根据不同的条件组装不同的SQL

(3)对多表关联和复杂SQL查询支持较差

(4)不能有效的支持存储过程

(5)HQL性能较差

4.mybatis

(1)半自动映射,需要匹配SQL、POJO与映射关系,hibernate不需要提供SQL

(2)可以配置动态SQL、优化SQL

(3)自动映射,SQL列名与POJO的属性名一致

5.怎样选取

hibernate:场景不太复杂

mybatis:需要灵活的。可优化、易维护。

原文地址:https://www.cnblogs.com/jqqiang/p/7617615.html