powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA + Hibernate = создание базы и таблиц
11 сообщений из 11, страница 1 из 1
JPA + Hibernate = создание базы и таблиц
    #34831201
Lil@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п.
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34833178
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lil@Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п.


Код: plaintext
<property name="hibernate.hbm2ddl.auto">create</property>

в META-INF/persistence.xml
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34833179
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lil@Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п.

А, ну да, база уже должна существовать, но ежели ее нету, и очень хочется все делать аутоматично, то напишите бутстрап, который до инициализации Hibernate будет проверять, есть ли база и при необходимости ее создавать.
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34834155
Lil@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PassingByто напишите бутстрап
А что это такое. Можно пример или где про это можно прочитать?
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34835131
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lil@ PassingByто напишите бутстрап
А что это такое. Можно пример или где про это можно прочитать?

В случае веб-приложения сервлет, или класс, реализующий интерфейс ServletContextListener, который грузится самым первым и выполняет все, что требуется. Читать - любая книжка про сервлеты. В случае сервлета - должен стоять параметр <load-on-startup> с минимальным значением. Контекст-листенер просто ставится первым в web.xml. Различия, тем не менее, есть - контекст-листенер сработает в момент инициализации контекста (так, например, грузится Spring), сервлет, если не ошибаюсь, чуть позже. Примеры, в общем, вполне тривиальны. В контекст листенере все делается в методе contextInitialized, в сервлете - в методе init (doGet и doPost в этой ситуации можно вообще опустить). Пример: http://java.sun.com/developer/EJTechTips/2003/tt0825.html
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34836595
Lila@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, это понятно. Но для меня пока остается открытым главный вопрос. Как в этом контексте создать базу данных если ее нет и таблицы если их нет. sql файл с описание всего этого есть, как его подсунуть базе данных, чтобы она его импортировала?
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34838897
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lila@Хорошо, это понятно. Но для меня пока остается открытым главный вопрос. Как в этом контексте создать базу данных если ее нет и таблицы если их нет. sql файл с описание всего этого есть, как его подсунуть базе данных, чтобы она его импортировала?

Как создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше).
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34839574
Lil@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PassingByКак создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше).
Я сейчас попробую лутше объяснить.
Допустим у нас есть sql файл, созданный вручную или Hibernate, не важно. Из файла persistence.xml мы узнаем что за базу использует пользователь, как программно проверить есть ли база и т.п. Т.е. обрабатывать несколько баз, например, Postgres и MySQL. И если задана другая, то типо тогда сам ручками импортируй этот файл.
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34840047
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java.sql.DatabaseMetaData метод getDatabaseProductName() позволит Вам узнать тип СУБД, однако если БД не создана, то Вам не удастся создать с ней соединение или придется использовать рутовый пароль к СУБД
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34842455
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lil@ PassingByКак создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше).
Я сейчас попробую лутше объяснить.
Допустим у нас есть sql файл, созданный вручную или Hibernate, не важно. Из файла persistence.xml мы узнаем что за базу использует пользователь, как программно проверить есть ли база и т.п. Т.е. обрабатывать несколько баз, например, Postgres и MySQL. И если задана другая, то типо тогда сам ручками импортируй этот файл.

Опять же, для проверки универсального способа нет. В постгресе надо подключиться к БД postgres и выполнить запрос:
Код: plaintext
 select count(datname) from pg_catalog.pg_database where datname = :dbname 

Где dbname - нужное Вам имя.

В MySQL, насколько я помню, достаточно команды show database и поиска по результатам.

Что касается создания. Для постгреса нужны права DBA, а дальше все более или менее просто - подключаетесь, к той же БД postgres (если, конечно, pg_hba.conf это разрешает) и с помощью JDBC выполняете обычный sql - CREATE DATABASE <DBNAME> OWNER <OWNER_NAME> ну и еще что Вам нужно: http://www.postgresql.org/docs/8.1/static/sql-createdatabase.html. MySQL - примерно так: http://forums.mysql.com/read.php?39,99321,102211#msg-102211.
...
Рейтинг: 0 / 0
JPA + Hibernate = создание базы и таблиц
    #34845051
Lil@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. буду пробывать
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA + Hibernate = создание базы и таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]