《妙解Hibernate3.x》读书笔记三-配置文件和映射文件的补充

我们在做项目过程中,使用了辅助工具Hibernate Tools,从而不用手写配置文件,只需自己创建数据库即可。所以稍微做下介绍。

在映射文件中,都指出了类的属性类型,以便于与数据库中的数据类型对应。一般都使用Hibernate的中间类型,让hibernate进行自我转换,有-byte,boolean,yes_no,date,time,string,text,clob,blob等。也可以自己直接指定java数据类型。

主键的生成方式

上篇笔记使用的主键生成方式为 <generator class="identity" />,还有以下方式:

native-根据数据库类别,使用数据库原生的主键生成方式,如mysql的auto_increment。

assigned-主键的生成由应用程序生成和赋值。

identity-使用数据库的自增方式。

sequence-适用于oracle,使用数据库的sequence方式。

increment-hibernate使用一个表来存储主键,当有新纪录产生时,该表内的主键值就会递增。

hilo-hibernate使用high/low算法来生成主键,hibernate维护一个默认名为hibernate_unique_key的表,用来生成主键。

还有seqhilo/uuid.hex/guid/select。

Oracle使用较多,说下sequence:

<id name="id" column="item_id" type="java.lang.Long"> <generator class="sequence"> <!-- SEQ_ITEM_ID为在数据库中已定义好的sequence的名 --> <param name="sequence">SEQ_ITEM_ID</param> </generator> <id>

package解释

<hibernate-mapping package="test.package">中的package属性值为包名,用于声明该配置文件用到的类均属于此包。<class>中name值无需写出包名。

mutable解释

<class name="xxx" mutable="false">,当类实例不能改动时,用这样的配置强制其为只读。

系统配置文件(cfg.xml)

<!--SessionFactory启动时,根据类配置文件,删除已有的表,生成新表--> <property name="hibernate.hbm2ddl.auto>create</property> <!--根据类配置文件,更新表--> <property name="hibernate.hbm2ddl.auto">update</property> <!--控制台输出Hibernate生成的sql,便于调试--> <property name="show_sql">true</property> <!--sql在控制台有格式的显示--> <property name="format_sql">true</property> <!--显示sql时,在注释里加入sql产生的原因--> <property name="use_sql_comments">true</property>

你可能感兴趣的:(《妙解Hibernate3.x》读书笔记三-配置文件和映射文件的补充)