2010-02-24 2 views
1

Я периодически получаю данные, которые я использую для обновления моей базы данных. Внешняя структура отличается от моей внутренней структуры, так что я в конечном итоге выполняю импорт, а затем запускаю команды alter table. Я делаю это вручную. После того, как я отформатирую его по своему вкусу, я экспортирую данные, а затем импортирую их в существующую схему.Java - MySQL - Временные таблицы

Мои вопросы: 1. Как я могу изолировать внешний SQL так, чтобы он не отрицательно повлиял на мою базу данных? В идеале я хотел бы запустить его как другого пользователя в другой базе данных/рабочей области. Должен ли я временно создать базу данных и затем удалить ее после завершения этой операции?

  1. Должен ли я подключаться напрямую с помощью JDBC для запуска всех этих запросов, так как будет большая сумма данных? Я использую Hibernate вместе с C3P0 для управления основным подключением.

  2. Наконец, существует ли API для автоматизации/упрощения экспорта в SQL? Если я иду по маршруту JDBC, я могу перебирать каждую строку и создавать из нее вставки.

Любые идеи?

Спасибо, Walter

ответ

0

ИМО, лучше, чтобы сделать это за пределами Hibernate, с помощью простого JDBC. Просто создайте соединение для этой вещи и выполните все инструкции SQL. В конце закройте соединение. Таким образом, это удобно для подключения к другой временной базе данных, если вы выберете этот маршрут. Вам не нужно будет настраивать все это в свою конфигурацию Hibernate.

Другим способом является переход с Hibernate и создание схемы для вас с использованием объектов сущностей и их сопоставлений. Таким образом, вам не нужно вручную создавать требуемую структуру базы данных, она автоматически создается Hibernate.

+0

Я использую Hibernate для создания структуры. В основном, я импортирую данные с другого веб-сайта и изменяя свою структуру на мою, которая по-разному именяет столбцы, а также хранит только соответствующую информацию. Существует некоторое дублирование данных, поэтому я нормализую его, просто используя внешние ключи, где импортированные данные не были. Я думаю, что имеет смысл делать эти операции в другой базе данных/подключении. JDBC кажется лучшим маршрутом и будет хорошей практикой использовать то, что я не использовал напрямую в течение 3 лет. Walter – 2010-02-24 14:11:18

Смежные вопросы