Hibernate---hbm2ddl和数据库方言的配置
Hibernate---hbm2ddl和数据库方言的配置
hibernate配置文件--hbm2ddl.auto属性值的区别:
update:
最常用的取值,如果但其数据库中不存在表结构,那么自动创建表结构。
如果存在表结构,并且表结构与实体一致,那么不做修改
如果存在表结构,并且表结构与实体不一致,那么会修改表结构,保留原有列
create:
使用少,无论是否存在表结构,每次启动hibernate都会创建表结构。
create-drop:
使用少,无论是否存在表结构,每次启动hibernate都会在创建表结构,每次hibernate运行结束时删除表
validate:
不会自动创建表结构,也不会自动维护表结构,hibernate只校验表结构,如果表表结构不一致就会抛出异常

数据库方言的配置:
org.hibernate.dialect.MySQLDialect :
org.hibernate.dialect.MySQLInnoDBDialect
org.hibernate.dialect.MySQLMyISMDialect
一般选择最短的

Oracle与MySQL方言低层代码实现对比

hibernate配置文件:
id:

字段

type:

type="varchar" || type="string" || type="java.long.String"
数据库 || hibernate || java类型
主键生成策略:


自然主键和代理主键:
首先需要具备:不为空/不能重复/不能改变
自然主键:
在业务中,某个属性符合主键的三个要求,那么该属性可以作为主键列
代理主键:
在业务中,不符合以上3个条件的属性,那么就增加一个没有意义的列,作为主键
Hibernate---hbm2ddl和数据库方言的配置的更多相关文章
- Hibernate中的数据库方言(Dialect)
在配置hibernate.cfg.xml时需指定使用数据库的方言: 例: <property name="dialect">org.hibernate.dialect. ...
- 详解在Hibernate中配置数据库方言的作用和好处以及各种数据库的方言连接
Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异,因此Hibernate需 ...
- Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字
最近因为生僻字在界面上显示为?: 主要原因是该字段在数据库中就是varchar类型,显示的就是?:如䶮(yan):现把varchar类型改为nvarchar类型:数据中能够正常显示: 但是Spring ...
- Hibernate不同数据库 方言|驱动|url 配置
Hibernate不同数据库方言|驱动|url mySql: hibernate.dialect : org.hibernate.dialect.MySQLDialect driverClassNam ...
- hibernate中数据库方言
在配置hibernate.cfg.xml时需指定使用数据库的方言: 例: <property name="dialect">org.hibernate.dialect. ...
- hibernate.hbm2ddl.auto配置详解
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:<properties><property name="hibernate. ...
- Mingyang.net:hibernate.hbm2ddl.auto配置详解【转】
原文地址:http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hibernate.cfg.xml 中hibern ...
- hibernate数据库方言
hibernate数据库方言 mark一下 RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect ...
- jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具
jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...
随机推荐
- SNMP学习笔记之SNMP介绍,OID及MIB库
1.1. SNMP概览 SNMP的基本知识介绍简单网络管理协议(SNMP-Simple Network Management Protocol)是一个与网络设备交互的简单方法.该规范是由IETF ...
- C++设计模式 之 “数据结构” 模式:Composite、Iterator、Chain of Resposibility
"数据结构"模式 常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用.这时候,将这些特定数据结构封装在内部,在外部提供统一的接口, ...
- python程序转为exe文件
python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http://www.jianshu.com/p/8abcf73ad ...
- JS(JavaScript)脚本库的积累
在现在互联网盛行的时代,使得B/S架构飞速发展.曾经在大学的时候我一直都梦想着毕业后要找一个像腾讯这样大企业做C/S方面的开发工作(其实现在腾讯也有很多B/S软件),因为C/S体验度非常高,感觉非常好 ...
- 【前端】javascript+jQuery实现旋转木马效果轮播图slider
实现效果: 实现原理: 技术栈: javascript+jQuery+html+css 实现步骤: // 0. 获取元素 // 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏 // 2. 为 ...
- Python3基础 file open 打开txt文件并打印出全文
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- ZooKeeper 增加Observer部署模式提高性能
Observer:在不伤害写性能的情况下扩展ZooKeeper. 虽然通过Client直接连接到ZooKeeper集群的性能已经很好了,可是这样的架构假设要承受超大规模的Client,就必须添加Zoo ...
- hystrix两种隔离模式分析
hystrix隔离模式目前有两种方式:信号量模式和线程池模式. 但信号量并不支持超时,当被调服务发生问题时,有少部分用户会长时间无法得到响应. 另外,使用线程池模式无法传递Header,我估计是由于线 ...
- Vim打开文件中文乱码如何解决?
今天想找一下之前的随机数组demo复习,在源文件src里用vim打开.java文件,中文出现乱码 vim也是,选项里没有直接选择设置utf-8之类的 查了下网上,http://easwy.com/bl ...
- onchange()事件的应用
本文为博主原创,未经允许不得转载: jQuery提供了很多很强大的事件,想要都掌握发现难度蛮大的,只有在不断的应用与实践中学习和掌握. 在做页面的时候,想做一个在选择下拉框选择值的时候,系统根据下拉框 ...