本文作者:苏生米沿

本文地址:http://blog.csdn.net/sushengmiyan/article/details/50445936

你可以将如下三种类型的脚本绑定到hibernate的schema生成程序中:

1.当schema生成的时候,创建脚本create就会执行。一个自定义的创建脚本可以在hibernate自动生成脚本之前,之后,甚至可以直接替换。换句话说,你可以写一个SQL脚本,这个脚本从你的映射元数据中在hibernate生成表、约束之前或之后运行。

2.Drop语句,在hibernate移除schema的时候执行。像create脚本一样,drop语句可以在自动生成之前之后或者直接替换hibernate的自动生成语句。

3.Load语句,总是在hibernate生成schema之后才去执行,作为生成的最后一步,它的主要目的就是导入你的程序运行之前的测试或者主数据。它可以包括任何形式的SQL语句,包括想alter这样的DDL语句,如果你想进一步优化自定义你的schema的话。

这个自定义已经是事实上的标准了,你可以使用JPA的persistence.xml来配置这个持久化单元属性。

①.默认情况下,hibernate期望一个SQL语句占一行。启用多行语句就靠第一个转换了。你可以实现自己的org.hibernate.tool.hbm2ddl.ImportSqlCommondExtractor 如果你想要根据你自己的不同的方式来处理SQL脚本的话。

②.这个属性定义了何时你创建或者销毁脚本会被调用。你自定义的脚本将会包括CREATE DOMAN语句,它必须要在表创建使用这些DOMAIN的之前被创建。有了这些设置,schema生成器就在ORM元数据读取之前执行这个创建语句。Drop语句就是在hibernatedrop表的时候给你了一个清楚你创建的数据的机会。

③.这是SQL脚本的位置,路径是从classpath开始算的。

④.这是drop语句的位置所在。

⑤.这个脚本在表创建之后执行。

我们提及过,DDL是跟产品特性挂钩的,如果你的产品支持多种数据源,你就需要设置各种的方言。你可以通过多个持久化单元的方式来解决这个问题。

增加辅助的数据库组件相关推荐

  1. JetPack Room数据库组件使用方式

    JetPack Room数据库组件使用方式 1.Room 简介 Goolge官方是这样描述的 Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时, 能够流畅 ...

  2. 微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧

    前言 长久以来SQLite DB都有损坏问题,从Android.iOS等移动系统,到Windows.Linux 等桌面系统都会出现.由于微信所有消息都保存在DB,服务端不保留备份,一旦损坏将导致用户消 ...

  3. mysql数据库增加模块_使用bind-mysql模块增加对mysql数据库的支持

    对于bind,如果想修改或增加dns记录,是直接修改文本的,这样的话一方面不方面管理,另一方面容易出错,如果我们增加对mysql数据库的支持,再配合php或perl,python等程序直接操作mysq ...

  4. android微信wcdb,[资讯] 微信正式开源移动端数据库组件WCDB!

    对于iOS开发者来说,数据库的技术选型一直是个令人头痛的问题.由于Apple提供的CoreData框架差强人意,使得开发者们纷纷将目光投向开源社区,寻找更好的存储方案. 对于微信也是如此.数据库是微信 ...

  5. 微信移动端数据库组件WCDB系列(一)-iOS基础篇

    前言 ================================== WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效.易用.完整的移动端存储方案. 它 ...

  6. mysql组件下载_MySQL数据库组件(MyDAC)

    MyDAC是一款功能强大,专业实用的MySQL数据库组件,软件不但可以直接进入到MySQL的数据服务器,而且软件还可以用于检测连接损耗和隐式重新某些操作局部故障转移.有需要的小伙伴欢迎来西西下载体验. ...

  7. android微信wcdb,一篇文章get微信开源移动端数据库组件WCDB的一切!

    1.前言 微信团队已于2017年06月09日正式开源了微信自用的移动端数据库组件 WCDB(WeChat Database),详见<[资讯] 微信正式开源移动端数据库组件WCDB!>. W ...

  8. android重定义cursor,微信移动数据库组件WCDB(四) — Android 特性篇

    微信的移动端数据库组件 WCDB 已经正式开源了,有关注的小伙伴可能已经用上了.如果还没用上,可以翻到文末关注我们的 GitHub 和公众号其他文章. 之前我们已经发过几篇 iOS 和修复的文章,An ...

  9. 为Unrealircd增加Mysql的数据库支持(三)

          上 接 为Unrealircd增加Mysql的数据库支持(二) 四.为mysql准备编译环境                  此处以linux下编译为例,你需要将mysql/includ ...

  10. CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...

    上次发布的:CYQ.DBImport V1.0的相关介绍:CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 本次发布的V2.0 版本,准备突击海外,下面为相关的介绍. 一:新版本2 ...

最新文章

  1. HDU2673-shǎ崽(水题)
  2. c语言 中insert变量值,c – 在VS2010中的vector :: insert执行意外结果
  3. 18.图像用户界面入门:EasyGui
  4. 借用构造函数 组合继承 拷贝继承 总结继承
  5. ArcGIS中生成蜂窝多边形算法解析
  6. Aligning Plots in a Column作图列对齐
  7. 关于 java 实现 语音朗读
  8. 加密 lua_三、Lua相关知识
  9. python socket 游戏_python socket模拟游戏开服
  10. 也谈谈让好马吃回头草
  11. 产品必备技能(五):如何使用商业画布分析一款产品?附实操报告
  12. ICT技术认证都有哪些?他们的区别是什么?
  13. QCC512x QCC302x Earbud 工程增加三击事件
  14. 读《因果的真相》第八、九章摘抄笔记
  15. 聊聊 iframe 的优缺点以及使用场景
  16. #762 (Div. 3) E. MEX and Increments(贪心构造
  17. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...
  18. 云数据库精华问答 | 什么是云数据库?
  19. c语言能保留x后两位并且四舍五入的,二级C语言真题笔记
  20. JAVA爬虫(一):豆瓣电影排行榜爬取

热门文章

  1. DPDK-L3fwd测试
  2. 网络概论笔记修改补充
  3. Mybatis缓存机制(二)
  4. 数学--数论--贝祖定理(裴蜀定理)
  5. Vue history路由模式 apache配置上线
  6. Sony机器狗重生,养成类机器人能否成为爆款?
  7. 系统架构设计师 (论文范文 -- 基于构件的软件开发)
  8. lambda+reduce的一句艰深代码
  9. 怎么监控电脑上网记录?
  10. word公式编辑器能计算吗 word怎么添加公式编辑器