Hibernate 生成sql脚本

Hibernate 生成sql脚本,hibernate,jpa,Hibernate,Jpa,是否有任何hibernate实用程序可用于连接数据库。列出所有表,生成“创建表+数据”的sql脚本并另存为*.sql?将数据库中的数据导出为sql 使用开源项目 LiquiBase是一个开源(LGPL)的独立于数据库的库,用于跟踪、管理和应用数据库更改。它建立在一个简单的前提之上:所有数据库更改(结构和数据)都以基于XML的描述性方式存储,并检查到源代码管理中 为给定JPA实体生成创建和删除脚本 我们使用此代码生成drop和create语句: 只要用所有实体类构造这个类,并调用create/dr

是否有任何hibernate实用程序可用于连接数据库。列出所有表,生成“创建表+数据”的sql脚本并另存为*.sql?

将数据库中的数据导出为sql

使用开源项目

LiquiBase是一个开源(LGPL)的独立于数据库的库,用于跟踪、管理和应用数据库更改。它建立在一个简单的前提之上:所有数据库更改(结构和数据)都以基于XML的描述性方式存储,并检查到源代码管理中

为给定JPA实体生成创建和删除脚本

我们使用此代码生成drop和create语句: 只要用所有实体类构造这个类,并调用create/dropTableScript

如果需要,可以使用persistence.xml和persistence单元名称。说点什么 我也发代码

import java.util.Collection;
导入java.util.Properties;
导入org.hibernate.cfg.AnnotationConfiguration;
导入org.hibernate.dialogue.dialogue;
导入org.hibernate.ejb.ejb3配置;
/**
*根据JPA/Hibernate注释创建表的SQL创建者。
*
*使用:
*
*{@link#createTablesScript()}来创建表创建脚本
*
*{@link#dropTablesScript()}创建表销毁脚本
* 
*/
公共类SqlTableCreator{
私有最终注释配置休眠配置;
私人最终财产和道具;
公共SqlTableCreator(最终集合实体:实体){
ejb3Configuration.addAnnotatedClass(实体);
}
方言道具=新属性();
dialogprops.put(“hibernate.dialogue”、“org.hibernate.dialogue.sqlserverdialogue”);
hibernateConfiguration=ejb3Configuration.getHibernateConfiguration();
}
/**
*创建SQL脚本以创建所有表。
* 
*@return一个{@link String}表示SQL脚本。
*/
公共字符串createTablesScript(){
最终StringBuilder脚本=新建StringBuilder();
最后一个字符串[]creationScript=hibernateConfiguration.generateSchemaCreationScript(方言)
.getdial(方言道具);
for(最终字符串:creationScript){
script.append(string.append(;\n”);
}
script.append(“\ngo\n\n”);
返回script.toString();
}
/**
*创建SQL脚本以删除所有表。
* 
*@return一个{@link String}表示SQL脚本。
*/
公共字符串dropTablesScript(){
最终StringBuilder脚本=新建StringBuilder();
最后一个字符串[]creationScript=hibernateConfiguration.generateDropSchemaScript(方言)
.getdial(方言道具);
for(最终字符串:creationScript){
script.append(string.append(;\n”);
}
script.append(“\ngo\n\n”);
返回script.toString();
}
}

这要求您拥有域对象才能转换为sql脚本,对吗?我想要的是。只需连接到数据库服务器并列出所有表,然后生成CREATETABLES脚本。可能?对,您需要enities(在perstiance.xml或列表中)。我尝试使用dbvisualizer,我可以看到我的数据库的-->table,view。如何将表和数据导出到sql脚本中?嗨,使用free edition,您可以选择一个表,然后打开ddl选项卡。数据可以在data选项卡中导出。personal edition(,约150美元或对于edu 120美元,dbvis是每一分钱的价值,我们对linux、mac、windows使用>2年)可以同时导出所有表(如sql、xml等)。因此,您必须在上下文菜单中选择数据库(数据库下方)以导出整个数据库!顺便说一句。如果您喜欢我的答案,请在上面打勾;)