Generate SQL scripts

is there a hibernate utitliy that I can use to connect to the database. list all tables and generate sql script to "create tables + data" and save as * .sql?

+6
hibernate jpa
source share
1 answer

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 ();
     }
 }

+7
source share

All Articles