Export data from a database as sql
Use liquibase open source project
LiquiBase is an open source (LGPL) database independent library for tracking, managing and applying database changes. It is built on a simple premise: all database changes (structure and data) are stored in XML-based descriptive form and checked for source control.
Create create and delete script for given JPA objects
We use this code to generate the drop and create statements: Just create this class with all entity classes and call create / dropTableScript.
If necessary, you can use persitence.xml and persitance instead. Just say something and I also send the code.
import java.util.Collection;
import java.util.Properties;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.dialect.Dialect;
import org.hibernate.ejb.Ejb3Configuration;
/ **
* SQL Creator for Tables according to JPA / Hibernate annotations.
*
* Use:
*
* {@link #createTablesScript ()} To create the table creationg script
*
* {@link #dropTablesScript ()} to create the table destruction script
*
* /
public class SqlTableCreator {
private final AnnotationConfiguration hibernateConfiguration;
private final Properties dialectProps;
public SqlTableCreator (final Collection> entities) {
final Ejb3Configuration ejb3Configuration = new Ejb3Configuration ();
for (final Class entity: entities) {
ejb3Configuration.addAnnotatedClass (entity);
}
dialectProps = new Properties ();
dialectProps.put ("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
hibernateConfiguration = ejb3Configuration.getHibernateConfiguration ();
}
/ **
* Create the SQL script to create all tables.
*
* @return A {@link String} representing the SQL script.
* /
public String createTablesScript () {
final StringBuilder script = new StringBuilder ();
final String [] creationScript = hibernateConfiguration.generateSchemaCreationScript (Dialect
.getDialect (dialectProps));
for (final String string: creationScript) {
script.append (string) .append ("; \ n");
}
script.append ("\ ngo \ n \ n");
return script.toString ();
}
/ **
* Create the SQL script to drop all tables.
*
* @return A {@link String} representing the SQL script.
* /
public String dropTablesScript () {
final StringBuilder script = new StringBuilder ();
final String [] creationScript = hibernateConfiguration.generateDropSchemaScript (Dialect
.getDialect (dialectProps));
for (final String string: creationScript) {
script.append (string) .append ("; \ n");
}
script.append ("\ ngo \ n \ n");
return script.toString ();
}
}
H2000
source share