各位兆隆的学弟、学妹们,大家好。我是AJ3Q6051班的崔奕,现就职于上海一家专门从事银行软件开发的公司,在半年的开发过程中,我深深地感觉到在2年时学过的那些技术的重要性,比如Spring,Hibernate,现在变成了我每天都要使用的框架。
特别是Hibernate,我还记得在2期做毕业设计的时候,一张商品表有三、四十个字段,写商品增删改查的时候拼SQL语句非常的烦人,而且容易出错,现在是用Hibernate很容易的就可以搞定。
工作之余,我翻译了一下Hibernate官方的宣传文档,希望让大家可以感觉到,通过掌握设计精巧的框架,完全可以取代传统的使用JDBC对数据库进行的枯燥无味的操作。
Hibernate是一个高性能的O/R持久化框架。作为当前市场中最灵活最强有力的O/R解决方案,Hibernate负责将Java类映射为数据表,将Java数据类型映射为SQL数据类型。它提供的数据查询与保存机制,极大地缩短了程序开发周期。Hibernate设计目的是通过消除手工操作SQL与JDBC,将占传统开发人员95%的数据持久化编程时间节省出来。
挑战:同时使用面向对象软件和关系型数据库 既笨重又费时! 对关系型数据库来说,如果不能正确的将记录转换成对象,会导致开发成本显著增长。多数软件开发人员估计多达30%的代码是用来处理这种失败关系的。Hibernate将关系型数据及其数据表模式映射为对象模型,可以简单、优雅的应对这些挑战。
为Java应用程序提供了对象关系映射(ORM) Hibernate提供了将关系型数据模型及其相应数据库模式映射为对象模型的数据表现方式。Hibernate使用了GNU较宽松的公共许可证(LGPL),可以免费下载并在开发与部署中免费使用。此许可证也允许独立软件开发商免费嵌入和分发Hibernate,有效地降低了企业的开Hibernate消除了重复、枯燥的编码工作并且使开发人员关注于业务逻辑。无论您选择哪种应用程序开发策略——自上而下从业务逻辑模型开始或者自下而上从现有数据库设计开始,Hibernate都可以大幅度缩减开发时间。
通过ORM的自动映射,Hibernate还可以有效地缩减代码行数。在保持关系模式正常化和数据完整性的前提下,Hibernate在两种数据表现方式之间提供了一种缓冲,能够在编写Java代码时使用一种更优雅、更面向对象的方式。
性能优化 通过集中处理持久化而不是手工编码方式进行全面优化。例如二级缓存系统可配置为JBoss Cache,这将使应用程序得益于全面的缓存,而不是孤立的、手工方式的性能提升。
标准驱动开发 Hibernate在Java Swing程序,基于Java Servlet技术的程序或使用EJB SessionBean的J2EE程序中被广泛应用。Hibernate 3.0中起着关键作用的EJB 3.0 Java持久化API极大地简化了标准EJB的持久化模型。结合着Hibernate 3的Hibernate Annotations,使用独立的Java应用程序而不是EJB 3.0容器,开发人员可以完成EJB 3.0风格的程序。
企业级的可靠性和可伸缩性 Hibernate以它出色的稳定性和质量而出名 ——被数以万计的Java开发人员接受和使用证明了这点。Hibernate被设计成可以在应用服务器集群环境下工作,并提供高度的可扩展体系结构。Hibernate在任何环境下都有良好的伸缩性:它可以驱动您数百用户使用的企业内部网或服务于为数以千计用户的关键任务。
透明的持久化 Hibernate不需要接口或父类来实现持久化,任何类型或数据结构都可以被持久化。此外,Hibernate可以更快地构建程序,因为它不需要生成处理字节码。
灵活的对象关系映射和简单的API Hibernate被定义ORM的XML映射文件所驱动并生成数据库表和约束脚本。Hibernate支持各种继承映射策略和实体关系映射风格——包括一对多,一对一和多对多。Hibernate还支持双向关联、单向关联和细粒度的dependent value object。
Hibernate包含了处理应用程序代码的核心API,可定制的扩展API和需要访问持久化元数据(metadata)的Metadata API(例如处理运行时的映射建立和改动)。这些Hibernate 3的API提供了一个EJB 3.0 Java持久化功能的扩展集,意味着您可以单独使用Hibernate或与支持EJB 3.0版本的JBoss应用服务器搭配使用EJB 3.0的Entity Manager和查询API。
最低系统需求
» Hibernate 2 需要 JDK 1.2 或更高版本(推荐1.4.2和1.5.0版本) » Hibernate 3 需要 JDK 1.3.1 或更高版本 (推荐1.4.2和1.5.0版本) » 128 MB内存 » 50 MB 硬盘空间 » 400 MHz CPU
支持的操作系统
Hibernate是100%纯Java的,因此能够在 正常运行Java虚拟机(JVM)的大多数操作 系统上运行,包括Windows®,UNIX® 和 Linux®。
支持的数据库 Hibernate可以与任何支持JDBC的数据库共同使用,内置支持超过20种流行的SQL方言,包括Oracle,DB2,Sybase, MS SQL Server,PostgreSQL,mysql,HypersonicSQL,Mckoi SQL,SAP DB,Interbase, Pointbase,Progress,FrontBase,Ingres,Informix,和Firebird。
支持的标准
» Java Management Extension (JMX) 1.2 » Java Transaction API (JTA) 1.0.1B » JDBC 3.0 » Java Naming and Directory Interface (JNDI) 1.2.1 » EJB 3.0 (目前公开发行的草案版本)
面向对象查询语言 Hibernate提供了一种强大的查询语言(HQL)。它的语法和常见的SQL相似,全面支持多种形式查询。查询会被表示成数据库的原生SQL或者类型安全的标准示例查询。
在各种管理环境下操作 Hibernate可以在任何J2EE应用服务器下使用——包括JBoss应用服务器——而且能够通过JMX(Java Management Extension)MBean配置和管理。通过JTA(Java Transaction API)Hibernate的事务与J2EE应用服务器事务相结合。Hibernate还可以绕过耗时的部署步骤在应用服务器容器之外运行。这对利用 Hibernate与独立的非托管的Java应用程序来说是非常有用的功能。
高性能 Hibernate包括延迟初始化,外连接抓取,批量抓取,联合抓取,也支持乐观锁版本控制和时间戳。Hibernate不需要特殊的数据库表或字段,大量的SQL都在系统初始化时生成而不是运行时。相比直接对JDBC编码来说,Hibernate提供更优良的性能。
双重缓存 Hibernate的双层缓存结构提供线程安全,非阻塞的数据访问,会话级缓存,可选择可插拔的二级缓存和可选择的查询缓存。在和其他应用并发访问数据库的分布式应用环境中Hibernate也能正常运行。
|