Вопрос по java – подключение к файловой базе данных derby

6

Я хочу работать с базой данных на основе файлов, используя Apache Derby. Мне было интересно, если кто-нибудь может carify, как подключить & amp; создать эту базу данных, используя NetBeans в качестве IDE. Я прошел через руководства по дерби, пытаясь выяснить это, но все, что я получил, было «Встроенное соединение с базой данных Derby JDBC», которое, как мне сказали, не является файловым подходом, и в любом случае соединение не работает , Любая помощь приветствуется

Я думаю, что & quot; Соединение с Embedded Derby JDBC DB & quot; это решение, которое вы ищете. Я ответил ниже, описывая, как использовать текущий пользовательский интерфейс IDE NetBeans для управления дерби. В любом случае ваши данные будут в конечном итоге храниться в файле. Основное различие заключается в том, выбираете ли вы встроенный маршрут или маршрут клиент-сервер, где для маршрута клиент-сервер требуется порт на хосте, позволяющий нескольким клиентам одновременно получать доступ к БД. simgineer

Ваш Ответ

4   ответа
5

jdbc:derby:foo;create=trueи создаст базу данных с именем foo в системном каталоге derby. Если вы хотите создать его в абсолютном месте на жестком диске, укажите абсолютный путь.jdbc:derby:/home/me/foo;create=true.

После того, как база данных создана, вы можете подключиться к ней с тем же URL, или вы можете удалить;create=true часть прочь

Вы можете установить системный каталог derby через системные свойства, например,System.setProperty("derby.system.homeSystem.setProp", "/home/bar/whatever");, Я думаю, что вам нужно будет сделать это до запуска базы данных derby, но я никогда не пытался сделать это впоследствии. Я обнаружил, что установка дома системы derby для приложения и указание относительного URL базы данных для лучшей работы, но это личное предпочтение.

Да, в Java вы всегда взаимодействуете с Derby через JDBC. jdbc: derby: это префикс для встроенных соединений. Он отличается для сетевых подключений к базе данных.
IIRC, встроенный драйвер не регистрируется самостоятельно. Сделатьnew EmbeddedDriver() (пусть netbeans выберет правильный вариант для вас - если это не так, тогда ваш путь к классу неверен), отмените результат и затем попытайтесь подключиться.
так является ли jdbc файловой версией? Amir.F
во-первых, спасибо за ответ, во-вторых, мне все еще не удается подключиться к базе данных, я решил, что сначала мне нужно определить базу данных, и я сделал это через интерфейс netbeans (понятия не имею, как это сделать иначе. ), и это дало мне URL-адрес для БД, который является jdbc: derby: history; create = true, я переместил все файлы derby jar в мой проект "lib & quot; каталог. я все еще получаю "подходящий драйвер не найден" ошибка, поэтому я проверил на других форумах, но не то, что они сказали, похоже, работает. я думаю, что это связано с каталогом, но я не могу понять это .. Amir.F
1

Все & quot; пакет вы получаете сервер приложений Glassfish с ним. После установки w / glassfish в IDE вы сможете выбрать вкладку «Службы» & gt; Разверните Базы данных, и вы должны увидеть Java DB. R. Нажмите на Java DB и выберите Start Server. Затем R. Нажмите еще раз и выберите Create Database. Введите имя БД, пользователя и пароль. Кстати, я обычно использую APP как для пользователя, так и для пароля, потому что таким образом он также становится схемой по умолчанию, и мне не нужно ничего менять в производственной среде.

Теперь в группе Java DB вы должны увидеть новую базу данных, которую вы создали. R. Нажмите на это и выберите подключиться. В группе «Базы данных» должен появиться элемент подключения. Разверните этот элемент, и вы должны увидеть схему APP, выделенную жирным шрифтом, указывая, что это схема по умолчанию. Разверните это и нажмите R. Нажмите «Таблицы», выберите «Создать таблицу», и вы получите пользовательский интерфейс, который поможет вам заполнить таблицу. Повторяйте, пока все ваши таблицы не будут созданы. Другими способами создания таблиц с использованием ide является щелчок правой кнопкой мыши по таблицам и выбор команды «Выполнить», где вы можете запустить DDL, чтобы определить схему таблиц. Это способ, которым я делаю создание базы данных, сохраняя свой сценарий в виде файла .sql, чтобы я мог удалить базу данных и повторно запустить ее при необходимости.

Вот пример моего сценария dbinit.sql, который я использую для создания своих таблиц в дерби.

create table usertable (
    username varchar(128) NOT NULL CONSTRAINT USER_PK PRIMARY KEY ,
    password varchar(128) NOT NULL,
    email varchar(128) NOT NULL,
    firstname varchar(128) NOT NULL,
    lastname varchar(128) NOT NULL
);

create table grouptable(
    username varchar(128) NOT NULL,
    groupid  varchar(128) NOT NULL,
    CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid),
    CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username)
        ON DELETE CASCADE ON UPDATE RESTRICT
);

insert into usertable(username,password,firstname,lastname) 
    values ('admin', '21232f297a57a5a743894a0e4a801fc3','','');
insert into grouptable(username,groupid) values ('admin', 'USER');
insert into grouptable(username,groupid) values ('admin', 'ADMIN');

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

enter image description here

Надеюсь это поможет! :)

2

драйвер, который вы хотите использовать, является встроенным драйвером в derby.jar. Вместо того, чтобы входить в «сторону кодирования вещей» так как примеров достаточно, я хотел бы использовать сам NetBeans, чтобы выполнить все до начала кодирования.

Поскольку я использую встроенный подход для преобразования файлов wireshark / tcpdump / nmap в записи базы данных, я использую немного другой подход.

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

Create: mkdir -p $HOME/opt/derby and cd ~/opt/derby. Download latest version from db.apache.org and unbundle is in $HOME/opt/derby/ Create the symbolic link: ln -s pwd/version pwd/latest. Create the symbolic link: ln -s pwd/latest pwd Startup netbeans.

С этого момента вы можете делать все в NetBeans:

Create an Ant Library and call it "ASF-Derby-Emb.": Tools->Ant Libraries->New Library. In the settings panel set the classpath to /home/[loginid]/opt/derby/default/lib/derby.jar and, optionally, add in the derbytools.jar. Click in on the source tab and added in the path to the source code if you have downloaded it. Click on the javadoc tab and and in /home/[loginid]/opt/derby/default/javadocs

Когда вы приступите к кодированию, просто добавьте библиотеку ASF-Derby-Emb, и она будет автоматически скопирована в ваш «dist.».

Теперь настройте JavaDB.

Set up the Services tab: Window->Services and select that tab. Select JavaDB and right-click and stop the JavaDB that may be running. Select JavaDB and right-click and click on Properties menu entry which will bring up a properties dialog. Browse to the JavaDB installation directory: in $HOME/opt/derby/default. Either leave the Database installation directory location as is or browse to the directory where you want to put it, but make sure you have read/write access. click 'OK' and now you have a different JavaDB installation and database location.

Просто изменив местоположение базы данных, вы можете разместить базу данных там, где вы хотите. Или вы можете выполнить то же самое в коде, что и URL: jdbc: derby: //database location directory.

В любом случае, теперь я могу настроить свою базу данных.

select JavaDB and right-click and select 'Create Database' and just fillin the dialog and the database will be initialized in the directory which was set up in the properties file. Create a connection: select JavaDB and then select the name of the database that has been created.

С этого момента есть три варианта:

Do nothing and create the code needed to create the tables, etc. Create a project and create a top-level project directory called sql and place all your sql scripts defining tables, etc. in that directory. Use the 'builtin facility: Service->jdbc:derby://??? and create the tables using the facility that appears and allows you to enter the necessary sql.

Лично, (2) я считаю, что лучший подход, изначально. Если у вас есть уже существующие сценарии sql с расширением .sql, просто открыв их под проектом, они будут загружены в редактор sql и могут быть там выполнены.

В качестве альтернативы (3) можно использовать и сохранить полученный скрипт.

В любом случае, многое может быть создано до начала кодирования. Есть много способов сделать это. Я бы предпочел, чтобы все было создано до написания кода - это значительно упрощает разработку тестовых случаев и использует предыдущее, мне не нужно прыгать в и из сетевых компонентов, чтобы что-то изменить.

0

вам следует скачать,дерби

Распакуйте файл. Запустите startNetworkServer.bat в каталоге bin. Он запустит сервер derby, который будет прослушивать порт № 1527.

Теперь в вашем коде Java:

DriverName= org.apache.derby.jdbc.ClientDriver

ConnectionString =jdbc:derby://localhost:1527/schema_name;create=true

Более того, вы также можете запросить базу данных derby, как мы делаем в oracle.

запустите ij.bat, расположенный в каталоге bin. тогда по подсказке:

connect 'specify connection url here'

и вы можете запустить SQL-запросы, такие как приглашение оракула.

Если вы хотите запустить сервер Derby на другом порту, выполните следующую команду в cmd:

startnetworkserver.bat -p 1234

Похожие вопросы