Hibernate 具有简单易用、灵活性强、扩展性强等特点,大大提高了程序的开发效率。
使用传统的 JDBC 开发小型应用系统,并不会有什么麻烦,但是对于大型应用系统的开发,使用 JDBC 就会显得力不从心。
例如对几十、几百张包含几十个字段的表进行插入操作时,编写的 SQL 语句不但很长,而且繁琐,容易出错;在读取数据时,需要编写多条语句从结果集中取出各个字段的信息,工作量非常大。
为了提高数据访问层的编程效率,Gavin King 开发了一个当今最流行的 ORM(即 Object-Relational Mapping 对象关系映射)框架—— Hibernate 框架。
ORM 就是利用描述对象和关系型数据库之间的映射信息,自动将 Java 应用程序中的对象持久化到关系型数据库的表中。通过操作 Java 对象,就可以完成对数据库表的操作。可以把 ORM 理解为关系型数据和对象之间的一个纽带,开发人员只需要关注纽带一端映射的对象即可。
与其他操作数据库的技术相比,Hibernate 具有以下几点优势。
- Hibernate 对 JDBC 访问数据库的代码进行了轻量级封装,大大简化了数据访问层繁琐的重复性代码,并且减少了内存消耗,加快了运行效率。
- Hibernate 使用 Java 的反射机制,而不是使用字节码增强程序类,并实现了透明性。
- Hibernate 的功能强大,映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。
- 可扩展性强,由于源代码的开源以及 API 的开放,当本身功能不够用时,可以自行编码进行扩展。