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:需要灵活的。可优化、易维护。