用Hibernate写了个简单的例子,感觉真是爽啊。DAO层中少了很多很多代码,没有一句SQL语句。之前我们多以面向对象的方式组织程序,瞬时的数据也多以对象的形式存在,而持久化的数据多保存在关系型的数据库中。所以,在通常的情况下,持久化要完成的操作就是把对象保存到关系型数据库中,或者把关系型数据库中的数据读取出来,以对象的形式封装。

持久化工作主要在O(Object)和R(Relational Database)之间完成。

Hibernate就是在JDBC的方式上进行封装,以简化JDBC方式繁琐的编码工作。使用Hibernate将对象保存到数据库中再也不用编写长长的SQL语句,对应每个字段设置PreparedStatement中参数的值了。只需要简单的执行session.save(user),即可把user对象保存到数据库对应的表中。

这么简单的就把user对象保存到数据库里面了,可是它是怎么知道我们user对象中的哪个属性对应数据库中的哪一个字段的呢?原来是ORM(O/R Mapping)搞的鬼啊!这个机制中保存有对象和关系数据库表的映射信息,当数据在对象和关系数据库中转换的时候,协助其顺利的转换。

在Hibernate中,使用xml格式的配置文件来保存这些映射信息。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。在很大程度上简化了DAO层的编码工作。