建表策略

配置自动生成表(建表策略)

1.1. 配置属性名称:hibernate.hbm2ddl.auto

如果需要生成表,只需要表名,列名以及对应列名的类型,这些全部在持久类里面都有定义

创建表的时间:成功获取到EntityManagerFactory对象

1.2. create-drop

这个开发一般不会用,面试会被问到

先删除表,再创建表,再删除表

删除表的时间:必须把EntityManagerFactory关闭

1.3. create 只有在测试的时候使用

先删除表,再创建表,不会再删除表

如果更改了domain类的映射,会马上生效

1.4. update 用在测试和web项目(开发的时候使用)

如果没表就根据最新的映射信息来创建表

如果表里面已经有这个属性,如修改属性的长度,不会更新到表里面

需要更新这个列先删除表或者删除这个属性对应的列名

如果表里面没有属性,映射信息存在,会增加这个列

1.5. validate 用在系统已经上线或者客户给定了数据库

表不存在,会抛出异常

Domain类映射信息少属性,表比映射定义的列要多,不会报错

反之,抛出异常

核心 API包含咱们昨天学习的几个对象,今天我们将对他们进行相应的分析:

原文地址:https://www.cnblogs.com/xiaoruirui/p/11581593.html

时间: 2024-11-10 07:53:29

建表策略的相关文章

(原创)hibernate 一对多建表实例详解 附上各个注释的含义

这个是hibernate的一对多建表实例:一的一端是部门(Department),对的一端是员工(Employee),下面贴上成员源代码:其中@mappedBy是加在@OneToMany一端,并且它的name属性=多的那一端(N端)属性是一的那一端的属性名,mappedBy是定义在Department类中,即Department类不负责维护级联关系.即维护者是Employee类 Department类: package com.javabean; import java.io.Serializa

MySQL的数据类型和建库策略详解

无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构.充分利用空间是十分必要的.这就要求我们对数据库系统的常用数据类型有充分的认识.下面我就将我的一点心得写出来跟大家分享. 一.数字类型 数字类型按照我的分类方法分为三类:整数类.小数类和数字类. 我所谓的"数字类",就是指DECIMAL和NUMERIC,它们是同一种类型.它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的:他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大.

magic操作数据库建表总结

Magic创建表总结 Magic创建表(数据库oracle为例) 首先创建项目: File——new project(project name起名)——(local files folder 选取路径) 创建完项目需要与数据库建立连接: 创建项目页面(菜单栏 opens the database repository)——ctrl+F4(添加新一行)(name名,建表指定的database name)(database name 方便指定识别哪个数据库)(dbms连接数据库类型)——制定建立哪个

初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点

第一次运行程序时,将Hibernte中的hibernate.hbm2ddl.auto设置成create(或者是update),让Hibernate帮助自动建表,但不成功,报了如下信息: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1

(没写完)SQL数据库建表(基础大牛请飘过就好谢谢)

--SQL表与表之间的关系-- 首先要学会找表与表之间的关系 只有把表和表之间的关系找好才 可以键表,并方便查询. 一.表与表之间有三种关系 (1)两表之间的主键存在一对一的关系 随便在一表中加上另一表的主键为该表的外键. (2)两表之间的主键存在一对多的关系 在"一"表中创建"多"表的主键为"一"表的外键. (3)两表之间的主键存在多对多的关系 重新创建一个新表并加如两个表的主键为该表的外键. 再加上两表之间的关系属性. --        

ORACLE数据库建表空间、建用户、分配用户表空间,分配用户权限

1.建表空间 create tablespace 表空间名 datafile  'D:\app\Administrator\oradata\orcl\ABC.DBF' size 100M autoextend on next 50M extent management 2.建用户 create  user 用户名  identified by password default tablespace 表空间名 temporary tablespace temp   (默认表空间名) 3.给用户赋予

oracle 11g 建库 建表 增 删 改 查 约束

一.建库 1.(点击左上角带绿色+号的按钮) 2.(进入这个界面,passowrd为密码.填写完后点击下面一排的Test按钮进行测试,无异常就点击Connect) 二.建表 1-1. create table 表名1( Tid number(4) --primary key 列级约束(主键), Tname varchar(10) --ont null  非空约束,只能定义在列级约束, Tsex varchar2(2)--check (tsex='男'  or  tsex='女') 检查约束, T

在应用hibernate框架操作数据库时,是先建表还是先建类?

先建表 可以用myeclipse反转生成类 还可以生成映射文件(更加方便) 先建类 可以设置hibernate属性动态生成表 但映射文件要自己选 在做项目时,首先都会进行数据分析,会形成数据字典.当数据字典出来以后,我们可以根据数据字典写sql语句建表,也可以根据这份数据字典写实体类或实体类映射文件,然后再生成数据表.通过表生产实体类这一过程叫做反向工程.不过现在公司开发采用反向工程的比较多,因为数据表通常都会在编码前设计好,相对较稳定,这样有利于程序员编码等后期工作.

MySQL-Front 建表引发的一点小思考(数据表格模版)

我们建表的时候,有一些字段总是会常用到的.也就是每一张表都会有这些字段. 我用mysql有一点时间了,今天(2016-02-27 21:53:38)在用mysql-front建表的时候,感觉有点点不太舒服. 就是某些表格中的字段,基本上每一张表都会用到.我的做法是 从 某张建好的表格上复制过来.每次都需要点开已经 新建好的数据表来复制,粘贴字段.感觉有点点不方便. 然后我在想,如果可以提供一种类似 Visual studio 那种建项目的项目模板就好了.于是,查阅了下资料,在 github 上找