(转)hibernate 之hiberante.hbm2ddl.auto 参数的配置

我们在搭建环境的时候,在配置文件中有一个属性标签为:

完整配置如下

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/>

    </session-factory>

</hibernate-configuration>  

这个属性标签中有四个参数可以写,这四个参数是对数据库中插入的进行不同的操作,分别为:

(1)create-drop

(2)create

(3)update

(4)validate

下面分别来介绍他们的作用以及对数据库中的影响

(1) create-drop

create-drop:表示在hebarinate初始化时创建表格,程序运行结束的时候会删除相应的表格,在实际项目中不用

(2)create

在hibernate初始化时会创建表格,在运行结束之后不删除表格,而是在下一次运行的时候如果有旧的删掉,没有旧的,重新建表格

(3)update

只是根据映射文件去和数据库中的表对应起来,如果不一致,就更新表的结构

(4)validate

校验映射文件和数据库中的表是不是能对应起来,不能对应报错,实际中常用

注:

在使用的时候必须要慎重,我就是在当时学习的时候所设置的属性是validate,所以只要改了数据库名就会抛初始化异常,当时我郁闷了半天都不知道是怎么回事,没有往这方面想,后来才知到balidate是在没有数据库名的时候不让你创建,会抛异常的。

posted @ 2017-06-22 13:17  Mu_gua  阅读(157)  评论(0编辑  收藏  举报