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自动创建表结构和索引,当然一些初始化数据需要手工导入。

转载于:https://www.cnblogs.com/toSeeMyDream/p/5539360.html

配置hibernate根据实体类自动建表功能相关推荐

  1. hibernate mysql 自动建表_配置hibernate根据实体类自动建表功能

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码 Xml代码update upda ...

  2. Springboot,Mybatis根据实体类自动建表

    Springboot,Mybatis根据实体类自动建表 在创建实体类的同时还要在数据库建表,如果只是很少的属性那么无所谓,但是当实体类很多或者字段很多时这就是一个非常让人不爽的事情了 通常有两种思路, ...

  3. Hibrenate实现根据实体类自动创建表或添加字段

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 实现: 在配置hibernate的配置文件中将hbm2ddl.auto设置为update,如:Xml代码&l ...

  4. 【SSH】——Hibernate实现简单的自动建表

    转载:http://blog.csdn.net/u010066934/article/details/49078445 [与ORM] Object Relational Mapping,对象关系映射, ...

  5. SpringBoot集成JPA根据实体类自动生成表

    数据库是mysql,在application.properties中的写法如下: 原来配置这样的时候确实可以生产表的 #spring.jpa.hibernate.ddl-auto=update 多方查 ...

  6. c 自动生成mysql表结构_EntityFrameworkCore 根据实体类自动创建数据库

    1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1   Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...

  7. Springboot 之 Hibernate自动建表(Mysql)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 引入Maven依赖包 <dependency><groupId>org.sp ...

  8. java实体类生成mysql表_springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 org.mybatis ...

  9. Hibernate自动建表

     建立表格,可以通过sql或者oracle工具直接在工具中创建表格,也可以通过Hibernate代码直接在配置文件中间接通过执行代码来创建表格. 在hibernate.cfg.xml添加这句话,就 ...

最新文章

  1. 大数据的三个特征(重要挑战)
  2. 开源 java CMS - FreeCMS2.3 会员组管理
  3. mysql cluster (mysql 集群)安装配置方案
  4. 金融实战篇:最佳数据驱动之城商行
  5. 算法学习笔记(一):二分法及其实现
  6. 表格cell之间的横线不显示
  7. Qt中的枚举变量,Q_ENUM,Q_FLAG,Q_NAMESPACE,Q_ENUM_NS,Q_FLAG_NS以及其他
  8. Ubuntu 19.10 Beta 发布,正式版本定于 10 月份
  9. 位运算(异或运算) :数组中数字出现的次数
  10. uboot引导内核全过程
  11. python糖尿病数据挖掘
  12. Multisim10的4013BD_5V测试电路
  13. 【向生活低头】如何在Gold Wave软件中为声音添加背景音乐
  14. 学习ArrayList 和 LinkedList小记【2】
  15. 【Zeekr_Tech】为自动驾驶保驾护航—谈谈主流中间件设计
  16. opencv滤镜-二值化实现黑白滤镜
  17. Mybatis 解决数据库字段名和实体类属性名不一致问题
  18. 批处理一键打开Windows远程桌面
  19. React的项目创建
  20. 使用Python写俄罗斯方块,以游戏的方式学习编程

热门文章

  1. mysql监控sql_关于对mysql语句进行监控的方法详解
  2. Json字符串转对象,使用ObjectMapper方式报错:no String-argument constructor/factory method
  3. element ui dialog 对话框设置fullscreen_UI设计中的弹窗设计素材,技巧快get起来
  4. 排序中减治法算法伪代码_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)...
  5. android tv market,安卓市场TV版
  6. 最大正方形Python解法
  7. html非零正实数正则表达式,正数|非负数|正整数正小数和0 |金额正则表达式
  8. UE4学习-自定义角色的移动、视野旋转、设置游戏模式
  9. python 初始化数组 numpy,Python Numpy 数组的初始化和基本操作
  10. c高级语言程序设计B试题,2019-2010-2-《高级语言程序设计(C)》期末考试-题