Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步。

如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码

Xml代码update

update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。

还有其他的参数:

create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。

create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。

PS:数据库要预先建立好,因为hibernate只会建表,不会建库

==========================================

表结构和数据总是在程序执行的时候无端的修改,折腾了好长时间,查了很长时间hibernate的数据库映射文件和接口程序,始终没有发现有什么错误,到最后才发现了它!

解释如下:

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的配置 可设置

建议在开发环境下使用,在生产环境下去掉。

优点:

1、自动创建新表

2、自动创建新字段

3、自动修改字段类型

缺点:

1、不会自动删除表

2、不会自动删除字段

3、自动创建的新字段只能是在最后。

针对缺点的建议:定期把数据库清空(删除所有表),然后启动项目,让hibernate自动创建表结构和索引,当然一些初始化数据需要手工导入。

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

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

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

  2. SpringBoot - MyBatis-Plus使用详解2(设置实体类对应的表名、字段名 )

    二.设置模型对应的表名.字段名 1,设置关联的表名 (1)默认情况下,如果数据库表是使用标准的下划线命名,并且能对应上实体类的类名,我们就不需要特别去手动匹配.比如有张 user_info 表,那么会 ...

  3. 根据java实体类生成创建表sql步骤

    根据java实体类生成创建表sql步骤 根据java实体类生成创建表sql语句时,方法是利用java反射+AOP注解,主要步骤如下: 1.注解类 一般在生成表的时候,需要表名.主键名.字段名,对应到注 ...

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

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

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

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

  6. mysql语句生成在线_在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  7. Springboot+Maven+Mybatis-enhance-actable 根据实体类自动更新数据库表和字段

    参考文章springboot+mybatis/mybatis-plus根据实体类自动创建数据库表,我在上面加了需要修改的说明 目录 pom.xml application.yml DataSource ...

  8. JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

    原文地址:http://www.cnblogs.com/taven/p/3351841.html JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spr ...

  9. form表单提交,后台实体类接收转义问题 解决方案

    Ajax传一个实体给后台,以@RequestBody来接收: https://blog.csdn.net/zhou_pp/article/details/94738434 前台提交整个表单数据,后台实 ...

最新文章

  1. MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮
  2. ASP.NET Core 中文文档 第一章 入门
  3. marquee命令的基本用法
  4. Linux下配置安装NFS
  5. 从python的random函数说起
  6. Mybatis递归自查询查(无限极分类)
  7. 项目管理网络图概念总结
  8. 腾讯QQ被盗的形式及密码保护技巧(转)
  9. 微信小程序页面跳转失效原因
  10. 激活mathtype
  11. python怎样分析文献综述_教你如何做文献综述
  12. mysql to_days() 逆向函数_mysql的 TO_DAYS() 函数应用实例
  13. 为何国外的人都爱用电子邮箱?注册电子邮箱有哪些好处呢
  14. IPv6报头与IPv4报头的区别
  15. hibernate查找数据库中所有内容cannot be cast to com.shzy.model.Materia
  16. 网页HTML5--飞机大战小游戏开发--canvas的应用
  17. 谷歌正在教AI人类如何拥抱,做菜,和打架
  18. 华为nova5i语音助手唤醒方法分享
  19. 年底了,千万不要跳槽。
  20. 中国CRO市场复合增速超20%高于全球平均水平

热门文章

  1. 不显示调用super_super关键字
  2. 76项!海南省崖州湾种子实验室揭榜挂帅项目立项结果公示
  3. IF10+的数据库文章!生物信息数据库承建!
  4. 211.Alpha多样性箱线图(样章,11图2视频)
  5. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用nfactors参数指定抽取的因子个数、fa函数因子分析结果解读
  6. python使用np.argsort对一维numpy概率值数据排序获取升序索引、获取的top索引(例如top2、top5、top10)索引二维numpy数组中对应的原始数据:原始数据概率最小的头部数据
  7. R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战
  8. TED+成长性思维+Carol Deweck+The Power of Yet
  9. Linux系统介绍 文件夹和文件管理命令 10个(pwd ls cd mkdir touch mv rm cp tar ln)
  10. postgresql