Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate column属性,包括介绍Hibernate充分利用实现特殊化的属性等方面。
Hibernate是一个对象-关系映射工具。它的任务是映射对象到关系型表,反之亦然。所以,我们必须告诉Hibernate如何映射列到JavaBean的属性上。这个是通过Element.hbm.xml文件来完成的。这份文件里面包含的信息用来授予Hibernate从表里面拷贝数据到Elements JavaBean的权利。如果我们使用Hibernate来更新数据,Element.hbm.xml文件里的信息将被用来解析从Elements JavaBean来的数据来生成更新的SQL语句.
- <?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-
//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sf.net/hibernate-mapping-2.0.dtd"><hibernate-mapping>- <class name="com.strutsrecipes.hibernate.beans.Element" table="elements">
- <id name="id" column="id">
- <generator class="native"/>
- </id>
- <property name="name" column="name"/>
- <property name="number" column="number"/>
- <property name="mass" column="mass"/>
- <property name="symbol" column="symbol"/>
- </class></hibernate-mapping>
我们声明从JavaBean的id属性到表的id列的映射。因为property和Hibernate column属性都有相同的值,我们本来可以忽略Hibernate column属性,但是为了清晰起见,我们还是把column列出来。
一旦映射文件被详细的分析,那一切都非常的明晰了。它简单地声明了表与类的映射和JavaBean属性与表的列名的映射。接下来我将告诉你在哪里放置这个文件。
接下来,我们通过声明环境信息来配置Hibernate。在下面我们展示Hibernate.cfg.xml文件。
- xml version='1.0' encoding='utf-8'?>//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>- <session-factory>
- <property name="dialect">net.sf.hibernate.dialect.HSQLDialect< SPAN>property>
- <property name="connection.driver_class">org.hsqldb.jdbcDriver< SPAN>property>
- <property name="connection.username">sa< SPAN>property>
- <property name="connection.password">< SPAN>property>
- <property name="connection.url">jdbc:hsqldb:hsql://127.0.0.1< SPAN>property>
- <property name="show_sql"> < SPAN>property> <property name="">true< SPAN>property>
- <mapping resource="/com/strutscookbook/hibernate/beans/Element.hbm.xml"/>
- < SPAN>session-factory>
- < SPAN>hibernate-configuration>
我们以指定数据库实现方言开始,允许Hibernate充分利用实现特殊化的属性。我们声明Hypersonic方言。我们可以参考Hibernate文档以选择数据库相应的方言。然后我们声明数据库驱动。必须保证这个驱动在应用程序的classpath上。然后我们声明数据库的用户名,数据库密码,连接数据库的URL。接下来我们通知Hibernate在日志里显示运行时生成的SQL语句。
【编辑推荐】