есть ли hibernate utitliy, который я могу использовать для подключения к базе данных. перечислить все таблицы и сгенерировать SQL-скрипт для «создания таблиц + данных» и сохранить как * .sql?генерировать sql-скрипты
ответ
Экспорт данных из базы данных как SQL
использовать проект liquibase OpenSource
LiquiBase является открытым исходным кодом (LGPL), базы данных независимой библиотеки для отслеживания, управления и применения изменений в базе данных. Он построен на простой предпосылке: все изменения базы данных (структура и данные) хранятся в описательной форме на основе XML и проверяются на контроль источника.
Сформировать создавать и удалять скрипт для данных JPA сущностей
Мы используем этот код, чтобы генерировать капли и создавать операторы: Просто построить этот класс со всеми классами сущностей и вызвать создание/dropTableScript.
При необходимости вы можете вместо этого использовать имя persitence.xml и persitance. Просто скажите что-нибудь , и я также отправлю код.
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(); } }
Для этого требуется, чтобы у вас был объект домена, чтобы преобразовать в sql-скрипт правильно? что я хочу. просто подключитесь к серверу базы данных и перечислите все таблицы и создайте сценарий создания таблиц. возможное? – cometta
Правильно, вам нужны enities (в perstiance.xml или в списке> Кроме того, вы можете использовать Liquibase, которая экспортирует данные с включенной ddl-схемой из данного соединения jdbc. Он может делать гораздо больше думает (схема отличается, исправление ...) Другой способ - использовать швейцарский армейский нож DBVisualizer на работе нашего любимого абсента (в личном издании бесплатно !, написанный в java, использует JDBC). –
H2000
привет, я попытался использовать dbvisualizer, я могу видеть -> table, view "для моей базы данных. Как экспортировать таблицы и данные в sql-скрипт? – cometta