将数据从数据库导出为sql
使用liquibase开源项目
Liquibase是一个开源(LGPL),独立于数据库的库,用于跟踪,管理和应用数据库更改。它建立在一个简单的前提下:所有数据库更改(结构和数据)均以基于XML的描述性方式存储并检入源代码管理。
为给定的JPA实体生成创建和删除脚本
我们使用以下代码生成drop和create语句:只需使用所有实体类构造该类,然后调用create / dropTablescript。
如果需要,可以改用persitence.xml和持久性单元名称。只是说些什么,我也会发布代码。
导入java.util.Collection;导入java.util.Properties;导入org.hibernate.cfg.AnnotationConfiguration;导入org.hibernate.dialect.Dialect;导入org.hibernate.ejb.Ejb3Configuration;/ ** *根据JPA / Hibernate批注的SQL Creator for Tables。 * * 采用: * * {@link #createTablesscript()}创建表创建脚本 * * {@link #dropTablesscript()}创建表销毁脚本 * * /公共类SqlTableCreator { 私有最终的AnnotationConfiguration hibernateConfiguration; 私有的最终Properties DialectProps; 公开SqlTableCreator(最终收藏>实体){ 最后的Ejb3Configuration ejb3Configuration = new Ejb3Configuration(); for(最终类别实体:entities){ ejb3Configuration.addAnnotatedClass(entity); } DialectProps = new Properties(); DialectProps.put(“ hibernate.dialect”,“ org.hibernate.dialect.SQLServerDialect”); hibernateConfiguration = ejb3Configuration.getHibernateConfiguration(); } / ** *创建SQL脚本以创建所有表。 * * @return表示SQL脚本的{@link String}。 * / 公共字符串createTablesscript(){ 最终的StringBuilder脚本= new StringBuilder(); 最后的String [] creationscript = hibernateConfiguration.generateSchemaCreationscript(Dialect .getDialect(dialectProps)); for(最终字符串字符串:creationscript){ script.append(string).append(“; n”); } script.append(“ ngo n n”); 返回script.toString(); } / ** *创建SQL脚本以删除所有表。 * * @return表示SQL脚本的{@link String}。 * / 公共字符串dropTablesscript(){ 最终的StringBuilder脚本= new StringBuilder(); 最后的String [] creationscript = hibernateConfiguration.generateDropSchemascript(Dialect .getDialect(dialectProps)); for(最终字符串字符串:creationscript){ script.append(string).append(“; n”); } script.append(“ ngo n n”); 返回script.toString(); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)