powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор СУБД для небольшой Java-утилиты
25 сообщений из 325, страница 4 из 13
Выбор СУБД для небольшой Java-утилиты
    #38245972
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
Любовь к ООП это диагноз.
А вот в РСУБД ооп не пускают. И это правильно))))) LOL
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246053
Шаров Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н1. Пробовал JAXB, загружаю xml-файлы в классы, но дальше проблема как с этими классами работать, как делать запросы и выборки.
2. Есть идея заюзать inmemory-database (например HSQLDB) через ORM (например Hibernate) и сеарелизовать все это дело в xml-файлы, но как то навороченно получается.
В общем прошу совета.

Есть возможность делать запросы к объектам при помощи XPATH.

То есть ты загружаешь при помощи JAXB из XML в JavaBean, а потом по объектной модели делаешь запросы XPath (аккуратно). Я столкнулся с тем, что при больших объектных деревьях, лучще использовать абсолютные пути, например, не пользоваться // и *.
Ну и сортировки по-моему в XPATH нету.

Код: java
1.
2.
3.
4.
5.
                // beanObject - корень твоего объекта
		JXPathContext content = JXPathContext.newContext( beanObject );
                
                // XPATH - язык запросов к XML 
		Object o = content.selectSingleNode(xpath);



Подробнее см. api org.apache.commons.jxpath.JXPathContext от appache.

И ещё, если ты пишешь что-то универсальное, то в этом случае очень помогает BeanCommon.

Например,
Object value = PropertyUtils.getProperty("любой объект", "имя свойства")

Кстати "имя свойства" может быть и сложным.

Например,
"nsi.list[5].mapList(vasa).id"
В объекте в nsi есть объект со свойством list - массив или List, взять его 6-ой элемент в котором есть HashMap с именем mapList в котором есть ключ "vasa" а в значении объект со свойством id.

Подробнее см. api BeanCommon от appache.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246064
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Максим Н,
Ты упорно хочешь разделить по живому таблицу и FK по разным файлам.
Тогда как по рознь не живут.
Это как пример, яркий пример, у меня по этому поводу пунктик (а может быть даже целый пункт, бывает удобно развернуть базу, накатив таблицы, а потом ФК, не парясь с последовательностью, да и вообще мало ли какие случаи бывают). Но я не кого не заставляю так делать, просто показываю как можно будет сделать, гибкость, что можно хранить объекты как угодно где угодно, а потом без труда собрать, организовать в другую структуру и т.д. и т.п. Все это зависит от настройки, пртотипы xml-ин я уже показывал выше.

А то что в среднестатистической ИДЕ'шке при просмотре кода таблицы вам вываливается все с потрохами (тэйблспэйсами, параметрами хранения, триггерами индексами и прочими) это нормально?

Petro123У тебя ложки и вилки в разных ящиках на кухне?

В одном, но разделены перегородкой, слева вилки - справа ложки.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246102
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НPetro123У тебя ложки и вилки в разных ящиках на кухне?

В одном, но разделены перегородкой, слева вилки - справа ложки.
У меня тоже ))
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246104
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НLeonidv,

авторЭто решается средствами типа maven, при большом желании.
В точку. Я как раз начинал с Ant'а (потом даже пробовал заюзать Thor)(Maven наверное тоже подошел бы, но он имхо немного для других целей...).
Тут maven как раз хорошо подходит, хотя, конечно, там overhead'а будет слишком много.

В целом, я понял, что вы хотите. Спасибо за развернутый ответ.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246166
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
Я и говорю, что в обычной схеме, fk в одном create table.
Ты их по файлам раскидывать сам будешь? И где тогда автоматизация?
Для ложек файл это ящик.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246183
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим НРазве процесс создания и ее сборки из исходников, хранящихся в СКВ, это не одно и то же?
А как же ночные билды?Отделяйте процесс разработки от процесса тестирования. И "оба два" от реальной системы клиента.
У разработки и тестирования разные цели и разные задачи.
Одна из задач разработки - обеспечение оборачиваемости. А это противоречит одной из задач реальной системы - обеспечение стабильности. С тестированием всё ещё проще - его нельзя сокращать. Если есть баг, проявляющийся только после недели аптайма - можно не тестировать его исправление, но нельзя сократить время этого теста.За частую разработчики не имеют никакого доступа к продакшн-базам (коммерческая тайна, соображения безопасности, 152-й фз и т.д.), не говоря уже о рабочих бэкапах и т.д."Не имеют никакого доступа" ещё не значит "не могут получить".
Кроме того, в реальной системе, которая уже отчуждена и работает у клиента порядок будет именно таким, как расписал я.Я же говорю о системных грантах, системных пользователях, для разработчиков, тестировщиков администраторов и т.д. Кто то может править процедуры, кто то таблицы, кто то только для отдельных модулей и т.д.Ответьте на один простой вопрос - кто является владельцем схемы вашего приложения?И почему не может быть скриптов, которые обновляют тестовые данные (да и вообще всю структуру), покореженные разработчиками и тестировщиками за рабочий день?Зачем? Если разработчик или/и тестеровщик покорёжили что-то, это что-то создаётся с нуля или разворачивается из бэкапа. Без всяких хитроумных скриптов с неестественым интеллектом.Почему я не могу собрать свежую версию базы (у которой еще нет рабочего дампа, нет релизы), развернуть на отдельной машине например для тестов?Можете, но если "ещё нет рабочего дампа" это должно быть или создание нового эталона или обновление существующего.
В реальности должно быть и то и другое. Первое для новых клиентов, второе - для сущестующих.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246211
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
авторЗачем? Если разработчик или/и тестеровщик покорёжили что-то, это что-то создаётся с нуля или разворачивается из бэкапа. Без всяких хитроумных скриптов с неестественым интеллектом.
+1
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246261
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Я и говорю, что в обычной схеме, fk в одном create table.
Во многих РСУБД (про которые знаю) если создавать FK прямо в create table, то он получит сгенеренное непонятное имя, а вот если alter table'ом, то можно задать имя, оформленное по внутренним разработческим стандартам (если они есть) и во время ошибок ссылочной целостности точно знать с какой таблицей проблема.
Поэтому можно рассматривать (но опять же не обязательно) FK как отдельный именованный объект (тоже и с ПК и констрейнтами).
Ну и имхо здорово если есть возможность как то выделить отдельно эти вещи, отдельно накатить или не накатить.



Petro123 Ты их по файлам раскидывать сам будешь? И где тогда автоматизация?
По файлам не обязательно расскидывать, можно в одном, но выделив например комментариями.
Если предполагается ручное программирование (сторонником чего я являюсь), то нет никакого труда выделить отдельно ДДЛ таблицы и ее ФК, ПК в отдельные файлы или в отдельные операторы при создании таблицы.
Если чрез визуалку, то есть средства типа DBMS_METADATA (для других баз наверное тоже что то похожеее есть), которые позволяют сгенерить код соданного объекта в нужном виде.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246274
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Максим Н,
Любовь к ООП это диагноз.
А вот в РСУБД ооп не пускают. И это правильно))))) LOL

Не в ООП дело. Просто для меня странно сложившееся отношение к разработке БД.
Т.е. если например Java-программист разрабатывает пользовательский интерфейс и использует какой-либо визуальный построитель форм, то это считается не круто. Считается, что он плохо разбирается в этом вопросе, а с использованием билдера (и само собой нагенеренного кода) нельзя добиться большей гибкости и производительности. Ну а крутой специалист сделает все ручками, ну или по крайней мере будет в курсе какой код генерится, что имеено он делает, ну а где лучше написать самостоятельно.

А вот в мире БД надизайнить базу в навороченном визуальном интерфейсе, выгрузить сгенеренный код (или вообще целый дамп), иногда даже не задумываясь что там нагенерилось, и почему именно такой, это вполне нормально. Несмотря на то, что большинство СУБД обладают своим собственным языком, с широкими возможностями и особенностями, и визуальными средствами всех тонкостей не опишешь. Но многими разработчиками он воспринимается как некий низкоуровневый машинный код, на котором ИДЕ общается с СУБД.

Часто разработчикам приходится изучать не саму СУБД (или не только ее), а визуальный редактор для нее предназначенный, и зачастую сам этот редактор иногда и ассоциируется с СУБД. Люди становятся заложниками ИДЕшек.

Я уже молчу что эти среды делают с исходным кодом объектов, доставая его из потрохов базы. Это сравнимо с декомпиляцией приложения.
И такой подход навязывается многими инструментами, а вот инструментов с альтернативным подходом не так много.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246275
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шаров Сергей,

Спасибо большое, за JXPathContext отдельное.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246280
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н
А если в одном файле, т.к нужна очередность операторов. То получаем скрипт. Банальный скрипт. Хочешь один. ... или 15.
А еще нужно перенакатывать его. Поэтому пишут
CREATE REPLACE PROCEDURE.....
А еще пишут сначала мастер таблицу потом чилдрен потом fk а потом каскад.
И это все руками.
Ты же хочешь в одиночку GWT для бд написать.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246283
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

авторОтделяйте процесс разработки от процесса тестирования. И "оба два" от реальной системы клиента.
У разработки и тестирования разные цели и разные задачи.
Одна из задач разработки - обеспечение оборачиваемости. А это противоречит одной из задач реальной системы - обеспечение стабильности. С тестированием всё ещё проще - его нельзя сокращать. Если есть баг, проявляющийся только после недели аптайма - можно не тестировать его исправление, но нельзя сократить время этого теста.
Согласен, способов и целей сборки может быть много, в зависимости от приложения и от того как оно разрабатывается.

авторОтветьте на один простой вопрос - кто является владельцем схемы вашего приложения?
Я не говорю про конкретное приложение, а про общий случай.

авторЗачем? Если разработчик или/и тестеровщик покорёжили что-то, это что-то создаётся с нуля или разворачивается из бэкапа. Без всяких хитроумных скриптов с неестественым интеллектом.
Иногда процесс создания базы с нуля или развертывания из бэкапа (которого просто может и не быть еще, т.к. база в разработке) может быть весьма время затратным. Так что невижу ничего страшного просто накатить тестовые или (и) справочные данные на конкретные таблицы. Ну и не вижу в этих скриптах ничего хтроумного и неестественного, наоборот все просто как хозяйственное мыло - простые понятные скрипты с DML'ем лежат в СКВ и мы их просто достаем по необходимости для конкретных таблиц конкретного модуля.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246289
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
》 Люди становятся заложниками ИДЕшек.

Это что то новое. Расшифруй.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246290
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Максим Н
А если в одном файле, т.к нужна очередность операторов. То получаем скрипт. Банальный скрипт. Хочешь один. ... или 15.
А еще нужно перенакатывать его. Поэтому пишут
CREATE REPLACE PROCEDURE.....
А еще пишут сначала мастер таблицу потом чилдрен потом fk а потом каскад.
И это все руками.
Ты же хочешь в одиночку GWT для бд написать.

Очредность операторов это уже к вопросам сборки относится. Я предлагаю хранить объекты в структурированном виде в СКВ (причем в конф. файлах описанно что и где именно), а вот как их собирать в скрипт тут возможны любые варианты в зависимости от потребностей разработчика, это тоже настривается (я тут писал уже про опции сборки).

GWT не хочу, только нативный sql, но помочь хранить его организованно и структурированно.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246292
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Максим Н,
》 Люди становятся заложниками ИДЕшек.

Это что то новое. Расшифруй.

Сами ИДЕ навязвают способ работы с БД, нашел объект в дереве (обычно жестком и ненастраиваемом), наклацал кнопок и тут же этот объект изменился в подключенной базе (наживую получается), ну а потом предоставляются удобнейшие средства для того чтобы аккуратно выковырить код этого объекта и засунуть в дамп, или сделать diff скрипт с его предыдущей версией из другой базы.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246293
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
Опять теория. У меня и сейчас скрипт в скв.
Пришел к тебе программист. Он уже знает SQL. Где ему писать очередность Одного объекта из 2 х таблиц с каскадом?
А потом расписаться за что? За спрингКонфиг и кучу файлов?
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246295
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н,
Про ide.
Не нравится вживую тогда erwin. Кто виноват что ты его пишешь но никогда не видел.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38246306
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Максим Н,
Про ide.
Не нравится вживую тогда erwin. Кто виноват что ты его пишешь но никогда не видел.

Принцип тот же самый что и с ИДЕшками, та же визуалка, та же кодогенерация.

erwin я не пишу, возможно я не могу нормально объяснить свою идею.
Чуть позже выложу ссылку на прототип, если есть интерес, тогда будет понятнее.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38249849
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим Н.........
Люди становятся заложниками ИДЕшек.
..............
Сами ИДЕ навязвают способ работы с БД
Максим! Вы хотите освободить от привычного и знакомого гнета ИДЕ заменив на непривычный - Вашей системы? Это хороший первый шаг к мировому господству. (шутка)
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38250184
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovМаксим Н.........
Люди становятся заложниками ИДЕшек.
..............
Сами ИДЕ навязвают способ работы с БД
Максим! Вы хотите освободить от привычного и знакомого гнета ИДЕ заменив на непривычный - Вашей системы? Это хороший первый шаг к мировому господству. (шутка)

Почему бы и нет?(шутка)

А если серьезно, мне просто нужен легкий и ненавязчивый инструмент, который подошел бы под вышеописанный способ работы с БД и ее кодом (которым я собственно и пользуюсь).
То что ИДЕ это абсолютное зло, я не говорил, да и не считаю так, сам активно пользуюсь (но по своему), а IBExpert иногда даже снится мне по ночам...
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38250206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим На IBExpert иногда даже снится мне по ночам
вот ты выше и писал всё как в эксперте:
- прав клик на объекте таблица - свойства.
- индексы, права, поля, ограничения разложены по вкладкам.
- всё удобно и объектно.
То что изменения сразу на базу в реал-тайме - удобнее.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38250476
PSV100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123вот ты выше и писал всё как в эксперте:
- прав клик на объекте таблица - свойства.
- индексы, права, поля, ограничения разложены по вкладкам.
- всё удобно и объектно.

Petro123То что изменения сразу на базу в реал-тайме - удобнее.

Не всегда так удобнее. Собственно, потенциальный инструментарий автора этой темы не заменяет типовые IDE-DB, а дополняет их, т.к. в большинстве случаев всякие IDE не занимаются ведением каталога исходников. У нас в команде большинство так и работают - через IDE в реал-тайм вносят правки в базу, из логов операций или прочих других режимов достают тексты SQL, чего там IDE нагенерировала, и переносят их в sql-файлы проекта (не всегда это приемлемо, т.к. IDE генерирует тексты по своим правилам (частенько плохо или вовсе ненастраиваемым), что даёт неудобства для полноценного ведения проекта, поэтому есть и свои генерилки текстов). Лично я предпочитаю по возможности sql-ить в текстовом редакторе.

Другое дело, что не всех и всегда нагибает жизнь, многим SQL-каталог и не нужен, и Максим Н правильно подметил, что некоторые СУБД знают только на уровне IDE для нее, для них IDE и СУБД - фактически, синонимы.
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38250485
PSV100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Максим Н[...]
Пример описания типа "таблица":
Код: xml
1.
2.
3.
4.
...
    <start_text>/*** test data dml ***/</start_text>
    <stop_text>/*** end test data dml***/</stop_text>
...



Планируется ли какой-то синтаксический разбор текста или только на уровне поиска/регулярок ?

Почему спрашиваю. Я всё больше и больше задумываюсь над свои тулзом, о котором говорил выше по постам, и прихожу к выводу, что не плохо бы иметь потенциал для снижения количества sql-файлов в проекте. При большом количестве объектов в БД и прочего кода как-то напрягает принцип разработки, когда каждый объект и прочий чих оформляется в отдельном файле, получается многовато файлов, причём частенько с небольшим (относительно) количеством кода. В соответствующем посте я указывал на деление sql-проекта по логическим модулям/подмодулям, в идеале при таком подходе хотелось бы иметь только один sql-файл модуля и его возможную историю изменений (парный update-файл). Для этого нужно делать кое-какой разбор текста: понимать DDL-операторы - create/replace/alter объектов, понимать заголовок хранимой процедуры/функции и пропускать тело, разделять sql-операторы, пропускать комментарии и т.д. Задача немалая, но вполне подъёмная, минус - СУБД-зависимая. Подобный разбор текста всё-равно нужен, если, скажем, делать поддержку комментариев-доков.


Какие-то потуги в плане разбора текста планируются или всё как можно проще ?
...
Рейтинг: 0 / 0
Выбор СУБД для небольшой Java-утилиты
    #38250549
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PSV100т.к. в большинстве случаев всякие IDE не занимаются ведением каталога исходников.
Давай по терминам.
- Что такое каталог исходников? Такого даже на Java нет.
Есть - проект. Так?
...
Рейтинг: 0 / 0
25 сообщений из 325, страница 4 из 13
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор СУБД для небольшой Java-утилиты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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