2015-09-15 4 views
0

Я пытаюсь создать приложение сервера базы данных Derby с помощью Java. До сих пор мне удалось создать клиентские приложения, которые подключаются к базе данных дерби, к которой можно получить доступ с сервера. Я начал использовать команды derby cmd. Что мне нужно сделать, это приложение java, которое при запуске запустит сервер базы данных дерби. До сих пор все, что я натолкнулся, этоПриложение сервера базы данных Derby с использованием Java

NetworkServerControl serverControl = new NetworkServerControl(InetAddress.getByName("myhost"),1621); 

    serverControl.start(); 

Каждый раз, когда я запускаю этот код, ничего не происходит. Я новичок в Derby, и мне действительно нужно понять это для моего приложения. Пожалуйста, не упоминайте документы Apache Derby или Oracle derby, поскольку я прошел через них и не понял. Простое точное решение будет высоко оценено!

P.S. Я добавил файл derbynet.jar в свой проект.

+0

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

+0

@BryanPendleton Да, я пытаюсь создать отдельный процесс, который будет запускать сетевой сервер дерби, который может принимать клиентские соединения Derby из других процессов. Пожалуйста, укажите, как. Спасибо за ваш ответ!:) –

ответ

0

Чтобы запустить сервер Derby из одной VM (10.11.1.1) дерби в качестве приложения:

скачать бен пакет: http://ftp.ps.pl/pub/apache//db/derby/db-derby-10.11.1.1/db-derby-10.11.1.1-bin.zip

и перейдите в db-derby-10.11.1.1-bin \ lib

Скопируйте все банки из библиотеки lib в свою папку lib в приложении, добавьте в зависимости.

затем в приложении выполнить это:

String[] args = {"start"}; 
    // for other port; 
    // String[] args = {"start","-p","1088"}; 

    org.apache.derby.drda.NetworkServerControl.main(args); 

Если вы хотите начать отдельный процесс затем используйте:

Runtime.getRuntime().exec(cmdarray) 

где cmdarray Ваш путь к исполняемым и параметры для запуска.

+0

да! это сработало для меня. Мне нужна дополнительная информация. Это создает сервер по умолчанию, который только слушает localhost на порту 1527, я хотел бы настроить его с помощью derby.properties. Мой вопрос: где я должен создать этот файл? В папке src моего приложения? пожалуйста, упомянуте. –

+0

Найдено файлов свойств. Работая над этим прямо сейчас. –

0

Вам просто нужно использовать специальный URL соединения, то котелок может автоматически создать базу данных:

попробовать:

JDBC: котелок: $ {mainDirectory} $ {DbName}; создать = истинный

заменить $ {} mainDirectory с путем к БД, то есть: C: \ derbyDatabase \

raplce $ {DbName} к некоторому имени, например: myEmbeddedDatabase

так что это может быть:

connection = DriverManager.getConnection("jdbc:derby:C:/derbyDatabase/myEmbeddedDatabase;create=true"); 

создавание = TRUE означает, что он будет создан, если он не существует

также завершить соединение на использовании приложение выхода:

DriverManager.getConnection("jdbc:derby:;shutdown=true"); 
+0

Нет, это способ создания ** базы данных **. Вопрос о том, как создать базу данных ** server **, который является Java-процессом, который запускает код сервера Derby и может принимать клиентские соединения Derby. –

+0

@BryanPendleton Да, я пытаюсь создать отдельный процесс, который будет запускать сетевой сервер дерби, который сможет принимать клиентские соединения Derby от других процессов. Пожалуйста, укажите, как. Спасибо за ваш ответ! :) –

+0

Вы хотите запустить БД в той же виртуальной машине, что и ваше приложение, или как отдельный процесс? –

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