简述 Hibernate 和 JDBC 的区别、优缺点
来源:互联网 发布:oracle数据库卸载 编辑:程序博客网 时间:2024/06/05 18:40
DBC与Hibernate在性能上相比,JDBC灵活性有优势。而Hibernate在易学性,易用性上有些优势。当用到很多复杂的多表联查和复杂的数据库操作时,JDBC有优势。
相同点:
◆两者都是JAVA的数据库操作中间件。
◆两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。
◆两者都可以对数据库的更新操作进行显式的事务处理。
不同点:
◆使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言
◆操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。
◆数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。
JDBC与Hibernate读取性能
1、JDBC仍然是最快的访问方式,不论是Create还是Read操作,都是JDBC快。
2、Hibernate使用uuid.hex构造主键,性能稍微有点损失,但是不大。
3、Create操作,JDBC在使用批处理的方式下速度比Hibernate快,使用批处理方式耗用JVM内存比不使用批处理方式要多得多。
4、读取数据,Hibernate的Iterator速度非常缓慢,因为他是每次next的时候才去数据库取数据,这一点从观察任务管理器的java进程占用内存的变化也可以看得很清楚,内存是几十K几十K的增加。
5、读取数据,Hibernate的List速度很快,因为他是一次性把数据取完,这一点从观察任务管理器的java进程占用内存的变化也可以看得很清楚,内存几乎是10M的10M的增加。
6、JDBC读取数据的方式和Hibernate的List方式是一样的(这跟JDBC驱动有很大关系,不同的JDBC驱动,结果会很不一样),这 从观察java进程内存变化可以判断出来,由于JDBC不需要像Hibernate那样构造一堆Cat对象实例,所以占用JVM内存要比 Hibernate的List方式大概少一半左右。
7、Hibernate的Iterator方式并非一无是处,它适合于从大的结果集中选取少量的数据,即不需要占用很多内存,又可以迅速得到结果。另外Iterator适合于使用JCS缓冲。
转载自:http://blog.sina.com.cn/s/blog_8b1fb3140102w9y8.html
- 简述 Hibernate 和 JDBC 的区别、优缺点
- 简述hibernate和jdbc的区别 优缺点
- Hibernate和JDBC的区别以及它们各自的优缺点
- 简述 Cookie和Session的区别和优缺点
- JDBC iBatis Hibernate的区别及各自的优缺点总结
- jdbc、hibernate、MyBatis各自的优缺点以及区别
- Hibernate与JDBC的优缺点
- hibernate跟jdbc的优缺点
- Hibernate与JDBC的优缺点
- Hibernate与JDBC的优缺点
- Hibernate跟JDBC的优缺点
- 简述mybatis和hibernate的区别
- JDBC和Hibernate的区别
- Hibernate和jdbc的区别
- JDBC和Hibernate的区别
- JDBC和Hibernate的区别
- jdbc和hibernate的区别
- hibernate和jdbc区别
- REST简介
- linux上传下载文件工具lrzsz
- mysql sql语句生成日历表
- CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总
- centos6.5安装xrdp
- 简述 Hibernate 和 JDBC 的区别、优缺点
- Python发邮件
- web前端-CSS 属性选择器 -030
- NSThread的使用
- js的数据类型
- 如何本地调试微信接口
- 查看mysql中database占用磁盘空间的大小SQL语句
- mysql select null + 5 为什么值为null
- 深入剖析Android音频之AudioPolicyService