hibernate 自动生成数据库表

只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表
<property name="hibernate.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"
/>

参考以上数据,我配置好了我的根据model生成数据库表。具体如下

我有一个文件

hibernate.hbm2ddl.auto=update

另一个地方:

<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

时间: 2024-10-09 08:38:38

hibernate 自动生成数据库表的相关文章

Hibernate自动生成数据库表

在hibernate.cfg.xml中添加: 引用 <properties> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> value的值可选项如下: 引用 validate  加载hibernate时,验证创建数据库表结构 create  每次加载hibernate,重新创建数据库表结构. create-drop  加载hibern

1、Hibernate注解实现对象关联映射并自动生成数据库表

---恢复内容开始--- 前言:本例单独使用Hibernate框架通过Hibernate注解实现年级表和学生表的一对多关联并完成其级联操作 1.年级表 package pojo; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import j

Mybatis自动生成数据库表——终于搞好了

pom.xml <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <dependencies> <dependency> <groupId>mysql</groupId&g

【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档

对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL(MySQL数据库表结构导出器). 介绍: DBExportDoc V1.0 For MySQL是一款利用office特性VBA开发的小工具,利用此工具可以将本机MySQL上任意数据库.任意表的数据结构导出.但是它不是一款你安装是一路next到finish就可以立刻使用的. 要注意的有两点: 首先,你

springBoot自动生成数据库表

@Entity @Table(name="t_book") //表名  name 不一定有用 public class Book { @Id    //表的id @GeneratedValue  //自增属性 private Integer id; @Column(length=100) //String 自动对应字符串 private String name; @Column(length=50) private String author; 会根据注释生成对应的表 但是我在生成标的

EF关于Mysql如何自动生成数据库表

相对于sqlserver数据库,mysql的配置过程相对麻烦一些,我们从0讲起. 1.新建一个控制台应用程序 右键点击引用--管理NuGet程序包,搜索Mysql.Data.Entity并安装,安装完成后在已安装选项下会有以下三项: 在App.config文件中添加: <connectionStrings>    <add name="conn" connectionString="server=localhost;port=3306;uid=root;pw

.net自动生成数据库表的类

// 获取到所有的用户表.DataTable userTableName = GetTable( "select name as tablename from sysobjects where xtype = 'U'" ); //根据表名获取所有字段和字段类型            DataTable myTable =                 GetTable(                     "select syscolumns.name,systypes

hibernate 自动生成数据库

Hibernate: create table City (cityId varchar(255) not null, cityName varchar(200), remark longtext, versionNum integer, country_countryID varchar(255), cities_KEY varchar(255), primary key (cityId))Hibernate: create table Country (countryID varchar(2

hibernate+mysql 自动生成数据库问题

Hibernate Entity类 表名注解大写时,在windows下mysql自动生成的表都为小写(不区分大小写),在linux下mysql自动生成区分大小写.导致数据库问题. 原因(window下mysql不区分大小写,hibernate生成时全部生成小写,linux下生成时,按照注解大小写生成) 1 package com.pera.report.designer.data; 2 3 import java.sql.Clob; 4 5 import javax.persistence.Ba