`
kirayuan
  • 浏览: 39015 次
文章分类
社区版块
存档分类
最新评论

Hibernate为java程序员带来了什么

 
阅读更多

最近在看Hibernate框架,写点零碎的心得吧。

Hiberante最初被设计来管理平衡Java的面向对象特性和DB的面向连接特性。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

那么,hibernate在哪些方面为我们编程提供了方便?

第一,对数据库设计管理,更加规范,可操作性强。举简单的例子,程序中对一个实体进行操作,如何在数据库中进行对应操作。在使用Hibernate之前,你修改一个学生信息,必然需要在多个表中进行更新。查找也同样在多个表中取得数据,这样你不得不在数据库操作的java类中做相关操作,而这种做法其实是面向过程的,而且容易出错,使程序员陷入担心(程序员总是会怀疑,我写的sql语句是否真的完成所有映射关系),和崩溃的边缘(一旦这时加入新的表,产生新的映射关系,不得不对所有相关的sql语句进行修改)。在Hibernate引入后,你在编程前就可以把这些繁琐的工作用Hibernate设置好(映射),OK,下次我们需要修改一个实体就只用对该实体操作,剩下的Hibernate可以为你完成。

第二,兼容性。Hibernate还有一个特点,就是对数据库方言的翻译。不同的数据库可能都使用sql语言,但sql语言的标准却不唯一,工程在需要更换数据库时存在出错的危险。Hibernate采用hql语言,进行了面向对象封装,标准唯一,对底层数据库能很好兼容。打个比方,各种数据库的sql标准是gb2312 ,gbk,那么hql就是utf-8。

第三,操作性能的提高。cache机制,缓存往往是提高系统性能的最重要手段,对数据起到一个蓄水池和缓冲的作用。Cache对于大量依赖数据读取操作的系统而言尤其重要。在大并发量的情况下,如果每次程序都需要向数据库直接做查询操作,它们所带来的性能开销是显而易见的,频繁的网络舆,数据库磁盘的读写操作都会大大降低系统的性能。此时如果能让数据库在本地内存中保留一个镜像,下次访问的时候只需要从内存中直接获取,那么显然可以带来不小的性能提升。引入Cache机制的难点是如何保证内存中数据的有效性,否则脏数据的出现将会给系统带来难以预知的严重后果。虽然一个设计得很好的应用程序不用Cache也可以表现出让人接受的性能,但毫无疑问,一些对读取操作要求比较高的应用程序可以通过Cache获得更高的性能。对于应用程序,Cache通过内存或磁盘保存了数据库中的当前有关数据状态,它是一个存储在本地的数据备份。Cache位于数据库和应用程序之间,从数据库更新数据,并给程序提供数据。

第四,安全性能的提升。最近比较火热的sql注入技术,对号称安全性良好的B/S模式产生了极大的冲击,黑客高手用简单的sql语句+浏览器就可以对服务器端的db进行破坏。最近看的一篇sql注入入门:http://blog.sina.com.cn/s/blog_5dcf0e570100ch57.html.原理是利用非法嵌套sql语句代码给服务器端程序执行,骗过检验程序。而hql语句加上hibernate自身的安全性为WEB安全注入了重要的一剂强心针。

最后,就是代码自动生成功能,可以根据db中的表直接生成Ob.java和ObDAO.java文件,set,get基本method,数据库查询的基本method。数据库连接配置的简化。这里属于敏捷开发的范畴,也是框架的基本使命之一。

期待下一篇吧:hibernate实战入门!!!

分享到:
评论

相关推荐

    Java程序员面试宝典

    《Java程序员面试宝典》附带1张DVD光盘,内容为《Java程序员面试宝典》所有面试题的多媒体教学视频(共14.5小时)及免费赠送的55小时Java教学视频和5.5小时算法教学视频。授人以鱼,不如授人以渔。《Java程序员面试...

    java面试题大全 初级程序员面试 Hibernate Struts

    Java程序员面试三十二问.doc Java经典试题及答案.doc java面试笔试题大汇总.doc 企业面试题精选.doc 9JAVA代码查错.doc jdbc.doc Struts.doc Hibernate?.doc

    java程序员的就业指导(重点).docx

    本文旨在为 Java 程序员和工程师提供一份详细的就业指导,涵盖了 Java 程序员所需要具备的专业技能、面试前的准备、职业规划等方面的内容。 一、Java 基础知识 * 熟练使用 Java 语言进行面向对象程序设计 * 掌握...

    java程序员必备的面试宝典秘籍.pdf

    五、JDBC & Hibernate: 110 — 121 题 31 — 35 页 六、Web: 122 — 161 题 35 — 44 页 七、EJB & Spring: 162 — 179 题 44 — 47 页 八、数据结构& 算法& 计算机基础: 180 — 187 题 47 — 51 页 九、C++: ...

    中软国际Java程序员机试题

    Java 程序员机试题是中软国际为招聘Java程序员所设计的一种机试题,旨在考察应聘者的Java编程能力和软件开发能力。该机试题要求应聘者在Eclipse开发环境和Tomcat应用服务器上,使用JAVA技术并采用MVC模式实现用户...

    java程序员常用帮助文档

    ajax.chm/DWR中文文档.pdf/EJB轻松进阶.chm/Hibernate_3.2.0.chm/Hibernate_api.chm/j2eeAPI.chm/Spring_2.0_Reference_zh_...

    java_程序员必备

    博学:掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。

    Java程序员最新简历模板,熟悉Struts2,Hibernate,Spring等框架,精通Servlet,JSP,JSTL等

    我是一个有三年工作经验的Java程序员,熟练掌握Java语言及其核心技术,包括JavaSE,JavaEE,JavaME等。近两年来一直从事JavaWeb开发,熟悉Struts2,Hibernate,Spring等框架,精通Servlet,JSP,JSTL,EL,Ajax等技术。 我具有较...

    Hibernate工作原理及为什么要用

    Hibernate 工作原理及为什么要用 Hibernate 作为一个开放源代码的对象关系映射框架,对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。下面将详细介绍 Hibernate 的...

    专门为java程序员准备的API系列之五:Hibernate中文参考文档(3.1+3.2)

    看过本系列的都知道,本人上传的都是大家想找又不好找的资料,本资料为Hibernate中文帮助文档,一个是Hibernate3.1的,一个是Hibernate3.2的,都是CHM格式,希望大家喜欢

    Hibernate:java对象持久化技术详解

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    超详细Java程序员的系列教程,从0学习Java

    Hibernate ZooKeeper Kafka Redis 数据库 MySQL Oracle MogonDB PostgreSQL Memcached RabbitMQ Maven Git Nginx ELK Netty Linux 算法 程序员 思维导图 关于认知 电子书籍 我的PDF 读者系列 面试题系列 每日一题...

    java程序员必备帮助文档,大部分是中文

    本资源包含css.chm,Hibernate_api.chm,JavaScript语言参考手册.chm,JDK_API_1_6_zh_CN.CHM,jquery1.7 中文手册.chm,jQuery 1.7(带UI英文版).chm,servlet.chm,...是java程序员的开发利器,希望能对大家有所帮助

    hibernate正向工程和方向工程

    hibernate正方向工程介绍,MyEclipse使用hibernate正向工程,hibernate的正向工程是指从java实体类生成数据库表的过程,这种过程符合java程序员面向对象编程的思想,也是工程设计的时候使用比较多的一种思想。...

    Java Web整合开发完全自学手册:Struts+Hibernate+Spring+Eclipse源码

    Struts+Hibernate+Spring+Eclipse已经成为轻量级开发J2EE的标准配置,被称为SHS经典组合,这也是目前Java程序员必须掌握的技能。由于使用范围广也使它们的版本更替非常之快,尤其是Java5推出以后这些项目都采用了...

    java程序员笨鸟先飞.rar

    该资源非常的好,写的非常的细节,主要围绕通讯编程、css、xml、设计模式、struts、hibernate、spring、jquery等几个点由浅入深的进行讲解,非常的好

    java程序员推荐阅读的书籍

    在这份推荐阅读书籍的名单中,我没有列举流行的软件框架类学习书籍,例如Struts,Hibernate,Spring之类,也没有列举AJAX方面的书籍。是因为这类书籍容易过时,而上述的大半书籍的生命周期都足够长,值得你去购买和...

    程序员java面试题汇总(通关宝典).zip

    程序员java面试题汇总 【资源介绍】 适宜人群:准备跳槽的初/中/高级 Java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 Java 技术栈的人 Java 面试官 资源分为十九个模块,分别是: Java 基础、容器、多线程、...

    java程序员面试葵花宝典

    java常用基本知识大全,包含线程,内部类,struts,spring,hibernate的详细介绍txt版

Global site tag (gtag.js) - Google Analytics