Распространите базу данных, созданную с помощью JavaDB, с помощью программы Java

Я создаю программу на Java, в которой мне нужно использовать много таблиц. Я принял решение создать все эти таблицы в файле JavaDB.

Однако теперь я хочу распространять этот заполненный файл JavaDB с моим файлом JAR для распространения, поскольку подключение к серверу не вариант.

В прошлом я мог только распространять пустую базу данных с JAR, используя этот пакет Derby.

Любые идеи?

Большое спасибо!


person Paintrick    schedule 23.07.2010    source источник


Ответы (1)


Я не уверен, что понял вопрос, но можно упаковать базу данных только для чтения внутри JAR. Из документации дерби:

Доступ к базам данных в JAR в пути к классу

После создания архива, содержащего одну или несколько баз данных Derby, его можно поместить в путь к классам. Это позволяет получить доступ к базе данных из приложения, при этом приложение не знает путь к архиву. Когда файлы jar или zip являются частью пути к классу, вам не нужно указывать подпротокол jar для подключения к ним.

Чтобы получить доступ к базе данных в файле zip или jar в пути к классу:

  1. Перед запуском Derby укажите путь к классу, чтобы включить файл jar или zip:

    CLASSPATH="C:\dbs.jar;%CLASSPATH%"
    
  2. Подключитесь к базе данных в файле jar или zip с помощью одного из следующих URL-адресов подключения:

    jdbc:derby:/databasePathWithinArchive
    
    (standard syntax)
    
    jdbc:derby:classpath:/databasePathWithinArchive
    
    (syntax with subsubprotocol)
    

Например:

jdbc:derby:/products/boiledfood
jdbc:derby:classpath:/products/boiledfood

Если это не ответ на вопрос, пожалуйста, уточните.

person Pascal Thivent    schedule 23.07.2010
comment
Спасибо, Паскаль, я думаю, что я новичок в этом. Куда мне поместить файл базы данных в JAR? и что такое подпротокол/путь к классам? Спасибо за помощь! Действительно ценю это! - person Paintrick; 23.07.2010
comment
@Paintrick: 1. databasePathWithinArchive - это относительный путь к корню элементов пути к классам. 2. подпротокол это часть: jdbc:derby:[subprotocol] - person Pascal Thivent; 23.07.2010