|
|
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 13:57:59 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Lil@Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п. Код: plaintext в META-INF/persistence.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 01:49:39 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Lil@Есть небольшой веб проект, созданный на основе JPA + Hibernate. Он уже полностью рабочий. Теперь встал такой вопрос. Как создавать базу с таблицами. Можно ли сделать это как то программными средствами? Чтобы к проекту не прилагать инструкцию как создать базу с таблицами, и т.д. и т.п. А, ну да, база уже должна существовать, но ежели ее нету, и очень хочется все делать аутоматично, то напишите бутстрап, который до инициализации Hibernate будет проверять, есть ли база и при необходимости ее создавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 01:52:30 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
PassingByто напишите бутстрап А что это такое. Можно пример или где про это можно прочитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 12:20:05 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Lil@ PassingByто напишите бутстрап А что это такое. Можно пример или где про это можно прочитать? В случае веб-приложения сервлет, или класс, реализующий интерфейс ServletContextListener, который грузится самым первым и выполняет все, что требуется. Читать - любая книжка про сервлеты. В случае сервлета - должен стоять параметр <load-on-startup> с минимальным значением. Контекст-листенер просто ставится первым в web.xml. Различия, тем не менее, есть - контекст-листенер сработает в момент инициализации контекста (так, например, грузится Spring), сервлет, если не ошибаюсь, чуть позже. Примеры, в общем, вполне тривиальны. В контекст листенере все делается в методе contextInitialized, в сервлете - в методе init (doGet и doPost в этой ситуации можно вообще опустить). Пример: http://java.sun.com/developer/EJTechTips/2003/tt0825.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:32:26 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Хорошо, это понятно. Но для меня пока остается открытым главный вопрос. Как в этом контексте создать базу данных если ее нет и таблицы если их нет. sql файл с описание всего этого есть, как его подсунуть базе данных, чтобы она его импортировала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2007, 20:39:09 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Lila@Хорошо, это понятно. Но для меня пока остается открытым главный вопрос. Как в этом контексте создать базу данных если ее нет и таблицы если их нет. sql файл с описание всего этого есть, как его подсунуть базе данных, чтобы она его импортировала? Как создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 16:41:21 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
PassingByКак создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше). Я сейчас попробую лутше объяснить. Допустим у нас есть sql файл, созданный вручную или Hibernate, не важно. Из файла persistence.xml мы узнаем что за базу использует пользователь, как программно проверить есть ли база и т.п. Т.е. обрабатывать несколько баз, например, Postgres и MySQL. И если задана другая, то типо тогда сам ручками импортируй этот файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 22:47:34 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
java.sql.DatabaseMetaData метод getDatabaseProductName() позволит Вам узнать тип СУБД, однако если БД не создана, то Вам не удастся создать с ней соединение или придется использовать рутовый пароль к СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 10:42:10 |
|
||
|
JPA + Hibernate = создание базы и таблиц
|
|||
|---|---|---|---|
|
#18+
Lil@ PassingByКак создать саму базу данных и как проверить ее существование - зависит от конкретной БД. Не зная, что именно используется, подсказать сложно. Таблицы создаст сам Hibernate (см. выше). Я сейчас попробую лутше объяснить. Допустим у нас есть sql файл, созданный вручную или Hibernate, не важно. Из файла persistence.xml мы узнаем что за базу использует пользователь, как программно проверить есть ли база и т.п. Т.е. обрабатывать несколько баз, например, Postgres и MySQL. И если задана другая, то типо тогда сам ручками импортируй этот файл. Опять же, для проверки универсального способа нет. В постгресе надо подключиться к БД postgres и выполнить запрос: Код: plaintext Где 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 00:59:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34845051&tid=2144452]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
55ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 337ms |
| total: | 524ms |

| 0 / 0 |
