之前我以为Hibernate的映射文件只能自己手工写,可是如果表很多,每个表又有N个字段呢?那我岂不是要吐血了?今天发现原来这个东西也可以通过MyEclipse进行生成的!
在MyEclipse工作区右上角选择进入MyEclipse Database Explorer透视图。在DB Browser视图中,逐次展开节点,右键选中需要映射的表,在弹出的菜单中选择“Hibernate Reverse Engineering”在弹出的对话框中选择生成实体类和映射文件的包名。选中“Hibernate mapping file”复选框,选中“Java Data Object”复选框。然后单击“Next”按钮。
在“Configure type mapping details”对话框中,ID Generator选择“native”,继续“Next”。
在“Config reverse engineering details”中,保持所有复选框都未选中,单击“Finish”按钮。
这时就开始生成实体类和映射文件了,完成后,返回到Java透视图,即可看到已经生成了实体类和映射文件了。
用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层的编码工作。