2014-01-03 5 views
1

Я использую версию hsqldb-1.8 в автономном режиме. Я хочу запустить сервер с некоторыми базами данных. Я хотел бы использовать командную строку из документации HSQLDB:Подключить базы данных к серверу HSQLDB

java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb 

Моей проблемы у меня есть сценарий для каждой базы данных, мне нужно, и эта командная строка создает новую базу данных, не используя мой сценарий. Пусть проблема исходит от одной из этих точек:

  • местоположение моего сценария
  • продление моего сценария, который является SQL-файл
  • что-то неправильно или отсутствуют в командной строке
  • Командная строка не может этого сделать => Если да, есть ли способ сделать это?

Я хотел бы остановиться в консоли, чтобы сделать все это. Таким образом, мне нужно будет запустить скрипт, чтобы выполнить всю работу. Любая помощь будет высоко ценится ! Спасибо

+0

Вам нужно войти в базу данных, чтобы иметь возможность запускать скрипт? – Ashish

+0

ну .. я не понял, о чем вы говорите ^^ У меня есть некоторые скрипты, и я хочу, чтобы HSQLDB использовал их для создания баз данных на сервере – Soma

+0

Я не использовал hsqldb, но вместо этого я использую mysql, так, например, если У меня есть сценарий на рабочем столе. я бы зашел в каталог Desktop, а затем в mysql (mysql -u username -p password) из командной строки. теперь я использую команду «source script.sql», так вот как она ее подбирает. и да расширение - .sql. надеюсь, что это имеет смысл :) – Ashish

ответ

2

Я нашел решение моей проблемы :)

Я создал server.properties файл, расположенный в каталоге ../hsqldb-1.8.10/hsqldb/, который содержит следующее:

server.database.0=file:mydb;user=test;password=test 
server.dbname.0=mydb 

Я также создал файл mydb.script с этим код в нем:

CREATE SCHEMA PUBLIC AUTHORIZATION DBA 
CREATE MEMORY TABLE MYDB(ID BIGINT NOT NULL,VERSION INTEGER NOT NULL,NOM VARCHAR(255)) 
CREATE USER TEST PASSWORD "TEST" 
GRANT DBA TO TEST 
SET WRITE_DELAY 10 
SET SCHEMA PUBLIC 
INSERT INTO MYDB VALUES(1,0,'test') 

Затем я запускаю сервер HSQLDB с помощью этой команды:

java -cp ../lib/hsqldb.jar org.hsqldb.Server 

Мы можем видеть, что база данных успешно создана:

[[email protected]]: Database [index=0, id=0, db=file:mydb, alias=mydb] opened successfully in 313 ms. 

Чтобы проверить, если база данных действительно содержит мои данные, я использую инструмент HSQLDB DatabaseManager с этой командой:

java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager 

Для подключения:

  • URL: jdb с: HSQLDB: файл MyDB
  • Пользователь: тест
  • Пароль: тест

После этого, мы связаны с базой данных. Выполните команду SELECT * FROM MYDB;, и мы увидим строку базы данных.

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

+0

Если вы не хотите настойчивости в своей базе данных, просто удалите файл 'mydb.backup' из своего каталога. Фактически, единственным файлом, который вам нужен, является 'mydb.script' – Soma

0

HSQLDB создает файл с расширением .script для внутреннего использования. Это не то, что вы создаете.

Сначала запустите сервер и подключитесь к одной из баз данных. В этот момент база данных будет пустой. Затем используйте утилиту SQLTool, которая находится в почтовом пакете HSQLDB, чтобы выполнить ВАШ сценарий в базе данных. Все таблицы и данные, созданные вашим скриптом, сохраняются в базе данных HSQLDB.

+0

Прямо сейчас, у меня другая проблема. Я запускаю Сервер с помощью команды в моем вопросе. Я изменил расширение моего SQL-файла на SCRIPT-файл. Когда сервер запущен, мой SCRIPT-файл был обновлен, но все еще имеет мой 'CREATE TABLE'. Я попытался подключиться к нему с помощью «DatabaseManager», но не нашел «USER». Я попробовал имя базы данных, sa или пустое. Есть идеи ? – Soma

+0

Решил его с помощью файла server.properties :) – Soma

1

Самого лёгкий способ, чтобы соединиться с с HSQLDB (IMDB)

Строка соединения

<property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
<property name="url" value="jdbc:hsqldb:file:/home/vikask/elmo/db/elmo;" /> 
<property name="username" value="sa" /> 
<property name="password" value="" /> 

В этом простом Java проект, чтобы продемонстрировать гибернации, HSQL и Maven с помощью Java аннотаций. База данных HSQL используется, чтобы сделать проект простым, поскольку мы можем использовать базу данных в памяти, и нам нужен только JAR-файл, который будет включен в наш проект.

Чтобы подключиться к встроенной базе данных HSQLDB, выберите тип соединения JDBC (HSQLDB Embedded) из списка типов соединений. Введите любую регистрационную информацию, если это применимо, а затем укажите, следует ли использовать существующую встроенную базу данных или создать HSQLDB новую встроенную базу данных.

Если встроенная база данных уже существует, перейдите в каталог, в котором находятся файлы базы данных (такие как database_name.log, database_name.script и database_name.properties), и выберите файл database_name.script. Если база данных не существует, введите или создайте новое местоположение для базы данных HSQLDB. Затем HSQLDB создаст необходимые файлы с префиксом с введенным именем базы данных. Например, при вводе/home/vikask/sample в качестве местоположения базы данных HSQLDB создаст файл с именем sample.properites и, возможно, sample.log и т. д. Фактическое имя базы данных является просто образцом в этом случае.

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