java se с гибернацией и JavaDB. Как мне развернуть приложение?

#java #database #hibernate #javadb

#java #База данных #гибернация #джавадб

Вопрос:

1) Когда я отправляю свое приложение своему учителю, как мне сказать ему, чтобы он создал несколько пустых таблиц и заполнил их образцами данных при ПЕРВОМ запуске приложения? Я знаю, что могу включить sql-скрипт в свои файлы или что-то в этом роде. Могу ли я поручить hibrenate создавать пустые таблицы? У меня есть свои сущности, которые я использую в своем приложении.

2) Когда запускается моя ide (NetNeans), я захожу в службы и запускаю свою базу данных (JavaDB) вручную, потому что, если я этого не сделаю, при запуске приложения hibernate жалуется, что он не может подключиться. Как мне сообщить hibernate start о запуске db (его на localhost: 1527)?

моя дочь.cfg:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
    <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
    <property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
    <property name="hibernate.connection.username">app</property>
    <property name="hibernate.connection.password">app</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <mapping resource="entity/PurchaseOrder.hbm.xml"/>
    <mapping resource="entity/Customer.hbm.xml"/>
    <mapping resource="entity/ProductCode.hbm.xml"/>
    <mapping resource="entity/Product.hbm.xml"/>
    <mapping resource="entity/MicroMarket.hbm.xml"/>
    <mapping resource="entity/Manufacturer.hbm.xml"/>
    <mapping resource="entity/DiscountCode.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
 

У меня нет хорошего знания английского языка, и его трудно сформировать в Google. Просто скажите мне, как вызываются эти функции (если они существуют).

Любая помощь будет признательна. Заранее благодарю.

Ответ №1:

1) Когда я отправляю свое приложение своему учителю, как мне сказать ему, чтобы он создал несколько пустых таблиц и заполнил их образцами данных при ПЕРВОМ запуске приложения? Я знаю, что могу включить sql-скрипт в свои файлы или что-то в этом роде. Могу ли я поручить hibrenate создавать пустые таблицы? У меня есть свои сущности, которые я использую в своем приложении.

Да, вы можете использовать hbm2ddl свойство, см. Это

Когда запускается моя среда ide (NetNeans), я захожу в службы и запускаю свою базу данных (JavaDB) вручную, потому что, если я этого не сделаю, при запуске приложения hibernate жалуется, что не может подключиться. Как мне сообщить hibernate start для запуска db (его на localhost: 1527)?

Нехорошо обрабатывать такие вещи нашим приложением, вместо этого сделайте так, чтобы ваше приложение принимало разные конфигурации, используя файл свойств, который может быть

Комментарии:

1. спасибо за ответ и ссылку. Но мне действительно нужно, чтобы наше приложение проверяло, запущена ли БД, а если нет, запускало ее

2. может быть, вы можете вызывать собственные команды из java, но это плохо, потому что много раз для запуска БД требуется какой-то пароль, и он может отличаться для каждой машины.. так что лучше написать это в руководстве по установке 🙂

3. еще раз спасибо за ответ! я использую стандартную базу данных со стандартным проходом. Я мог бы подключиться к базе данных с помощью стандартного драйвера, но как сказать hibernate, чтобы он больше не подключался?

4. В моем приложении, когда гибернация выполняет первые запросы, это занимает больше всего времени. Я мог бы использовать соединение jdbc один раз при запуске. могу ли я указать гибернации использовать установленное соединение?