/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.tool.hbm2ddl;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;

import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
import org.hibernate.internal.CoreMessageLogger;
import org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator;

import org.jboss.logging.Logger;

Author:Steve Ebersole
Deprecated:Everything in this package has been replaced with SchemaManagementTool and friends.
/** * @author Steve Ebersole * * * @deprecated Everything in this package has been replaced with * {@link org.hibernate.tool.schema.spi.SchemaManagementTool} and friends. */
@Deprecated class DatabaseExporter implements Exporter { private static final CoreMessageLogger LOG = Logger.getMessageLogger( CoreMessageLogger.class, DatabaseExporter.class.getName() ); private final ConnectionHelper connectionHelper; private final SqlExceptionHelper sqlExceptionHelper; private final Connection connection; private final Statement statement; public DatabaseExporter(ConnectionHelper connectionHelper, SqlExceptionHelper sqlExceptionHelper) throws SQLException { this.connectionHelper = connectionHelper; this.sqlExceptionHelper = sqlExceptionHelper; connectionHelper.prepare( true ); connection = connectionHelper.getConnection(); statement = connection.createStatement(); } @Override public boolean acceptsImportScripts() { return true; } @Override public void export(String string) throws Exception { statement.executeUpdate( string ); try { SQLWarning warnings = statement.getWarnings(); if ( warnings != null) { sqlExceptionHelper.logAndClearWarnings( connection ); } } catch( SQLException e ) { LOG.unableToLogSqlWarnings( e ); } } @Override public void release() throws Exception { try { statement.close(); } finally { connectionHelper.release(); } } }