这两天工作较少,想整理一下以前编写的项目,结果发现一些项目保存的数据库文件不是最新版的。于是想起来Hibernate配置中有个配置,可以通过对其配置在第一次运行项目时生成数据库结构。
在hibernate.cfg.xml中有这样的一个配置参数:
<property name="hbm2ddl.auto">update</property>
它包含4个属性:
- create : 会根据你的model类来生成表,但是每次运行都会删除上一次的表,重新生成表,哪怕2次没有任何改变 ;这就是导致数据库表数据丢失的原因。(如果使用此方法生成表结构,建议:删除原带部分表结构的数据库,重新建立空数据库,再运行项目。)
- create-drop : 根据model类生成表,但是sessionFactory一关闭,表就自动删除 (即:加载hibernate时创建,退出是删除表结构)
- update : 最常用的属性,也根据model类生成表,即使表结构改变了,表中的行仍然存在,不会删除以前的行。则在运行应用程序时(第一次),会自动建立起表的结构(前提是先建立好数据库)。要注意的是,当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会
- validate : 加载hibernate时,验证创建数据库表结构。(只会和数据库中的表进行比较,不会创建新表,但是会插入新值)
所以,一般情况下,可以先用create属性运行一次,,然后改用update,以免数据丢失。
分享到:
相关推荐
要使用hbm2ddl,你需要在Hibernate配置文件(如hibernate.cfg.xml)中启用auto-import属性,并指定对应的schema更新策略。 2. hbm2java: hbm2java工具则将Hibernate的映射文件转换为Java实体类。这些实体类是与...
综上所述,通过正确配置`hibernate.hbm2ddl.auto`、实体类扫描和数据源,可以实现Hibernate自动创建和管理数据库表的功能,极大地简化了开发过程。但务必注意,在生产环境中谨慎使用`create`和`create-drop`,以防止...
`hbm2ddl`(Hibernate to Database Mapping and Data Definition Language)属性是Hibernate配置文件中的一个关键选项,它决定了Hibernate如何处理数据库表结构。通过设置不同的`hbm2ddl`属性值,开发人员可以灵活地...
Hibernate常用操作示例,包含详细注释说明,数据库初始化文件。使用和学习请参考:http://blog.csdn.net/daijin888888/article/details/51692942
5. **hibernate.hbm2ddl.auto**:此属性决定了Hibernate在启动时如何处理数据库模式。例如,`create`表示每次启动时都创建新表,`update`则更新已有表结构,`validate`验证表结构是否匹配,`none`则不做任何操作。 ...
主要的功能有: 用户登录 对图书的增删改查搜索分页 使用的数据库为mysql ...6.将hibernate.hbm2ddl.auto的值改为update,这样重新启动项目就不会重新创建表 整体的功能实现,没有表单的验证。美观程度一般。
3. **Hbm2ddl.auto**:这是一个重要的自动数据库操作设置,可以有以下几种值: - `create`:每次启动应用时,会删除已存在的表并重新创建,数据会丢失,因此不适合生产环境。 - `update`:仅更新已有表的结构,...
3. **Hbm2ddl.auto**: 这个属性决定了 Hibernate 如何自动管理数据库的元数据。有以下几种模式: - `create`: 每次启动应用时,Hibernate 会删除现有的表并重新创建它们,这会导致数据丢失。 - `update`: ...
在Java的ORM框架Hibernate中,这个功能通过配置文件hibernate.cfg.xml中的一个属性`hibernate.hbm2ddl.auto`实现。这个属性控制了Hibernate在应用启动时对数据库表的操作行为。 `hibernate.hbm2ddl.auto`的可选值...
部署时,可修改web-inf/config/spring/applicationContext.xml文件,修改相应的数据库信息,把把<prop key="hibernate.hbm2ddl.auto">update 改为<prop key="hibernate.hbm2ddl.auto">create即可自动创建表 我自己写的...
`hibernate.hbm2ddl.auto`控制数据库表的自动管理,`update`表示在启动时更新数据库结构。`hibernate.show_sql`开启后,Hibernate会打印执行的SQL语句。 3. SessionFactory配置: SessionFactory是Hibernate的...
本压缩包“根据hibernate配置文件生成数据库.zip”包含了一些关键资源,帮助开发者理解如何使用Hibernate工具hbm2ddl自动生成数据库结构。以下是对这些资源的详细解释: 1. **使用Hibernate的工具hbm2ddl根据你的...
- `hibernate.hbm2ddl.auto`: 自动创建、更新或验证数据库表结构,常用于开发环境。 5. **使用流程**: - 创建实体类并编写.hbm.xml映射文件。 - 配置hibernate.cfg.xml,设定数据库连接信息。 - 初始化...
- `hibernate.hbm2ddl.auto`: 自动创建/更新数据库模式,可选值有`create`, `create-drop`, `update`, `validate`等。 - `hibernate.connection.zero_data_date_format`: 日期和时间的零值格式化字符串。 - `...
<prop key="hibernate.hbm2ddl.auto">update <value>com/example/Entity1.hbm.xml</value> <value>com/example/Entity2.hbm.xml</value> ``` 配置完成后,需要创建HibernateTemplate或...
- **hibernate.hbm2ddl.auto**: 自动管理数据库模式的策略,如`create`(每次启动时创建新表)、`update`(更新现有表结构)、`validate`(验证模式是否匹配,不作任何修改)等。 ### 3. 示例配置 以MySQL为例,一...
`hibernate.hbm2ddl.auto`参数是Hibernate配置中一个关键的属性,它控制着Hibernate在启动时对数据库表的操作行为。这个属性的值可以设置为以下几个选项: 1. **create**: 当设置为`create`时,Hibernate会在应用...
标题"Hibernate自动创建表结构示例--Oracle"表明我们将使用Hibernate在Oracle数据库中自动生成表结构,这是通过Hibernate的`hibernate.hbm2ddl.auto`配置属性实现的。这个属性可以设置为"create"、"update"、...
当应用程序启动并建立数据库连接时,Hibernate会自动检查`hibernate.hbm2ddl.auto`的设置,并根据实体类创建表。如果表已经存在,`create`策略会删除旧表并重新创建,因此在生产环境中通常使用`update`或`validate`...
其中,`hibernate.hbm2ddl.auto`属性决定了Hibernate对数据库表的操作。常见的取值有: - `create`:每次启动应用时,都会删除旧表并重新创建新表,适合开发阶段。 - `update`:只更新已有表结构,不会删除表,适用...