Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步。
如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码
Xml代码<property name="hbm2ddl.auto">update</property>
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
PS:数据库要预先建立好,因为hibernate只会建表,不会建库
==========================================
表结构和数据总是在程序执行的时候无端的修改,折腾了好长时间,查了很长时间hibernate的数据库映射文件和接口程序,始终没有发现有什么错误,到最后才发现了它!
<property name="hibernate.hbm2ddl.auto" value="update" />
解释如下:
hibernate.hbm2ddl.auto Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly. eg. validate | update | create | create-drop
其实这个参数的作用主要用于:自动创建|更新|验证数据库表结构。
如果没有此方面的需求建议set value="none".
其它几个参数的意思:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
如果发现数据库表丢失或新增,请检查hibernate.hbm2ddl.auto的配置 可设置 <property name="hibernate.hbm2ddl.auto" value="none" />
建议在开发环境下使用,在生产环境下去掉。
优点:
1、自动创建新表
2、自动创建新字段
3、自动修改字段类型
缺点:
1、不会自动删除表
2、不会自动删除字段
3、自动创建的新字段只能是在最后。
针对缺点的建议:定期把数据库清空(删除所有表),然后启动项目,让hibernate自动创建表结构和索引,当然一些初始化数据需要手工导入。
相关推荐
本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识点。 **一、Hibernate概述** Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,...
本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...
综上所述,Hibernate自动生成数据库文件涉及到ORM设计、Hibernate Tools的使用、配置文件的编写、Java注解的理解以及数据库操作的最佳实践等多个方面。掌握这些知识点有助于高效地利用Hibernate进行数据库开发。
Hibernate 提供了一个非常实用的功能——基于实体类自动生成数据库表,这不仅能够显著提高开发效率,还能减少人为错误。本文将详细介绍如何利用 Hibernate 的 `SchemaExport` 类实现这一功能。 #### 二、准备工作 ...
本压缩包“根据hibernate配置文件生成数据库.zip”包含了一些关键资源,帮助开发者理解如何使用Hibernate工具hbm2ddl自动生成数据库结构。以下是对这些资源的详细解释: 1. **使用Hibernate的工具hbm2ddl根据你的...
总之,通过Hibernate映射文件生成数据库是一种高效的方法,它减少了手动创建数据库表的工作,并且使得模型与数据库的同步变得更加简单。在实际项目中,开发者可以根据需求灵活调整映射文件,实现数据库的动态管理和...
本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...
标题中的“从hbm的xml文件自动生成数据库表”指的是在Java编程中,使用Hibernate框架的一个功能,通过Hibernate Mapping(hbm.xml)文件来自动创建对应的数据库表结构。Hibernate是流行的Java ORM(对象关系映射)...
运行Generator后,会自动生成Mapper接口、XML配置文件以及实体类对应的数据库表。 总结来说,"JAVA通过实体生成数据库表"是Java开发中提高效率的一种方式,它结合了反射和ORM技术,使得我们可以快速地根据业务需求...
3. Hibernate配置文件生成:自动生成`hibernate.cfg.xml`,包含数据库连接信息,以及`mapping.xml`,描述了实体类与数据库表的映射关系。 除了基本的代码生成,MagicalTools还提供了定制化选项,允许开发者自定义...
此时,MyEclipse将自动为所选表生成对应的Hibernate配置文件,包括实体类映射文件(`.hbm.xml`)以及核心的`hibernate.cfg.xml`文件。 #### 三、自动生成配置文件的优势 1. **节省时间**:自动化的配置生成大大...
【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...
6. **生成数据库表**:使用Hibernate的工具,如`hbm2ddl.auto`配置,可以设置为`create`或`update`,在应用启动时自动根据实体类生成或更新数据库表。 7. **编写业务逻辑**:在Service层实现业务逻辑,通过...
Hibernate的逆向工程工具,也被称为Hibernate Tools,能够从现有的数据库结构自动生成对应的Java持久化类(Entity)、Hibernate配置文件(hibernate.cfg.xml)以及映射文件(.hbm.xml)。这样,开发者可以快速地...
Spring Boot + MyBatis 通过实体类自动生成数据库表的方法 本文主要介绍了使用 Spring Boot 2.1.8.RELEASE 和 MyBatis 生成数据库表的方法。该方法通过实体类自动创建数据库表,并提供了详细的示例代码,对学习和...
MyEclipse作为一款强大的集成开发环境,提供了自动生成Hibernate配置文件的功能,帮助开发者快速构建项目。以下是使用MyEclipse自动生成Hibernate配置文件的详细步骤: 1. **创建数据库表**: 在开始之前,需要先...
在提供的"WebRoot/info"文件夹中的"Hibernate反向生成数据库表.doc"文档,应该详细介绍了以上操作流程,建议仔细阅读以掌握具体步骤。如果你在使用过程中遇到任何问题,可以参考Hibernate的官方文档或在线社区寻求...
实体类需要使用Hibernate的注解进行标记,如@Entity表示这是一个数据库表,@Table指定表名,@Id和@GeneratedValue指定主键生成策略。 ```java @Entity @Table(name = "users") public class User { @Id @...
在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等信息。 配置 Hibernate 连接数据库 在 Hibernate 的配置文件中,我们可以使用 properties 文件或 XML 文件来配置数据库连接。下面...