Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Эмуляция БД 
:(
    Опции темы
3,14
Дата 18.2.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Возникла такая пролема, делаю некую демонстрационную програму, одно из требований простота инсталяции... В связи с чем возникла проблема, кроде как бы нужно работать с БД через JDBC, но и устанавливать БД не хочется...
Нет ли какой java либы, к-ая обрабатывает простейшие SQL запросы, но на самом деле просто пишет всё в файл... скорость здесь не критична...


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Platon
Дата 18.2.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Слышал, что эти СУБД отличаются возможностью работать с ними без установки, т.е. работаешь с ними, как с компонентами твоей программы.
http://ru.wikipedia.org/wiki/SQLite
http://ru.wikipedia.org/wiki/Firebird Embedded

Это сообщение отредактировал(а) Platon - 18.2.2008, 17:21
PM MAIL ICQ   Вверх
Kangaroo
Дата 18.2.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(Platon @  18.2.2008,  16:19 Найти цитируемый пост)
Слышал, что эти СУБД отличаются возможностью работать с ними без установки, т.е. работаешь с ними, как с компонентами твоей программы.

И еще это поддерживают PostgreSQL и Derby, embedded mode называется.


--------------------
Lost....
PM MAIL MSN   Вверх
Platon
Дата 18.2.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



1 мой товарищ лестно отзывался о Firebird, тока он дотНетовец, но я так полагаю с Java тоже проблем не будет.
PM MAIL ICQ   Вверх
Hidrag
Дата 18.2.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 3
Всего: 25



так вроде Java DB аля Derby так позволяет работать smile


--------------------
user posted image
PM WWW ICQ   Вверх
Platon
Дата 18.2.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Хм, афтару спасибо за вопрос, натолкнул на размышления. Оказалось, что из перечисленных Derby реализован на Java и как мне видится, и реально платформонезависимая и, как мне показалось, лучший выбор.

Добавлено через 5 минут и 47 секунд
Более того, этот прокт от Apache, говорит о многом.
PM MAIL ICQ   Вверх
nornad
Дата 18.2.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(Platon @  18.2.2008,  21:03 Найти цитируемый пост)
Более того, этот прокт от Apache, говорит о многом. 

Хм... Хм... Доверять просто лейблу - не есть гуд. Например, IBM - отличный широкоизвестный лейбл. А вот софт у них далёк от идеала, как корова от Бетельгейзе. Один мой друг уже намучался с их Lotus и не только.
Так что лучше всё проверять на своей шкуре. smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Platon
Дата 18.2.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Хех, опередили меня аж на полчаса smile

Добавлено @ 18:28
nornad, лично я тесно работаю с Apache MINA (не на производственном уровне, конечно, но факт), очень нравится, удобно, безбажно, и просто приятно, а главное быстро.

Еще у них документация хорошая (туториалы), самостоятельно разобрался, сидя только на доках сайта.

Это сообщение отредактировал(а) Platon - 18.2.2008, 18:30
PM MAIL ICQ   Вверх
nornad
Дата 18.2.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Ну так я же и не говорил, что ирокезы обязательно гадость сделать должны. smile
Мораль басни - доверяй, но проверяй.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Hidrag
Дата 18.2.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 3
Всего: 25



С дерби похоже не все так просто, где то слышал, что для embedded достаточно приложить к проекту derby.jar и можно юзать бд как хочешь, а судя по мануалам, нужно будет запускать сервер этой дерби на определённом порту, прям как для большой СУБД... хм... а может я доку не с того конца читать стал, у самого скоро такая проблема встанет, надо будет писать курсач, нужно будет приложение работающее с БД писать, юзать для этого MS ACCESS религия не позволяет, а прикладывать к программе инсталлер какого нибудь MySQL нашим преподам пенсионерам врят ли понравится, вся надежда на дерби... и то не все так просто оказывается :(


--------------------
user posted image
PM WWW ICQ   Вверх
Kangaroo
Дата 18.2.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(Hidrag @  18.2.2008,  21:38 Найти цитируемый пост)
С дерби похоже не все так просто, где то слышал, что для embedded достаточно приложить к проекту derby.jar и можно юзать бд как хочешь, а судя по мануалам, нужно будет запускать сервер этой дерби на определённом порту, прям как для большой СУБД..

Не волнуйся, в дерби и так, и так можно smile Просто меняется строка подключения с бд.


--------------------
Lost....
PM MAIL MSN   Вверх
EJack
Дата 19.2.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



У дерби существует (или имеется) три режима запуска (работы) - первый это встроенный или embedded, то что именно тут и нужно, а можно запустить как серверную СУБД и коннектиться к нему с любой машины на нужный порт и работать по примеру как с ораклом или любым SQL серваком, есть и третий вариант, это встроенный в J2EE или WEB сервер вот с ним еще не разобрался.

при встроенном режиме работы достаточно подключить derby.jar и работать как обычно - загрузив драйвер и создав подключение.
в режиме NetworkServer необходимо на тачке стартануть сервак (есть спец батник для этого или sh для линукса) и в своей проге загрузив драйвер NetworkClient (кажеться) законектиться на сервак.
PM MAIL   Вверх
Maksym
Дата 19.2.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



3,14
HSQLDB - проще не придумаешь.

Добавлено через 4 минуты и 27 секунд
Hibernate использует для демонстрации примеров в своем тюториал. Там же написано как развернуть.
PM MAIL   Вверх
3,14
Дата 20.2.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Взял Derby, единственный найденный минус - не поддерживается автоинкрементация Primary Key.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
powerOn
Дата 20.2.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(3 @ 14, 20.2.2008,  22:13 Найти цитируемый пост)
Взял Derby, единственный найденный минус - не поддерживается автоинкрементация Primary Key. 


Почему не поддерживается? 

Создадим таблицу:
Код

CREATE TABLE test
(
pr_key INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
some_data VARCHAR(256),
UNIQUE (pr_key)
)


выполним вставку данных:
Код

insert into test (some_data) values ('testdata1');



Это сообщение отредактировал(а) powerOn - 20.2.2008, 22:33


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Platon
Дата 21.2.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



А вот мне интересны показатели HSQLDB, якобы показатели производительности в 2 раза лучше. Как это понимать?
PM MAIL ICQ   Вверх
EJack
Дата 21.2.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Цитата(powerOn @ 20.2.2008,  22:31)
Цитата(3 @ 14, 20.2.2008,  22:13 Найти цитируемый пост)
Взял Derby, единственный найденный минус - не поддерживается автоинкрементация Primary Key. 


Почему не поддерживается? 

Создадим таблицу:
Код

CREATE TABLE test
(
pr_key INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
some_data VARCHAR(256),
UNIQUE (pr_key)
)


выполним вставку данных:
Код

insert into test (some_data) values ('testdata1');

А еще есть возможность и такая:

Код

CREATE TABLE test
(
pr_key INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),
some_data VARCHAR(256),
UNIQUE (pr_key)
)


тогда инсерт может быть и таким

Код

insert into test (some_data) values (DEFAULT, 'testdata1'), (100, 'testdata2');


В первом случае произойдет вставка авто инкрементного значения, а во втором значения 100 в поле pr_key

Добавлено через 2 минуты и 41 секунду
Цитата(Platon @ 21.2.2008,  12:39)
А вот мне интересны показатели HSQLDB, якобы показатели производительности в 2 раза лучше. Как это понимать?

Так тогда необходимо реальные тесты провести, кто кого под разными типами нагрузок. Но это уже надо делать компетентным людям.

Хотя мое мнение на небольших объемах данных и не сложных запросах разница в производительности будет минимальна.
PM MAIL   Вверх
Maksym
Дата 21.2.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата(EJack @  21.2.2008,  12:51 Найти цитируемый пост)
Хотя мое мнение на небольших объемах данных и не сложных запросах разница в производительности будет минимальна.

Боюсь HSQLDB вообще не приспособлена для работы с большими объемами.
PM MAIL   Вверх
EJack
Дата 21.2.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



вот по этом тестировать должны (ну если захотят) знающие люди, Я вот про HSQLDB вообще не чего не знаю.
PM MAIL   Вверх
Hidrag
Дата 21.2.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 3
Всего: 25



Так для больших объемов данных и СУБД соответствующие, а так для нескольких тысяч строк таблицы и не важно за 1 секунду или за 2 отработает...


--------------------
user posted image
PM WWW ICQ   Вверх
Platon
Дата 21.2.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Цитата

Disk tables (CACHED TABLE) up to 8GB and text tables up to 2GB each

Ну, я думаю, для задачи средней сложности подходит вполне.
PM MAIL ICQ   Вверх
3,14
Дата 26.3.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



М-да, судя по всему поосторожнее следует быть и с apache derby, и с HSQLDb. И подумать стоит ли их использовать. Столкнулся с проблемой в SQL запросах: http://forum.vingrad.ru/forum/topic-202332.html Решение, пока, таки не нашлось  smile 


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
mbasil
Дата 26.3.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Это 
Код

SELECT c.id, c.name, c.load, min(b.ip_id) as min_ip_id 
FROM em_configs c, em_boxes b 
WHERE c.id=b.config_id 
GROUP BY c.id

даже в Oracle работать не будет. Правило есть - если одиночный столбец попадает в извлекаемый список вместе с групповой функцией, он обязательно должен быть помещен в клаузу GROUP BY
Код

SELECT c.id, c.name, c.load, min(b.ip_id) as min_ip_id 
FROM em_configs c, em_boxes b 
WHERE c.id=b.config_id 
GROUP BY c.id, c.name, c.load

Попробуйте, что нибудь вроде этого
Код

SELECT a.id, a.name, a.load, d.min_ip_id
FROM em_configs a, ( SELECT c.id, min(b.ip_id) as min_ip_id 
                       FROM em_configs c, em_boxes b 
                       WHERE c.id=b.config_id 
                       GROUP BY c.id) d
WHERE a.id = d.id


Это сообщение отредактировал(а) mbasil - 26.3.2008, 16:10
PM MAIL   Вверх
3,14
Дата 26.3.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



mbasil, да, похоже что я поторопился. Там не сразу, но тоже нашли в чём проблема. Странно что в итоге столько времени потратилось, проблема вроде была простейшая.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
mbasil
Дата 26.3.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Полагаю Вас ввела в заблуждение некоторая неряшливость, допускаемая разработчиками MySQL в части синтаксиса SQL. Например они допускают выполнение операции SELECT в отсутствии клаузы FROM.
А года два назад, когда немного работал MySQL столкнулся с вопиющим фактом: В таблице можно было создать ограничение NOT NULL на некоторый столбец, а потом смело внести NULL значение в этот столбец. В Oracle с такими "ляпами" я никогда не сталкивался.

Приведенная же Вами задача имеет рассмотренные ограничения, очевидно не по причине технических недоработок, а вследствие осознанного решения, что так должно работать группирование. Предполагаю, что такое поведение определено в стандарте SQL 92г., хотя гарантировать и не могу, нет времени искать текст.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.