powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / HSQLDB
5 сообщений из 5, страница 1 из 1
HSQLDB
    #37641833
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как нужно создавать таблицы, чтобы они оставались после завершения программы?

Код: java
1.
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:FBI", "SA", "");



Здесь мы создаем саму базу данных.

Код: java
1.
create memory table My(id integer, primary key(id));



я так понимаю здесь мы говорим, что нам хочется таблицу, которая будет висеть в памяти приложения. И соответственно с завершением приложения, таблица тоже уничтожится. Всё правильно?

Вот допустим у нас в коде записано буквально следующее:
1. Получить соединение
2. Создать таблицу My
3. Внести одну запись в эту таблицу
4. Commit

Завершить работу программы.

Далее, запускаем эту же программу еще раз, и о чудо, всё отрабатывает заново.

Мне по доке понятно, что закрыли приложение - таблица исчезла, но это же не клево. Хочется потом запуская приложение чтобы уже была определена таблица My.

как этого добиться?
...
Рейтинг: 0 / 0
HSQLDB
    #37641841
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты указал создать таблицу в памяти вот он и создаёт в памяти. Укажи чтоб создал на диске.
...
Рейтинг: 0 / 0
HSQLDB
    #37641846
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где это указать?

из официальной доки:

Код: sql
1.
2.
3.
4.
5.
6.
7.
<table definition> ::= CREATE [ { <table scope> | <table type> } ] TABLE <table name> <table contents source> [ ON COMMIT { PRESERVE | DELETE } ROWS ]

<table scope> ::= { GLOBAL | LOCAL } TEMPORARY
<table type> :: = MEMORY | CACHED
<table contents source> ::= <table element list> | <as subquery clause>
<table  element  list>  ::=  <left  paren>  <table  element>  [  {  <comma>  <table element> }... ] <right paren>
<table element> ::= <column definition> | <table constraint definition> | <like clause>
...
Рейтинг: 0 / 0
HSQLDB
    #37641909
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 01.02.2012 14:49, scymaks wrote:

> я так понимаю здесь мы говорим, что нам хочется таблицу, которая будет висеть в памяти приложения. И соответственно с
> завершением приложения, таблица тоже уничтожится. Всё правильно?

По-моему не совсем. И MEMORY, и CACHED таблицы при закрытии БД сбрасываются на диск. Но MEMORY TABLE позволительно
целиком находиться в памяти, это хорошо для небольших объемов данных (справочников, например). Для больших объемов
используется CACHED TABLE, которой ограничивается максимальный объем используемой памяти, чтобы ненароком не занять ее всю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
HSQLDB
    #37641974
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
^_^

Оказывается надо было в конце выполнить команду SHUTDOWN.... )
Ибо тогда при следующем запуске появляется долгожданный: java.sql.SQLSyntaxErrorException: object name already exists: My
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / HSQLDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]