Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
 Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Всем привет. Хочет пойти по накатанной дорожке. Делаю вывод данных из БД в jsp. Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))
20 дек 18, 15:15    [21769673]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Korcar
Всем привет. Хочет пойти по накатанной дорожке. Делаю вывод данных из БД в jsp. Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))


null - это отсутствие данных или данные не определены - тут замена может быть только исходя из бизнес логики.
20 дек 18, 15:20    [21769684]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))

Ты болтун двоечник задающий странные вопросы)))).
Откуда у тебя в модели стоит что допускается null?
У тебя уникальные дороги.
20 дек 18, 15:25    [21769693]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar,
странный ты программист
если ты выводишь в jsp, то надо спрашивать не тут, а у постановщика задачи, юзеров.
в разных местах это может быть отображено по разному
в одних местах 0, в других - в третьих пробел, в четвертых ''(пусто)

и это лучше делать в базе ,в pg это COALESCE
20 дек 18, 16:11    [21769772]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Озверин
Korcar
Всем привет. Хочет пойти по накатанной дорожке. Делаю вывод данных из БД в jsp. Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))


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

да, действительно. данные именно что нет и они еще не определены. исходя из бизнес логики - это на каком этапе?
21 дек 18, 07:01    [21770189]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Korcar
зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))

Ты болтун двоечник задающий странные вопросы)))).
Откуда у тебя в модели стоит что допускается null?
У тебя уникальные дороги.

выходит ты решил зайти поболтать, ну я то не против. в компании всегда веселее темку мусолить. СУБД допускает нуллы, так почему бы их не создать в данных?

зы: да я вообще уникален
21 дек 18, 07:03    [21770191]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
вадя
Korcar,
странный ты программист
если ты выводишь в jsp, то надо спрашивать не тут, а у постановщика задачи, юзеров.
в разных местах это может быть отображено по разному
в одних местах 0, в других - в третьих пробел, в четвертых ''(пусто)

и это лучше делать в базе ,в pg это COALESCE

уже спросил везде надо одинаково: строки на пусто, числа на 0 - исходя из этой информации не вижу разницы в части реализации

то есть на уровне СУБД. ок. другие мнения есть у кого-нибудь?
21 дек 18, 07:11    [21770192]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar,
По глупым вопросам болтать невозможно. Три ответа про одно и то же есть, выбирай. Настя2.
21 дек 18, 07:12    [21770193]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
Делаю вывод данных из БД в jsp.

Korcar
исходя из бизнес логики - это на каком этапе?

какая бизнес-логика, когда есть только отображение данных?
Korcar
СУБД допускает нуллы, так почему бы их не создать в данных?
каой толк для конечного юзера при отображении в таблице(к примеру) слова null?
по логике , если используется сложение полей - вместо null возвращать 0, если просто для отображения - пустую строку, пустое поле и обозначает отсутствие данных
21 дек 18, 07:13    [21770194]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
числа на 0 - исходя из этой информации не вижу разницы в части реализации
я бы не был так категоричен - в таблицах намного нагляднее(как правило) , когда вместо 0 пустая ячейка.
надо выбирать исходя из удобства восприятия информации
21 дек 18, 07:17    [21770196]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Korcar,
По глупым вопросам болтать невозможно. Три ответа про одно и то же есть, выбирай. Настя2.

одним из ответов, ты наверное считаешь свой пост. посмотрим на него:
автор
Ты болтун двоечник задающий странные вопросы)))).

Высказывание не по существу вопроса

автор
Откуда у тебя в модели стоит что допускается null?

Это вопрос, который ответом не является

автор
У тебя уникальные дороги.

Общая фраза и скорее совсем оффтопная

Вывод: в твоем посте ответа на мой вопрос нет от слова совсем

зы: и кто после этого из нас болтун?)
21 дек 18, 09:15    [21770225]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
вадя
какая бизнес-логика, когда есть только отображение данных?

да! поэтому и задал вопрос
Korcar
исходя из бизнес логики - это на каком этапе?


вадя
каой толк для конечного юзера при отображении в таблице(к примеру) слова null?

правильно! никакого, поэтому мне хочется заменить при отображении, поэтому и задаю сей вопросец)
21 дек 18, 09:19    [21770228]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Korcar
Всем привет. Хочет пойти по накатанной дорожке. Делаю вывод данных из БД в jsp. Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


зы: Вадя и Петя могу проходить мимо этого топа) особенно Вадя ... и особенно Петя))


в общем случае костыль будет в jsp странице через какой-нить
<c:if test="${empty var1}">
21 дек 18, 09:29    [21770236]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Озверин, это спринг?
21 дек 18, 09:32    [21770237]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
зы: и кто после этого из нас болтун?)
ты конечно.
Ты в первом посте решил что кто то может писать, а кто то не может в публичном форуме.
По логике двойка.
21 дек 18, 09:38    [21770241]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
Petro123
Korcar,
По глупым вопросам болтать невозможно. Три ответа про одно и то же есть, выбирай. Настя2.

одним из ответов, ты наверное считаешь свой пост. посмотрим на него:
автор
Ты болтун двоечник задающий странные вопросы)))).

Высказывание не по существу вопроса

автор
Откуда у тебя в модели стоит что допускается null?

Это вопрос, который ответом не является

автор
У тебя уникальные дороги.

Общая фраза и скорее совсем оффтопная

Вывод: в твоем посте ответа на мой вопрос нет от слова совсем

зы: и кто после этого из нас болтун?)
Ответ от Озверин ты пропустил. Поэтому болтун.
У мяня пять по логике)
21 дек 18, 09:41    [21770242]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Korcar
Озверин, это спринг?


это jstl
Подключи его к своей странице и делай что хочешь.
21 дек 18, 09:42    [21770243]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
Озверин, это спринг?
учить JSTL
21 дек 18, 09:42    [21770244]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Korcar
зы: и кто после этого из нас болтун?)
ты конечно.
Ты в первом посте решил что кто то может писать, а кто то не может в публичном форуме.
По логике двойка.

ничего не решал, а только предложил, дабы исключить наши дискуссы)
21 дек 18, 09:42    [21770245]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar,
Я тоже педположил, что ты Настя2.
21 дек 18, 09:44    [21770248]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
правильно! никакого, поэтому мне хочется заменить при отображении, поэтому и задаю сей вопросец)

дак это проще и бысрее будет в запросе
21 дек 18, 10:06    [21770266]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Korcar
правильно! никакого, поэтому мне хочется заменить при отображении, поэтому и задаю сей вопросец)

дак это проще и бысрее будет в запросе


можно и в запросе, но тут 2 подводных костыля:

1. использование специфичных для бд конструкций
2. из коробки по моему быстрее настроить сущности и объявить репозиторий, чем запросами там что-то делать.
21 дек 18, 10:08    [21770269]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Ну, в базе делать или на java это ведь вообще религия. Неужели хочешь тут обсудить?
21 дек 18, 10:18    [21770272]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
вадя,
Ну, в базе делать или на java это ведь вообще религия. Неужели хочешь тут обсудить?
моя религия - сделать там где проще и быстрее.
COALESCE отработает быстрее чем if
что проще - просто вывести поле или предварительно сделать ещё и проверку?
Озверин
1. использование специфичных для бд конструкций
у ТС ориентировка на PG, явно не просто так, и не стоит надеяться , что они сменят субд. поэтому костылём это нельзя назвать.
Озверин
2. из коробки по моему быстрее настроить сущности и объявить репозиторий, чем запросами там что-то делать.
о каких сучностях идёт речь? простой вывод данных из базы юзверю с использованием jsp...
что может быть проще замены
select поле from....
на
select COALESCE (поле, 0) as поле from ...
21 дек 18, 11:52    [21770333]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Ну вот, началось))) Удачи!
21 дек 18, 12:01    [21770344]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Korcar
Озверин, это спринг?
учить JSTL

Ради замены нулов? это ж верх нелогичности) сделаю в субдхе. Ваде респект. потрудился в этот раз)
21 дек 18, 12:42    [21770380]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
_Getleman_
Member

Откуда:
Сообщений: 8
Korcar,

автор
Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


Привет. Может кто-то еще базу использует и интерпретирует именно null?
Если так, тогда null, наверное, не надо менять в СУБД, а интерпретировать их в jsp, например, по договоренности.
21 дек 18, 12:45    [21770383]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
Petro123
пропущено...
учить JSTL

Ради замены нулов? это ж верх нелогичности) сделаю в субдхе. Ваде респект. потрудился в этот раз)
Насте можно не изучать java подходы.
21 дек 18, 12:49    [21770390]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
_Getleman_
Если так, тогда null, наверное, не надо менять в СУБД, а интерпретировать их в jsp, например, по договоренности.
надо знать что такое null и где он получается , а не писать ерунду.
21 дек 18, 12:51    [21770397]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
_Getleman_
Member

Откуда:
Сообщений: 8
вадя,

автор
надо знать что такое null и где он получается , а не писать ерунду.


Всмысле ерудну? Если в СУБД вместо null окажется 0, а есть клиенты, которые ожидают null, то будет ошибка.
21 дек 18, 12:55    [21770408]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
_Getleman_
Всмысле ерудну? Если в СУБД вместо null окажется 0, а есть клиенты, которые ожидают null, то будет ошибка.
ерунда - потому, что ты путаешь субд и результат запроса.
если в ddl прописано - значение по умолчанию 0 - то все и будут использовать 0, в запросе null может быть при дожойне таблиц в запросе - то тут каждый волен делать что ему удобнее - на других это не скажется.
21 дек 18, 13:54    [21770467]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
_Getleman_
Member

Откуда:
Сообщений: 8
вадя,

автор
ерунда - потому, что ты путаешь субд и результат запроса.
если в ddl прописано - значение по умолчанию 0 - то все и будут использовать 0


2 клиента, используют JDBC. Один в результате запроса ожидает null, другой, в своем коде, 0.
21 дек 18, 14:00    [21770473]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
_Getleman_
2 клиента, используют JDBC. Один в результате запроса ожидает null, другой, в своем коде, 0.
да хоть 10, каждый из клиентов отправляет свой запрос, в котором формирует данные так как ему надо.
21 дек 18, 14:04    [21770482]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
_Getleman_,
Двухзвенка сэр!
21 дек 18, 14:09    [21770488]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
_Getleman_
Member

Откуда:
Сообщений: 8
вадя,

Не согласен.

Так можно огромное количество данных перебирать/формировать, если нет стандарта, как в БД хранится.
21 дек 18, 14:13    [21770494]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Korcar
Petro123
пропущено...
учить JSTL

Ради замены нулов? это ж верх нелогичности) сделаю в субдхе. Ваде респект. потрудился в этот раз)


если у вас 2 версии приложения - одна для тестирования, а другая - продакшн и в этих версиях разные бд используются - уже такое себе удовольствие использовать специфичные команды для каждой из БД. Писать отдельный запрос просто для того, чтобы конвертить некие значение в другие значения - тоже логичного мало подразумевает.

Я опишу сущность
User 
создам интерфейс репозитория
UserRepository extends CrudRepository<User, Long> 
и на этом закончу работу с запросами к бд на примитивном уровне. Дальше - я уже буду сущность маппить на view, как это делает программисты в ООП языках, не страдать функциональщиной, которая используется только там, где узко или где долго.

А как вы планируете получать данные запросом?
21 дек 18, 14:14    [21770499]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
_Getleman_
Так можно огромное количество данных перебирать/формировать, если нет стандарта, как в БД хранится.
стандарт создаётся при создании таблицы, всё что нужно получается запросом, запрос выбирает и формирует данные так как удобно и нужно, для этого и существуют запросы.
к примеру дата хранится всегда в секундах с 1970года, а вывести можно в любом виде, для этого и существуют команды форматирования дат в любой субд.
21 дек 18, 14:23    [21770510]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
продакшн и в этих версиях разные бд используются
за такое надо голову сворачивать
21 дек 18, 14:24    [21770512]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
_Getleman_
Так можно огромное количество данных перебирать/формировать, если нет стандарта, как в БД хранится.
стандарт создаётся при создании таблицы, всё что нужно получается запросом, запрос выбирает и формирует данные так как удобно и нужно, для этого и существуют запросы.
к примеру дата хранится всегда в секундах с 1970года, а вывести можно в любом виде, для этого и существуют команды форматирования дат в любой субд.


безотносительно взгляда на то, для чего существуют запросы, ты приводишь пример работы с данными, которые не меняют своей сути, а лишь имеют разный формат. Противопоставить изменение формата замене одного значения другим - ну то такое себе сравнение.
21 дек 18, 14:25    [21770517]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
продакшн и в этих версиях разные бд используются
за такое надо голову сворачивать


в моей реальности надо сто раз подумать, прежде чем использовать специфичные для бд конструкции. А почему в юнит тестировании я не могу себе позволить in memory db?

Т.е. ты своим одним типа простым запросом меняешь меняешь сразу подход к тестированию, кроме очевидных минусов, а голову отварачивать надо не тебе ?:)
21 дек 18, 14:27    [21770518]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
безотносительно взгляда на то, для чего существуют запросы, ты приводишь пример работы с данными, которые не меняют своей сути, а лишь имеют разный формат. Противопоставить изменение формата замене одного значения другим - ну то такое себе сравнение.
запросы и существуют чтоб выбрать данные в нужном формате.
21 дек 18, 14:28    [21770519]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
безотносительно взгляда на то, для чего существуют запросы, ты приводишь пример работы с данными, которые не меняют своей сути, а лишь имеют разный формат. Противопоставить изменение формата замене одного значения другим - ну то такое себе сравнение.
запросы и существуют чтоб выбрать данные в нужном формате.


замена null на 0 - это не изменение формата данных, это замена одних данных другими (с) кэп
21 дек 18, 14:28    [21770521]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин
замена null на 0 - это не изменение формата данных, это замена одних данных другими (с) кэп
щаз скажет что у него по другому)
21 дек 18, 14:33    [21770530]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
в моей реальности надо сто раз подумать, прежде чем использовать специфичные для бд конструкции. А почему в юнит тестировании я не могу себе позволить in memory db?
тут вопрос очень обширный, я считаю АБСОЛЮТНО НЕ ПРАВИЛЬНЫМ когда в продакшине и проектировании разные базы, потому что запрос требует отладки и правильного построения индексов и прочего.

Озверин
А почему в юнит тестировании я не могу себе позволить in memory db?
смотря что ты хочешь проверить тестированием - если работу java - пожалуйста, но если всю систему - это будет ерунда.
по поводу разных субд - есть такая cms - OpenCMS - в ней под каждую субд написан свой код, и это правильно - достигается максимальное быстродействие результирующей системы.
21 дек 18, 14:37    [21770534]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
А теперь про неочевидные минусы - поддержка.
Итак, что-то случилось, человек лезет разбираться(не тот, который писал сей код).

В первом случае он видит явный костыль во view - там конвертируется null -> 0.
Во втором случае к нему приходит уже 0.

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

Да, примеры выдуманы, совпадения - случайны, но в первом случае программист не будет тратить свое время на неочевидные вещи.
21 дек 18, 14:37    [21770536]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
замена null на 0 - это не изменение формата данных, это замена одних данных другими (с) кэп
не надо путать данные хранимые в субд с данными получаемыми в результате запроса
21 дек 18, 14:38    [21770539]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
В первом случае он видит явный костыль во view - там конвертируется null -> 0.
Во втором случае к нему приходит уже 0.
ещё раз - не надо путать данные хранимые и данные выбранные
21 дек 18, 14:39    [21770540]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
А теперь про неочевидные минусы - поддержка.
Итак, что-то случилось, человек лезет разбираться(не тот, который писал сей код).
не надо допускать дилетантов - не будет проблем
Озверин
В первом случае он видит явный костыль во view - там конвертируется null -> 0.
Во втором случае к нему приходит уже 0.
для дилетантов всё будет не понятно
21 дек 18, 14:42    [21770543]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
В первом случае он видит явный костыль во view - там конвертируется null -> 0.
Во втором случае к нему приходит уже 0.
ещё раз - не надо путать данные хранимые и данные выбранные


Я не путаю, я привел реальный пример поддержки приложения. Я не говорю, что в запросах нельзя что-то там менять на что-то, я говорю, что сами запросы к бд следует делать в ситуациях, когда их нельзя не сделать, либо когда запрос реально быстрее отработает, либо ты быстрее напишешь запрос, чем сущность+репозиторий. Причем настолько быстрее, что сможешь оценить время на поддержку этого запроса с маппингом его как-нибудь и где-нибудь.
21 дек 18, 14:44    [21770548]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
А теперь про неочевидные минусы - поддержка.
Итак, что-то случилось, человек лезет разбираться(не тот, который писал сей код).
не надо допускать дилетантов - не будет проблем
Озверин
В первом случае он видит явный костыль во view - там конвертируется null -> 0.
Во втором случае к нему приходит уже 0.
для дилетантов всё будет не понятно


то есть если ты увидишь, что у тебя во view 0, а в другом view это же значение будет пустым, ты полезешь в бд - там будет ваще null - то ты не полезешь искать, где происходит конвертация данных?:) Я ж не говорю, что ты не найдешь, я говорю, что ты сделаешь лишнее телодвижение - абсолютно бессмысленное.
21 дек 18, 14:45    [21770554]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
Я не путаю, я привел реальный пример поддержки приложения.
если в команде нет людей которые разбираются в субд - плохая команда. и ориентироваться на таких - это ходить по граблям.
Озверин
что сами запросы к бд следует делать в ситуациях, когда их нельзя не сделать, либо когда запрос реально быстрее отработает, либо ты быстрее напишешь запрос, чем сущность+репозиторий.
с базой можно общаться только через запросы.
к примеру хибер сначала заносит данные из запросы в в свои суности, и только потом отдаёт прогеру, в тоже время эти данные можно обработать сразу же из результсета, что сэкономит и время и память
Озверин
Причем настолько быстрее, что сможешь оценить время на поддержку этого запроса с маппингом его как-нибудь и где-нибудь.
всё зависит от владения субд.
21 дек 18, 14:51    [21770567]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
то есть если ты увидишь, что у тебя во view 0, а в другом view это же значение будет пустым, ты полезешь в бд - там будет ваще null - то ты не полезешь искать, где происходит конвертация данных?:) Я ж не говорю, что ты не найдешь, я говорю, что ты сделаешь лишнее телодвижение - абсолютно бессмысленное.
ну не надо показывать такого непонимания субд.
то что для тебя проблема - для меня самая простая работа с базой,
я смотрю ddl таблиц и всё остальное - как два пальца.
21 дек 18, 14:56    [21770574]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
всё зависит от владения субд.


вопрос вообще не во владении субд. Внимательно перечитай то, о чем я тебе пишу.
21 дек 18, 15:06    [21770592]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
вопрос вообще не во владении субд. Внимательно перечитай то, о чем я тебе пишу.
я и прочитал и перечитал.
поэтому так и пишу.
Озверин
то есть если ты увидишь, что у тебя во view 0, а в другом view это же значение будет пустым, ты полезешь в бд - там будет ваще null - то ты не полезешь искать, где происходит конвертация данных?:)
о какой конвертации данных идёт речь? есть DDL таблицы - и этим всё сказано.
есть запрос, в котором используется view и этого достаточно чтоб понять что и где смотреть.
запросы и вью служат только для отбора данных. вью по сути та же "таблица" только основана на запросе к таблицам. и ни кто не мешает написать свою вью, пусть даже отличающуюся от имеющейся только форматом одного поля.
21 дек 18, 15:18    [21770609]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
вопрос вообще не во владении субд. Внимательно перечитай то, о чем я тебе пишу.
я и прочитал и перечитал.
поэтому так и пишу.
Озверин
то есть если ты увидишь, что у тебя во view 0, а в другом view это же значение будет пустым, ты полезешь в бд - там будет ваще null - то ты не полезешь искать, где происходит конвертация данных?:)
о какой конвертации данных идёт речь? есть DDL таблицы - и этим всё сказано.
есть запрос, в котором используется view и этого достаточно чтоб понять что и где смотреть.
запросы и вью служат только для отбора данных. вью по сути та же "таблица" только основана на запросе к таблицам. и ни кто не мешает написать свою вью, пусть даже отличающуюся от имеющейся только форматом одного поля.


так при наличии ddl таблицы(у меня вдруг вопрос возник, а что ты под ddl таблицы подразумеваешь? ) и view, ты все равно смотреть будешь в третьем месте - где-то в запросе. или где-то еще, вдруг ты конвертировать будешь не в запросе, а где-нибудь в третьем месте?:)
21 дек 18, 15:36    [21770635]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
так при наличии ddl таблицы(у меня вдруг вопрос возник, а что ты под ddl таблицы подразумеваешь? )
https://ru.wikipedia.org/wiki/Data_Definition_Language

Озверин
ты все равно смотреть будешь в третьем месте - где-то в запросе. или где-то еще, вдруг ты конвертировать будешь не в запросе, а где-нибудь в третьем месте?:)
зачем такая путаница? отчего?
если есть запрос в нем есть перечень задействованных таблиц, вьюшек. Есть структура базы, в ней просто понять что есть таблица , что есть вьюха. никакого третьего места не надо. я пишу запрос, и если мне нужно его упростить - могу использовать вьюшку. и напишу её так как мне надо.
если я смотрю чужой запрос в чужом коде - ник то не мешает написать новую вьюшку(дабы не рисковать с изменением старой, которую могут использовать в другом месте).
вот тут и появляется вопрос - как узнать где может использоваться вьюшка - если в коде программы - дело тухлое. поэтому лучше и написать новую... не страшно если старая останется висеть не использованная.
(использование вьюшек равносильно использованию хранимок...)
21 дек 18, 15:54    [21770663]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
(использование вьюшек равносильно использованию хранимок...)


этот разговор касался еще и вьюшки. Оказывается. То есть вместо того, чтобы добавить пару строчек кода на jstl - мне надо лезть в бд, создавать view и на основе ее строить свои view . Мы точно в подфоруме java?
21 дек 18, 16:28    [21770693]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
COALESCE отработает быстрее чем if


ой ли

select coalesce(field1, 'some_big_value.........................') as field1 from table where ...

где some_big_value большое по размеру поле и возвращается скажем 100тыр записей?
или все таки

   while(rs.next()){
        if(field1 == null){
             fileld1 = SOME_HUGE_CONSTANT //single references  to constant with default value
        }
    }
21 дек 18, 16:36    [21770699]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
этот разговор касался еще и вьюшки. Оказывается. То есть вместо того, чтобы добавить пару строчек кода на jstl - мне надо лезть в бд, создавать view и на основе ее строить свои view . Мы точно в подфоруме java?
не надо утрировать , о вью ты начал.
первоначально разговор шел о простом запросе.
беда в том, что большинство java программистов боятся субд как чёрт ладана. а о использовании специализированных инструментов для работы с субд мало знают. но пытаются реализовать всё через прокладки типа хибера. для меня добавить/поменять что-то в базе нет проблем, тоже самое что и в любом классе java. для меня главное , что б система работала быстро.
если для вашей команды работа с изменением чего-то в субд (той же вьюшки) проблема - значит мы говорим о разном.
21 дек 18, 16:42    [21770701]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
select coalesce(field1, 'some_big_value.........................') as field1 from table where ...
работает на нативном коде и оптимизировано под данное использование. и проверка на null идёт средствами базы.
if(field1 == null)
байт-код. который выполняется в цикле.
и в том и другом случае надо обработать все возвращаемые данные.

lleming
select coalesce(field1, 'some_big_value.........................') as field1 from table where ...
и не надо в качестве аргумента предлагать глупость и строить на ней всё.
21 дек 18, 16:54    [21770711]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
этот разговор касался еще и вьюшки. Оказывается. То есть вместо того, чтобы добавить пару строчек кода на jstl - мне надо лезть в бд, создавать view и на основе ее строить свои view . Мы точно в подфоруме java?
не надо утрировать , о вью ты начал.
первоначально разговор шел о простом запросе.
беда в том, что большинство java программистов боятся субд как чёрт ладана. а о использовании специализированных инструментов для работы с субд мало знают. но пытаются реализовать всё через прокладки типа хибера. для меня добавить/поменять что-то в базе нет проблем, тоже самое что и в любом классе java. для меня главное , что б система работала быстро.
если для вашей команды работа с изменением чего-то в субд (той же вьюшки) проблема - значит мы говорим о разном.


я о view говорил в контексте mvc парадигмы.т.к разговор шел про jsp же. То, что тебе просто - я уже понял, то, что ты даже посчитать кол-во телодвижений собственных, прежде чем что-то сделать - я тоже уже понял, да еще и то, что ты супермегапрограммист - тоже понял ;)
21 дек 18, 17:00    [21770712]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
То, что тебе просто - я уже понял, то, что ты даже посчитать кол-во телодвижений собственных, прежде чем что-то сделать - я тоже уже понял, да еще и то, что ты супермегапрограммист - тоже понял ;)
количество телодвижений зависит от умения пользоваться инструментами.
если "дополнительные телодвижения" увеличивают быстродействие системы - значит их надо делать. а ориентироваться на то, что систему будет сопровождать какой-то недоучка - это не мой подход. хочет зарабатывать на сопровождении - пусть доростает до системы.
21 дек 18, 17:11    [21770718]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
И не надоело тебе? Ты же вроде изучал jstl. Нет?
21 дек 18, 17:12    [21770719]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
И не надоело тебе? Ты же вроде изучал jstl. Нет?
связь?
зачем добавлять что-то в медленном звене, когда можно сделать в быстром?
21 дек 18, 17:29    [21770725]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
И не надоело тебе?
мне надоело вдеть странное отношение к базам и потуги сделать аналог субд на той же java. первоначально не располагая знаниями в субд...
21 дек 18, 17:31    [21770726]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Ну ты java не знаешь. Логично что кто то не знает бд в ветке java.
Что тебя возмущает то.
Перестань.
21 дек 18, 17:41    [21770729]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
Ну ты java не знаешь. Логично что кто то не знает бд в ветке java.
Что тебя возмущает то.
Перестань.
и святой дух за меня на java пишет....
21 дек 18, 17:54    [21770747]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
select coalesce(field1, 'some_big_value.........................') as field1 from table where ...
работает на нативном коде и оптимизировано под данное использование. и проверка на null идёт средствами базы.
if(field1 == null)
байт-код. который выполняется в цикле.
и в том и другом случае надо обработать все возвращаемые данные.

lleming
select coalesce(field1, 'some_big_value.........................') as field1 from table where ...
и не надо в качестве аргумента предлагать глупость и строить на ней всё.


Утверждение было слишком категоричным привел лишь пример где оно ошибочно. Я конечно утрирую с "some_big_value..". Но то что передача по сети внесет некоторую задержку это факт надеюсь не вызывает сомнений.
21 дек 18, 18:07    [21770750]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Но то что передача по сети внесет некоторую задержку это факт надеюсь не вызывает сомнений.
мы говорим о bnc сетях? или о гигабитных? субд не выгружает все данные одним разом - она выгружает по освобождению буфера . так что эту задержку ты не почувствуешь никак.
если ты против категоричности - то я против такого абсурдного примера.
21 дек 18, 18:23    [21770756]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
Но то что передача по сети внесет некоторую задержку это факт надеюсь не вызывает сомнений.
мы говорим о bnc сетях? или о гигабитных? субд не выгружает все данные одним разом - она выгружает по освобождению буфера . так что эту задержку ты не почувствуешь никак.
если ты против категоричности - то я против такого абсурдного примера.


никак загрузку не почуствуешь в двух случаях
1й - объема передаваемых данных равен 0
2й - скорость канала связи имеет бесконечную величину

И первый и второй случай сферический конь в ваккуме, так что нужно проверять устраивает или нет латенси.
Буфер скорость канала не увеличит, всего лишь приблизит скорость передачи к скорости канала.
21 дек 18, 18:39    [21770766]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
и святой дух за меня на java пишет....
что пишет?
Coalesce, nvl?
21 дек 18, 18:56    [21770777]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
И первый и второй случай сферический конь в ваккуме, так что нужно проверять устраивает или нет латенси.
Буфер скорость канала не увеличит, всего лишь приблизит скорость передачи к скорости канала.
если продолжать абсурдность - то передача твоих больших данных упрётся в ограничение канала между серверным приложением и клиентом, которая намного уже канала между субд и серверным приложением.
21 дек 18, 18:58    [21770778]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
Coalesce, nvl?
мы о какой субд говорим?
21 дек 18, 19:00    [21770780]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
Petro123
Coalesce, nvl?
мы о какой субд говорим?
в java принято любую субд с поддержкой стандарта sql 92 года.
В трехзвенке.
21 дек 18, 19:21    [21770788]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
И первый и второй случай сферический конь в ваккуме, так что нужно проверять устраивает или нет латенси.
Буфер скорость канала не увеличит, всего лишь приблизит скорость передачи к скорости канала.
если продолжать абсурдность - то передача твоих больших данных упрётся в ограничение канала между серверным приложением и клиентом, которая намного уже канала между субд и серверным приложением.


что мешает клиенту отдать разово enum с кодом? и гнать потом код вместо 'some_big_value....'

чет я утомился спорить вадя
21 дек 18, 19:27    [21770794]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
в java принято любую субд с поддержкой стандарта sql 92 года.
В трехзвенке.
ну и причём здесь :
автор
Coalesce, nvl?
21 дек 18, 19:28    [21770795]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
что мешает клиенту отдать разово enum с кодом? и гнать потом код вместо 'some_big_value....'
это ты уже предлагаешь дальнейшее развитие абсурда....

lleming
чет я утомился спорить вадя
и я тоже....
21 дек 18, 19:31    [21770796]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
Petro123
в java принято любую субд с поддержкой стандарта sql 92 года.
В трехзвенке.
ну и причём здесь :
автор
Coalesce, nvl?
не я же первый сказал что кто то не знает базы данных.
Ты это сказал.
Я ответил что java программист в первую очередь писать трехзвенку.
Ты умеешь?
Если нет, то не требуй в java ветке всех знать субд.
21 дек 18, 19:37    [21770797]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
Я ответил что java программист в первую очередь писать трехзвенку.
одна из частей трёхзвенки - субд
21 дек 18, 19:39    [21770798]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
Petro123
Я ответил что java программист в первую очередь писать трехзвенку.
одна из частей трёхзвенки - субд
пиши другие две. За третью часть пять!))
21 дек 18, 20:02    [21770813]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
_Getleman_
Korcar,

автор
Иногда в этих данных встречаются null. Кто как их проверяет с заменой на какой-то дефолт? Или может лучше подмену делать в СУБД, тогда в jsp никаких проверок делать не нужно, а то ифами и процентами как-то всё грустно и некрасиво получается


Привет. Может кто-то еще базу использует и интерпретирует именно null?
Если так, тогда null, наверное, не надо менять в СУБД, а интерпретировать их в jsp, например, по договоренности.

Вы это, завязывайте сочинять различные варианты событий, добавляя новых участников процесса, которых нет)

Никто не использует эту базу, а если будет, то это уже их проблемы не хай сами подстраиваются. Хотя не совсем понял к чему придётся подстраиваться, ведь структура данных и типы в сущностях не изменятся
24 дек 18, 08:44    [21771734]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
Хотя не совсем понял к чему придётся подстраиваться, ведь структура данных и типы в сущностях не изменятся
ну как тут не понятно?
_Getleman_ возьмет и будет твой запрос использовать один в один , и будет тебя ругать, что ты не предусмотрел повторное использование своего запроса в N+100 местах. только потому, что ему влом написать свой запрос....
24 дек 18, 08:51    [21771739]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
вадя
Озверин
продакшн и в этих версиях разные бд используются
за такое надо голову сворачивать

если правильно понял, то имеются в виду СУБД, а не БД, ибо какие там специфичные команды могу быть для конкретной БД? если только хранимки, так и и перенести не проблема

Так вот, возвращаемся к истокам, если в разных версиях приложения (тестовой и продакшн) используются разные СУБД, то смысл в такой тестовой версии ... по любому на продакшене будешь расчудесные чудеса ловить до, после и во время работы))
24 дек 18, 08:52    [21771740]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
если правильно понял, то имеются в виду СУБД, а не БД, ибо какие там специфичные команды могу быть для конкретной БД?
как минимум для твоего случая:
Coalesce, nvl, IFNULL - в разных субд
Korcar
по любому на продакшене будешь расчудесные чудеса ловить до, после и во время работы))
однозначно.
24 дек 18, 09:07    [21771747]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
вадя
Korcar
если правильно понял, то имеются в виду СУБД, а не БД, ибо какие там специфичные команды могу быть для конкретной БД?
как минимум для твоего случая:
Coalesce, nvl, IFNULL - в разных субд

а какая в какой?
24 дек 18, 09:28    [21771761]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
вадя
Coalesce, nvl, IFNULL

насколько я смог прогуглить -
Coalesce - pg
nvl - oracle
IFNULL - mysql (плюс COALESCE() - "расширенный аналог" ifnull)
24 дек 18, 09:33    [21771764]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
вадя
вадя
Coalesce, nvl, IFNULL

насколько я смог прогуглить -
Coalesce - pg
nvl - oracle
IFNULL - mysql (плюс COALESCE() - "расширенный аналог" ifnull)

м, с двумя вторыми не знаком
24 дек 18, 12:30    [21771915]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Korcar
м, с двумя вторыми не знаком

а если рассмотреть mssql - то там таки фишек охиреть сколько... и все такие вкусные....
в mysql в 8+ появились свои вкусняшки....
так что ориентироваться на простой select from... много не получишь
24 дек 18, 13:12    [21771969]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
А в java 10 столько вкусняшек).
Так что ориентироваться на coalesce... много не получишь.
24 дек 18, 13:34    [21772006]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Насколько я помню, в Hibernate можно как-то мапминг DB-специфик функции описывать

Т.е. Hibernate query будет выглядить одинаково, а при формирование окончательного SQL специфические функции будут подменяться на уровне движка Hibernate.
24 дек 18, 13:40    [21772015]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev,
Можно. Но это подход java. Что ТС и вадя не приемлют.
24 дек 18, 14:01    [21772061]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Leonid Kudryavtsev,
Можно. Но это подход java. Что ТС и вадя не приемлют.

не понимаю зачем усложнять решение такой просто проблемы
24 дек 18, 14:18    [21772093]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
А в java 10 столько вкусняшек).
Так что ориентироваться на coalesce... много не получишь.
я буду ориетироваться на оптималбе использование всех вкусняшек.
Leonid Kudryavtsev
Т.е. Hibernate query будет выглядить одинаково, а при формирование окончательного SQL специфические функции будут подменяться на уровне движка Hibernate.
ты эти хочешь сказать что хибер отслеживает все фишки всех версий субд?
Korcar
не понимаю зачем усложнять решение такой просто проблемы
и я тоже не понимаю этого....
24 дек 18, 14:26    [21772112]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
вадя
Leonid Kudryavtsev
Т.е. Hibernate query будет выглядить одинаково, а при формирование окончательного SQL специфические функции будут подменяться на уровне движка Hibernate.
ты эти хочешь сказать что хибер отслеживает все фишки всех версий субд?

Там конфиг есть. Куда нужные тебе фишки от нужных СУБД сам можешь своими руками вписать

Где конфиг расположен - не знаю. Сталкивался в Oracle CC&B (они поддерживали и Oracle Database, и MS SQL), поскольку сам плотно с hibernate не работаю, все уже давно забыл
24 дек 18, 14:32    [21772125]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar
Petro123
Leonid Kudryavtsev,
Можно. Но это подход java. Что ТС и вадя не приемлют.

не понимаю зачем усложнять решение такой просто проблемы
твой вопрос решен в первом посте топика.
Мы обсуждаем методы решения не твои, а вообще java программистов.
24 дек 18, 14:41    [21772143]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
я буду ориетироваться на оптималбе использование всех вкусняшек.
угу.
А сам только про субд пятый год пишешь.
24 дек 18, 14:43    [21772150]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
вадя
я буду ориетироваться на оптималбе использование всех вкусняшек.
угу.
А сам только про субд пятый год пишешь.

ну дак надоело смотреть как мыши кактус жрут
24 дек 18, 14:57    [21772169]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Уже говорил.
По литературе у тебя 5. По физике 3 и по алгебре 3.
Куда поступать будешь?
24 дек 18, 15:10    [21772189]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
Petro123
пропущено...
угу.
А сам только про субд пятый год пишешь.

ну дак надоело смотреть как мыши кактус жрут


Так не смотри. Основная претензия в том что без по сути аргументов кидаешь мысли. Либо аргументы сомнительного качества.
24 дек 18, 15:27    [21772212]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Основная претензия в том что без по сути аргументов кидаешь мысли. Либо аргументы сомнительного качества.
ч чем ты видишь отсутствие аргументов? а в чем сомнительное качество?
в том что в субд можно сделать многое проще? и будет работать быстрее?
24 дек 18, 16:00    [21772247]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
в субд можно сделать многое проще
проще что? Штаны на лямках?
24 дек 18, 16:04    [21772255]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Petro123
проще что? Штаны на лямках?
ну если ты этого не понимаешь, я помочь не могу....
24 дек 18, 16:07    [21772260]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Да.
Для ТС вопрос решили.
А больше нечего сравнивать.
Удачи!
24 дек 18, 16:13    [21772267]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
Korcar
пропущено...

не понимаю зачем усложнять решение такой просто проблемы
твой вопрос решен в первом посте топика.
Мы обсуждаем методы решения не твои, а вообще java программистов.

у тебя опять проблемы с логикой. не важно обсуждается конкретно моя проблема или ситуация с принципе. ты ж никаких аргументов не приводишь в пользу своего варианта решения. какой профит можно получить при таком подходе? (про разнящиеся БД теста и продуктива мы уже слышали)
25 дек 18, 09:07    [21772663]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar,
а тебе какое дело? Ты не участвовал и не участвуешь в дискуссии по архитектуре.
Выше ты сказал что сделал в СУБД.
25 дек 18, 11:13    [21772751]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Korcar
Petro123
пропущено...
твой вопрос решен в первом посте топика.
Мы обсуждаем методы решения не твои, а вообще java программистов.

у тебя опять проблемы с логикой. не важно обсуждается конкретно моя проблема или ситуация с принципе. ты ж никаких аргументов не приводишь в пользу своего варианта решения. какой профит можно получить при таком подходе? (про разнящиеся БД теста и продуктива мы уже слышали)


да как бе от тебя НАМ тоже не видно никаких аргументов.
25 дек 18, 11:18    [21772757]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
в том что в субд можно сделать многое проще. и будет работать быстрее.


if (value ==null) value = DEFAULT_VALUE

куда уж проще.

Про быстрее тут два варианта быстрее внедрить и быстрее будет работать. В первом случае все таки jstl быстрее (личное мнение) ибо не требуется особых знаний sql от разработчик т.к. бд могут быть разные, sql запросы могут генерироваться динамически или подгружаться из ресурсов, специфические особенности orm, требуется не только получать но и обновлять данные(на сложных вьюшках может не сработать).

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

Ну и в догонку позанудствовать

while(rs.next()){
   String value = rs.getString(4);
   if(value == null) value = DEFAULT_VALUE;
}


здесь есть полная информация об операции типе данных и что мы делаем в том время как coalesce гораздо универсальней

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

во вторых он обобщенный coalesce(null, 1) coalesce(null, 'Some string) and so on. Так что там еще будут операции по приведению(проверке) типов участвующих элементов

и даже более сложный случай coalesce(varchar, text, char) какого типа будет результат ?

Накладные расходы правда скорее всего на этапе планирования, но и они вполне измеряемые.
25 дек 18, 12:59    [21772870]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
здесь есть полная информация об операции типе данных и что мы делаем в том время как coalesce гораздо универсальней

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

во вторых он обобщенный coalesce(null, 1) coalesce(null, 'Some string) and so on. Так что там еще будут операции по приведению(проверке) типов участвующих элементов

и даже более сложный случай coalesce(varchar, text, char) какого типа будет результат ?

Накладные расходы правда скорее всего на этапе планирования, но и они вполне измеряемые.
по большому счёту - всё это можно втюхивать менеджеру, но не программисту.
while(rs.next()){
   String value = rs.getString(4);
   if(value == null) value = DEFAULT_VALUE;
}
здесь полная лабуда
использование стринг в цикле. использование промежуточной переменной.

lleming
) ибо не требуется особых знаний sql от разработчика
дальше можно не продолжать..... этим всё сказано....
25 дек 18, 14:25    [21772969]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
дальше можно не продолжать..... этим всё сказано....
если jstl, orm, ооп, AppServer это прокладки, то можно тоже не продолжать).
25 дек 18, 14:42    [21772983]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
вадя
....
здесь полная лабуда
использование стринг в цикле. использование промежуточной переменной.

lleming
) ибо не требуется особых знаний sql от разработчика
дальше можно не продолжать..... этим всё сказано....


Полностью соглашусь с Вадя.

1. Или ошибка в дизайне базы. Вполне есть констрейны NOT NULL, что бы с NULL'ами в Java не заморачиваться
2. или ошибка в постановке Т.к. не описано, какие действия нужно производить при Null'е
3. Или ошибка в GUI-компонентах, что они Null не правильно обрабатывают.

подавлять Null даже NVL'ем на бизнес-уровне - уже похоже "на лажу"
подавлять Null If'ами - еще хуже

В общем, данная конструкция безумно напоминает Oracle'вую "exception when others then null; end" со всеми вытекающими...

IMHO & AFAIK
25 дек 18, 14:53    [21773000]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev
Полностью соглашусь с Вадя.
в чем? А то у него нет ограничений ни на какие заявления.

Leonid Kudryavtsev
Или ошибка в дизайне базы. Вполне есть констрейны NOT NULL, что бы с NULL'ами в Java не заморачиваться

Это вадя не понимает, т.к. В ОРМ это делается в модели.
Вадя не знает что это.

Leonid Kudryavtsev
или ошибка в постановке Т.к. не описано, какие действия нужно производить при Null'е
3. Или ошибка в GUI-компонентах, что они Null не правильно обрабатывают.

подавлять Null даже NVL'ем на бизнес-уровне - уже похоже "на лажу"
подавлять Null If'ами - еще хуже

Согласен.
Только постановка это архитектура.
А вадя кинулся к coaleske()
25 дек 18, 15:09    [21773018]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Petro123
в чем?

В данном случае Вадя прошелся по решению с if'ами. Тут его полностью поддерживаю. Это какая-то системная кривость. Как "заплатка" работать будет, но только как "заплатка".

Если кодируется свой Model (к примеру для Model-View-Controller) и там такое массово выплывает, то проблема или с исходными данными/структурой или с кривым View (возможно библиотеки-фреймворк выбран не удачно или Вы "не умеете его готовить")
25 дек 18, 15:19    [21773033]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Leonid Kudryavtsev, в oracle разницы между "" и null то не было в свое время, что-то изменилось?:)
Не совсем понятно выступление, причем тут constraint`ы? Из постановки ТСа известно, что в базе бывают null значения - это вполне допустимая вещь, т.к. некоторые поля могут быть не обязательными для заполнения и ждать своей участи в неопределенном состоянии, читай - null. Вопрос ТСа тоже очень прост - на каком уровне null обрабатывать?

Ответ должен быть - не согласен с вадя, а я тоже предлагаю выдавать еще на уровне бд вместо null - 0, допустим. Или, я предлагаю на service уровне backend`а - заменять то и то. Но у нас проблема - у нас нет service уровня, т.к. ТС строит view на основе dao слоя.
Потому выбор сужается до dao слоя или view(в jsp странице средствами jstl).

Когда вы говорите о какой-то лаже, то можете и в двух словах объяснить, в чем же там обрабатывать лажа, а там - нет? Это же форум и тут делятся своими мнения...некоторые, например ваде и корсару - это умение недоступно в силу того, что они слишком профессионалы для местного форума, но другие участники могли бы и объяснить свое мнение, не так ли?
25 дек 18, 15:23    [21773035]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Petro123
А вадя кинулся к coaleske()

NVL/coalesce тоже не лучший вариант, но мне кажется это менее "бредово", чем простыня if'ов в Java.

По крайне мере, NVL/coalesce можно вынести во View на стороне сервера и не захломлять Java'код. Проблемы со структурой БД, проблемы людей занимающейся базой. Пусть дают нормальные данные и подавляют свои косяки на своей стороне.

p.s.
правда нужно не забывать про Null и Empty string. Но это скорее проблема фреймворка (и возможно ОРМ), что они должеы понимать, что это может быть одно и тоже. Т.е. if'ов на прикладном уровне тоже быть не должно.

IMHO
25 дек 18, 15:24    [21773037]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev,
Тогда четко и говорите что вы против простыни.
И все будут согласны))
25 дек 18, 15:30    [21773042]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Озверин
Leonid Kudryavtsev, в oracle разницы между "" и null то не было в свое время, что-то изменилось?:)


Фреймворка типа ADF, вполне нормально Null понимает и не парится

В крайнем случае, написать свою ф-цию getString и использовать ее. Если речь про String'и.

Но if в том виде, как предложено, есть совсем гуано код. Т.к. в какой-то момент об этом забудут и пойдут косяки NPE, которые отлавливать замаешься.
25 дек 18, 15:31    [21773044]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev
не захломлять
этого не будет если разобраться что там за нулл в базе.
Нужный или случайный.
Логично?
А ГУИ таблица сама умеет заменять.
Логично?
25 дек 18, 15:33    [21773046]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev
Но if в том виде, как предложено
тот пример иллюстрировал скорость обработки.
Т.к. Вадя всю жизнь работает по одному данному критерию.
Понятие простыня ему недоступно вообще.
25 дек 18, 15:35    [21773049]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev
можно вынести во View на стороне сервера
если фантазировать, то можно
alter table a modify (yr not null))
и т.д. И т.п.
25 дек 18, 15:40    [21773057]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
можно втюхивать менеджеру, но не программисту.

по сути есть аргументы ? Казалось бы при чем здесь менерджер, если спорим по поводу что бд быстрее работает.

вадя
while(rs.next()){
   String value = rs.getString(4);
   if(value == null) value = DEFAULT_VALUE;
}
здесь полная лабуда
использование стринг в цикле. использование промежуточной переменной.

Это таки псевдокод подразумевалось что сможете описать почему он всетаки медленнее чем аналог через запрос с coalesce. В запросе с coalesce не будет стрингов? Претензия к коду ? т.е. из за использования стринг в цикле все БД обгоняют java код именно поэтому (напоминаю что здесь вопрос поднимался
вадя
в том что в субд можно сделать многое проще. и будет работать быстрее.

вадя
lleming
) ибо не требуется особых знаний sql от разработчика
дальше можно не продолжать..... этим всё сказано....

все таки есть аргументы или нет, касательно проблемы а не личная неприязнь к тем кто в sql не вникал сильно.
25 дек 18, 15:43    [21773059]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Leonid Kudryavtsev
Озверин
Leonid Kudryavtsev, в oracle разницы между "" и null то не было в свое время, что-то изменилось?:)


Фреймворка типа ADF, вполне нормально Null понимает и не парится

В крайнем случае, написать свою ф-цию getString и использовать ее. Если речь про String'и.

Но if в том виде, как предложено, есть совсем гуано код. Т.к. в какой-то момент об этом забудут и пойдут косяки NPE, которые отлавливать замаешься.


короче вынести логику в код сервлета, а в jsp дергать за метод? чтобы кратко, а то господин ТС с высоты своего профессионализма может не понять.
А в сервлете можно написать что-нибудь вроде
public String getStringFromNullableField() {
 //...и здесь может быть if
}
25 дек 18, 15:46    [21773066]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Petro123
Leonid Kudryavtsev
можно вынести во View на стороне сервера
если фантазировать, то можно
alter table a modify (yr not null))
и т.д. И т.п.

у нас так в системе большинство полей и объявлено
25 дек 18, 15:47    [21773069]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Leonid Kudryavtsev
Petro123
пропущено...
если фантазировать, то можно
alter table a modify (yr not null))
и т.д. И т.п.

у нас так в системе большинство полей и объявлено


очень немногие бизнес системы могут себе позволить при создании записи заполнить абсолютно все поля. И это - абсолютно нормально и с этим люди живут уже лет 50.
25 дек 18, 15:51    [21773074]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Leonid Kudryavtsev
у нас так в системе большинство полей и объявлено
по разному у нас.
Я боролся только за то чтобы не превращать бд в свалку.
Т.к. Модель это непротиворечивые данные.
Иначе эксель есть.
Удачи!
25 дек 18, 15:59    [21773081]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Это таки псевдокод подразумевалось что сможете описать почему он всетаки медленнее чем аналог через запрос с coalesce.
потому что java - это байткод, а coalesce - это машинный код.
даже если использовать
...rs.getString(4)==null?"":rs.getString(4)

всё равно двойное обращение к rs.getString(4)...

lleming
В запросе с coalesce не будет стрингов?
coalesce вернёт то что требуется.
если у тебя текстовое поле то обычно делают coalesce (поле,"")
если числовое то coalesce (числовое_поле,0)
если же рассматривать пример ТС - то подойдет любой вариант - coalesce (числовое_поле,0) или coalesce (числовое_поле,"") или coalesce (числовое_поле,"-"), главное чтоб было rs.getString, потому как у ТС всё преобразуется в строку для вывода клиенту.
Озверин
А в сервлете можно написать что-нибудь вроде
public String getStringFromNullableField() {
 //...и здесь может быть if
}
можно, конечно, но вот только лишний вызов, куча кода.
когда платят за строчки - можно использовать, а с хорошо подвешенным языком - и оправдать можно.
Leonid Kudryavtsev
у нас так в системе большинство полей и объявлено
одно дело когда поля в таблице - тут надо грамотно проставлять дефолтные значения.
другое - когда в результате селекта по нескольким таблицам.
lleming
все таки есть аргументы или нет, касательно проблемы а не личная неприязнь к тем кто в sql не вникал сильно.
тут нет неприязни, тут есть наблюдение, когда прошёл жизненную школу по работе с базами, очень видно - что не так делается. Очень противно, когда своё незнание в предмете скрывается за громкими словами... Когда настаивают на преимуществах хибера, не представляя что он делает.
к примеру при получении данных из селекта хибер сначала заполняет лист, и только потом отдает его на использование. а зачем? когда можно напрямую использовать данные из селекта. это и затраты на память и на время. ладно когда с 10 записей, а когда 1000?

Petro123
тот пример иллюстрировал скорость обработки.
Т.к. Вадя всю жизнь работает по одному данному критерию.
Понятие простыня ему недоступно вообще.
система должна работать быстро. это основное.
программист должен уметь написать так чтоб работающий быстро код был доступен для лёгкого понимания, и он должен понимать любой код.
а писать код с ориентацией на слабых сопровождающих - шаг в пропасть.
25 дек 18, 17:24    [21773165]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
вадя
lleming
В запросе с coalesce не будет стрингов?
coalesce вернёт то что требуется.
если у тебя текстовое поле то обычно делают coalesce (поле,"")

К сожалению, нет.
В некоторых СУБД пустая строка эквивалентна null.

Но мое IMHO, что с БД надо работать с помощью какого-то фреймворка. ResultSet + JSP + pure HTML - как-то совсем сурово (((

Столько мелочей о которых можно забыть: и null, и не забывать вызывать close (try..finally) и пр.
25 дек 18, 17:32    [21773171]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
к примеру при получении данных из селекта хибер сначала заполняет лист, и только потом отдает его на использование. а зачем? когда можно напрямую использовать данные из селекта. это и затраты на память и на время. ладно когда с 10 записей, а когда 1000?.


страшную вещь тебе скажу, resultset`ы - тоже выбирают все данные в память и оттуда с ней работают. Только никому не говори.
25 дек 18, 17:38    [21773179]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
тут нет неприязни, тут есть наблюдение, когда прошёл жизненную школу по работе с базами, очень видно - что не так делается. Очень противно, когда своё незнание в предмете скрывается за громкими словами...
.


Ты реально думаешь, что кто то тут не умеет сделать в бд вьюху или не умеет использовать native query? Просто интересно.
25 дек 18, 17:40    [21773181]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
страшную вещь тебе скажу, resultset`ы - тоже выбирают все данные в память и оттуда с ней работают. Только никому не говори.
не совсем так. у субд есть ключи какой объём данных они возвращают через буфер. и заполняют его по мере чтения из него.
поэтому находясь в начале результсета невозможно узнать количество записей.
как только дошел до конца результсета - все данные в памяти, а если ты их использовал -незачем хранить.
25 дек 18, 17:58    [21773196]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
Ты реально думаешь, что кто то тут не умеет сделать в бд вьюху или не умеет использовать native query? Просто интересно.
в том то и дело что то что тут делают это поверхностное использование возможностей субд.
25 дек 18, 18:00    [21773198]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
страшную вещь тебе скажу, resultset`ы - тоже выбирают все данные в память и оттуда с ней работают. Только никому не говори.
не совсем так. у субд есть ключи какой объём данных они возвращают через буфер. и заполняют его по мере чтения из него.
поэтому находясь в начале результсета невозможно узнать количество записей.
как только дошел до конца результсета - все данные в памяти, а если ты их использовал -незачем хранить.


совсем не так. Это поведение НЕ по умолчанию.
Пример: документация postgresql jdbc

автор
By default the driver collects all the results for the query at once. This can be inconvenient for large data sets so the JDBC driver provides a means of basing a ResultSet on a database cursor and only fetching a small number of rows.


А дальше ряд ограничений на работу с курсором, сомневаюсь, о которых ты читал вообще.
25 дек 18, 18:02    [21773202]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
Ты реально думаешь, что кто то тут не умеет сделать в бд вьюху или не умеет использовать native query? Просто интересно.
в том то и дело что то что тут делают это поверхностное использование возможностей субд.


в том то и дело, что это подфорум для java программистов, а проблема заключается в том, что ты пока еще ни одним своим постом не продемонстрировал какое-либо глубокое понимание основ работы с бд, но свое презрение успел выразить. При этом твой уровень знаний как java, так бд - пока еще под большим вопросом.
25 дек 18, 18:03    [21773204]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
потому что java - это байткод, а coalesce - это машинный код.

опять мантры про байт код.
вадя
даже если использовать
...rs.getString(4)==null?"":rs.getString(4)

всё равно двойное обращение к rs.getString(4)...

уже лучше
..String val = rs.getString(4);
..val = val == null ? ""  val;


вадя
coalesce вернёт то что требуется.

rs.getString создаст строку, но разве если в запросе есть coalesce то rs.getString(4) не понадобиться ? Можете пример привести без rs.getString(4) ?


Как это фраза соотносится с производительностью. Если используется coalesce в запросе то rs.getString(4) будет работать по другому ежели в запросе этой функции нет ? Напоминаю вашу претензию, проблемы с производительность из за rs.getString в цикле, что этот вызов будет создавать строку, т..е если используем coalesce то rs.getString перестанет создавать строку?, или rs.getString вообще не понадобится ?


Я обращал внимание что в случае coalesce, в связи с универсальностью этой фукнции, инструкций для вычисления результа будет больше на уровне бд. Если это не видно значит этого нет ? Если для Вас это не наглядно то можно посмотреть код postgres.


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

А можно вообще jvm в процессе postgres в одном адресном пространстве запустить и сразу после чтения с диска передавать указатель на то куда все считалось, еще будет быстрее. Зачем заполнять всякие буферы, передавать кудато, сериализовать туда и обратно ну зачем. На деле же все проще, требуется отдать пользователю за 100мс, какая разница hibernate там или чистый jdbc.


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


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

Опять же основная претенция на категоричность фразы в "БД быстрее наитивнее оптимизированней"
25 дек 18, 18:15    [21773221]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
Озверин
вадя
пропущено...
не совсем так. у субд есть ключи какой объём данных они возвращают через буфер. и заполняют его по мере чтения из него.
поэтому находясь в начале результсета невозможно узнать количество записей.
как только дошел до конца результсета - все данные в памяти, а если ты их использовал -незачем хранить.


боюсь вы даже про разные кэши ведете речь, у вади кэши субд, а у вас кэши в jdbc драйвере.
25 дек 18, 18:23    [21773231]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
в том то и дело, что это подфорум для java программистов, а проблема заключается в том, что ты пока еще ни одним своим постом не продемонстрировал какое-либо глубокое понимание основ работы с бд, но свое презрение успел выразить. При этом твой уровень знаний как java, так бд - пока еще под большим вопросом.

когда ответить нечего начинаются личностные нападки....

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


Озверин
А дальше ряд ограничений на работу с курсором, сомневаюсь, о которых ты читал вообще.
ну очень хорошо, что ты об этом знаешь....
25 дек 18, 18:23    [21773232]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
вадя
...
если б загружались все данные - то количество записей резульсета было бы известно сразу.
...

Известны кому?
Если не известны Вам, то это не значит, что они вообще не известны ))) Может, кто нибудь знает и помалкивает. Т.к. действительно - раз в __некоторых__ случаях грузятся все данные, то в этих счастилвых случаях, кому-то кол-во записей должно быть известно )))

p.s. тут куча смайликов !!!
25 дек 18, 18:33    [21773240]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
боюсь вы даже про разные кэши ведете речь, у вади кэши субд, а у вас кэши в jdbc драйвере.
+1
lleming
rs.getString создаст строку, но разве если в запросе есть coalesce то rs.getString(4) не понадобиться ? Можете пример привести без rs.getString(4) ?

coalesce(поле,0) as xx вернёт int
rs.getString("xx") вернёт "0"
rs.getInt("xx") вернёт 0
lleming
А можно вообще jvm в процессе postgres в одном адресном пространстве запустить и сразу после чтения с диска передавать указатель на то куда все считалось, еще будет быстрее. Зачем заполнять всякие буферы, передавать кудато, сериализовать туда и обратно ну зачем. На деле же все проще, требуется отдать пользователю за 100мс, какая разница hibernate там или чистый jdbc.
что-то всё намешано в кучу
25 дек 18, 18:36    [21773246]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Leonid Kudryavtsev
Известны кому?
Если не известны Вам, то это не значит, что они вообще не известны ))) Может, кто нибудь знает и помалкивает. Т.к. действительно - раз в __некоторых__ случаях грузятся все данные, то в этих счастилвых случаях, кому-то кол-во записей должно быть известно )))
как только получены данные - и указатель находится в начале - нельзя узнать сколько строк в результсете, необходимо "указатель" переместить на последнюю запись только тогда можно узнать количество строк в результсете
25 дек 18, 18:40    [21773247]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Вот если ко все машинам основное требование было ездить быстро, страшно было бы на дорогу выйти. Бесконечно быстро это бесконечно дорого. Тут опять треугольник надежно, быстро приемлемо по затратам, треугольник крутите туда куда надо.
для конечного пользователя главное чтоб система работала быстро, и ему пофигу что там внутри. вы же пропагандируете - главное чтоб красиво было написано, а как работает - лишь бы работало.
в итоге приходится ждать пока операторы загрузят инфу и слышать : "Подождите, ваши данные загружаются"
25 дек 18, 18:44    [21773249]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
rs.getString("xx") вернёт "0"

"0" это же строка создается да еще и в цикле.

Почему
String value = rs.getString("xx"); // "0" для запрос select coalesce(xx, "0") as xx from .....

быстрее чем
String value = rs.getString("xx"); 
value = value == null ? "0" : value; // "0" для запроса select xx from ....

вадя
что-то всё намешано в кучу

ну вам показалось медленно, что не нужна прослойка jpa, можно сразу из resultset данные передавать клиенту. Я описал вариант и выкинуть прослойку resultset и запускать в едином адресном пространстве так будет еще ближе к БД вообще не придется ничего передвать копировать сериализовать, правда так никто не делает. Это правда сильно сложнее будет.

Вы остановились на своем уровне, те кто работает с jpa остановились на своем.

вадя
lleming
Вот если ко все машинам основное требование было ездить быстро, страшно было бы на дорогу выйти. Бесконечно быстро это бесконечно дорого. Тут опять треугольник надежно, быстро приемлемо по затратам, треугольник крутите туда куда надо.
для конечного пользователя главное чтоб система работала быстро, и ему пофигу что там внутри. вы же пропагандируете - главное чтоб красиво было написано, а как работает - лишь бы работало.
в итоге приходится ждать пока операторы загрузят инфу и слышать : "Подождите, ваши данные загружаются"


чтож вы все перевираете то
оператору нужно нужно отдать данные в 100мс дальнейнее улучшение бесмысленно. Неважно за 10мс или за 10мкс или 10нс он все равно не заметит.
25 дек 18, 18:51    [21773252]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
lleming
Вот если ко все машинам основное требование было ездить быстро, страшно было бы на дорогу выйти. Бесконечно быстро это бесконечно дорого. Тут опять треугольник надежно, быстро приемлемо по затратам, треугольник крутите туда куда надо.
для конечного пользователя главное чтоб система работала быстро, и ему пофигу что там внутри. вы же пропагандируете - главное чтоб красиво было написано, а как работает - лишь бы работало.
в итоге приходится ждать пока операторы загрузят инфу и слышать : "Подождите, ваши данные загружаются"


твои ускорялки на скорости системы не отражаются от слова совсем. Но, главное, сделать это как делаешь ты - с важным презрением к тем, кто не якобы не понимает, как работает бд.
25 дек 18, 18:52    [21773253]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
оператору нужно нужно отдать данные в 100мс дальнейнее улучшение бесмысленно. Неважно за 10мс или за 10мкс или 10нс он все равно не заметит.
дело в том что система многопользователькая, и если для одного 100мс не заметно, то при 10 юзерах это будет уже 1 сек....

Озверин
твои ускорялки на скорости системы не отражаются от слова совсем. Но, главное, сделать это как делаешь ты - с важным презрением к тем, кто не якобы не понимает, как работает бд.
у меня презрение к тем , кто скрывает своё не понимание субд за громкими словами. выставляя свои минимальные знания как огромные., может с его точки зрения они и видятся таковыми, но на само деле таковыми не являются.
25 дек 18, 18:58    [21773258]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя,ты сам себя презираешь? Ты ж не продемонстрировал пока ничего.
25 дек 18, 18:59    [21773259]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
Leonid Kudryavtsev
Известны кому?
Если не известны Вам, то это не значит, что они вообще не известны ))) Может, кто нибудь знает и помалкивает. Т.к. действительно - раз в __некоторых__ случаях грузятся все данные, то в этих счастилвых случаях, кому-то кол-во записей должно быть известно )))
как только получены данные - и указатель находится в начале - нельзя узнать сколько строк в результсете, необходимо "указатель" переместить на последнюю запись только тогда можно узнать количество строк в результсете


Ссылка была указана на jdbc драйвер postgresql. Есть причины недоверять разрабам драйвере все ли данные сразу в resultset помещаются или нет?

Во первых это поведение не гарантируется все производителями БД. Те кто делал postgres сделал так как сделал. Те кто писал jdbc spec сделал так чтобы можно было расширить. Так в случае Postgresql всего ли частная имплетентация.
25 дек 18, 19:09    [21773263]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
lleming
нельзя узнать сколько строк в результсете

Можно (postygresql), возьми и через reflection дерни. Только решение это не jdbc. И только для конкретного драйвера.
25 дек 18, 19:12    [21773267]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Ссылка была указана на jdbc драйвер postgresql. Есть причины недоверять разрабам драйвере все ли данные сразу в resultset помещаются или нет?
я работал с несколькими субд и во всех так.
проверь - перед первым next сколько строк вернул резульсет
Озверин
вадя,ты сам себя презираешь? Ты ж не продемонстрировал пока ничего.
показывал, больше не буду
25 дек 18, 19:12    [21773269]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Можно (postygresql), возьми и через reflection дерни. Только решение это не jdbc. И только для конкретного драйвера.
хорошее уточнение....
25 дек 18, 19:13    [21773271]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
Ссылка была указана на jdbc драйвер postgresql. Есть причины недоверять разрабам драйвере все ли данные сразу в resultset помещаются или нет?
я работал с несколькими субд и во всех так.
проверь - перед первым next сколько строк вернул резульсет
Озверин
вадя,ты сам себя презираешь? Ты ж не продемонстрировал пока ничего.
показывал, больше не буду


Перед тем как отписать проверил. Все ок.
25 дек 18, 19:14    [21773272]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
Можно (postygresql), возьми и через reflection дерни. Только решение это не jdbc. И только для конкретного драйвера.
хорошее уточнение....


Еще уточнение, это не гарантируется. Нужно автокомит отключить и настроить тип result set это раз.
Два нет никаких гарантий что через неделю в новом релизе драйвера это поведение поправят в "нужную" сторону.
25 дек 18, 19:18    [21773277]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
lleming
Ссылка была указана на jdbc драйвер postgresql. Есть причины недоверять разрабам драйвере все ли данные сразу в resultset помещаются или нет?
я работал с несколькими субд и во всех так.
проверь - перед первым next сколько строк вернул резульсет


страшную тебе вещь скажу, но java jdbc у connection autocommit по умолчанию = true, а значит всегда данные - открыто соединение к базе и читается пачками или нет - зависит
а) от того, поддерживает ли holdable cursor конкретный jdbc драйвер к базе
б) собственно реализация сценария при чтении данных в резалтсет при коммите.

https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html

Cursor Holdability
Calling the method Connection.commit can close the ResultSet objects that have been created during the current transaction. In some cases, however, this may not be the desired behavior. The ResultSet property holdability gives the application control over whether ResultSet objects (cursors) are closed when commit is called.

The following ResultSet constants may be supplied to the Connection methods createStatement, prepareStatement, and prepareCall:

автор
HOLD_CURSORS_OVER_COMMIT: ResultSet cursors are not closed; they are holdable: they are held open when the method commit is called. Holdable cursors might be ideal if your application uses mostly read-only ResultSet objects.
CLOSE_CURSORS_AT_COMMIT: ResultSet objects (cursors) are closed when the commit method is called. Closing cursors when this method is called can result in better performance for some applications.
The default cursor holdability varies depending on your DBMS.

Note: Not all JDBC drivers and databases support holdable and non-holdable cursors. The following method, JDBCTutorialUtilities.cursorHoldabilitySupport, outputs the default cursor holdability of ResultSet objects and whether HOLD_CURSORS_OVER_COMMIT and CLOSE_CURSORS_AT_COMMIT are supported:
25 дек 18, 19:20    [21773279]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
А теперь читаем уточнение

автор
CLOSE_CURSORS_AT_COMMIT: ResultSet objects (cursors) are closed when the commit method is called. Closing cursors when this method is called can result in better performance for some applications.


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

Вот оно что Михалыч...
25 дек 18, 19:22    [21773282]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Перед тем как отписать проверил. Все ок.

https://ru.stackoverflow.com/questions/66071/java-Узнать-количество-строк-полученных-в-запросе
http://qaru.site/questions/220889/how-do-i-get-the-row-count-in-jdbc
https://www.sql.ru/forum/572235/jdbc-ne-poluchaetsya-uznat-kolichestvo-zapisey-v-rezaltsete
http://qaru.site/questions/30742/fast-way-to-discover-the-row-count-of-a-table-in-postgresql
25 дек 18, 19:29    [21773287]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
Ох ты, что ж такое, оракл говорит, что бывает ситуации, при которых закрыть курсор и работать с данными в памяти - бывает быстрее, чем тянуть данными пачками....
однако ты признал, что данные тянутся пачками.
все данные можно загрузить в память результсета и просто переместив курсор в конец.

только мы не о курсоре говорили
25 дек 18, 19:35    [21773292]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
Ох ты, что ж такое, оракл говорит, что бывает ситуации, при которых закрыть курсор и работать с данными в памяти - бывает быстрее, чем тянуть данными пачками....
однако ты признал, что данные тянутся пачками.
все данные можно загрузить в память результсета и просто переместив курсор в конец.

только мы не о курсоре говорили


я пока что признал, что ничего не знаешь о внутреннем устройстве jdbc, хотя с важным видом рассказываешь о презрении к людям, которые чего-то там не знают и кидаются громкими словами.

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

я пока что признал, что фетчинг пачками не всегда быстрее(как ты утверждаешь), чем работа с объектами в памяти.

ты пока что сидишь и с презрением кидаешь ссылки на стаковерфлоу и говоришь, что ты заколебался смотреть на этих неудачников вокруг и озарил своим программированием местный форум.
25 дек 18, 19:38    [21773295]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
Ох ты, что ж такое, оракл говорит, что бывает ситуации, при которых закрыть курсор и работать с данными в памяти - бывает быстрее, чем тянуть данными пачками....
однако ты признал, что данные тянутся пачками.
все данные можно загрузить в память результсета и просто переместив курсор в конец.

только мы не о курсоре говорили


мы ж говорили про резалтсеты...ты вообще понимаешь, как там все внутри происходит то? По твоему, что там в в этом резалтсете двигается?

вадя, не говори спасибо:

}
A ResultSet object is a table of data representing a database result set, which is usually generated by executing a statement that queries the database. For example, the CoffeeTables.viewTable method creates a ResultSet, rs, when it executes the query through the Statement object, stmt. Note that a ResultSet object can be created through any object that implements the Statement interface, including PreparedStatement, CallableStatement, and RowSet.

You access the data in a ResultSet object through a cursor. Note that this cursor is not a database cursor. This cursor is a pointer that points to one row of data in the ResultSet. Initially, the cursor is positioned before the first row. The method ResultSet.next moves the cursor to the next row. This method returns false if the cursor is positioned after the last row. This method repeatedly calls the ResultSet.next method with a while loop to iterate through all the data in the ResultSet.

This page covers the following topics:

автор
ResultSet Interface
Retrieving Column Values from Rows
Cursors
Updating Rows in ResultSet Objects
Using Statement Objects for Batch Updates
Inserting Rows in ResultSet Objects
ResultSet Interface
The ResultSet interface provides methods for retrieving and manipulating the results of executed queries, and ResultSet objects can have different functionality and characteristics. These characteristics are type, concurrency, and cursor holdability.

ResultSet Types
The type of a ResultSet object determines the level of its functionality in two areas: the ways in which the cursor can be manipulated, and how concurrent changes made to the underlying data source are reflected by the ResultSet object.
25 дек 18, 19:39    [21773297]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
A ResultSet object is a table of data representing a database result set, which is usually generated by executing a statement that queries the database. For example, the CoffeeTables.viewTable method creates a ResultSet, rs, when it executes the query through the Statement object, stmt. Note that a ResultSet object can be created through any object that implements the Statement interface, including PreparedStatement, CallableStatement, and RowSet.

You access the data in a ResultSet object through a cursor. Note that this cursor is not a database cursor. This cursor is a pointer that points to one row of data in the ResultSet. Initially, the cursor is positioned before the first row. The method ResultSet.next moves the cursor to the next row. This method returns false if the cursor is positioned after the last row. This method repeatedly calls the ResultSet.next method with a while loop to iterate through all the data in the ResultSet.
и что ты этим хотел сказать? что тут нового?
это только подтверждает, что б получить количество записей надо переместить курсор в конец результсета.
могу тебе к этому добавить что резульсеты могут быть редактируемыми и не редактируемыми.
25 дек 18, 19:51    [21773307]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя, скажи, что ты просто прикалываешься?
25 дек 18, 20:07    [21773320]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
вадя, скажи, что ты просто прикалываешься?
по поводу?
25 дек 18, 21:03    [21773352]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming
Перед тем как отписать проверил. Все ок.

https://ru.stackoverflow.com/questions/66071/java-Узнать-количество-строк-полученных-в-запросе
http://qaru.site/questions/220889/how-do-i-get-the-row-count-in-jdbc
https://www.sql.ru/forum/572235/jdbc-ne-poluchaetsya-uznat-kolichestvo-zapisey-v-rezaltsete
http://qaru.site/questions/30742/fast-way-to-discover-the-row-count-of-a-table-in-postgresql


1. mysql я явно упомянул что данное справедливо для Postgresql (это не jdbc спека так позволяет а реализация вендором)
2. oracle ответ аналогичный первому (более того по той же ссылке та же самая информация что уже не раз в теме поднималась
3. oracle ответ аналогичный первым двум
4. и тут наконец postgrsql правда ссылка абсолютно не имеет отношения к поднятой теме.

Все мимо. Вы хоть сами ссылки открывали ?
25 дек 18, 23:20    [21773449]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
вадя
пропущено...

https://ru.stackoverflow.com/questions/66071/java-Узнать-количество-строк-полученных-в-запросе
http://qaru.site/questions/220889/how-do-i-get-the-row-count-in-jdbc
https://www.sql.ru/forum/572235/jdbc-ne-poluchaetsya-uznat-kolichestvo-zapisey-v-rezaltsete
http://qaru.site/questions/30742/fast-way-to-discover-the-row-count-of-a-table-in-postgresql


1. mysql я явно упомянул что данное справедливо для Postgresql (это не jdbc спека так позволяет а реализация вендором)
2. oracle ответ аналогичный первому (более того по той же ссылке та же самая информация что уже не раз в теме поднималась
3. oracle ответ аналогичный первым двум
4. и тут наконец postgrsql правда ссылка абсолютно не имеет отношения к поднятой теме.

Все мимо. Вы хоть сами ссылки открывали ?

могу сказать, что ты не понял.....
26 дек 18, 05:52    [21773524]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming,
надеюсь из этого станет понятно?

Хм. Предусмотренного метода "из коробки" как я понимаю нет. Придется делать что-то вроде:
public static int getResultSetRowCount(ResultSet resultSet) {
int size = 0;
try {
    resultSet.last();
    size = resultSet.getRow();
    resultSet.beforeFirst();
26 дек 18, 06:27    [21773527]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
у меня презрение к тем , кто скрывает своё не понимание субд за громкими словами. выставляя свои минимальные знания как огромные., может с его точки зрения они и видятся таковыми, но на само деле таковыми не являются.
в мемориз.))
26 дек 18, 07:18    [21773536]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
lleming,
надеюсь из этого станет понятно?

Хм. Предусмотренного метода "из коробки" как я понимаю нет. Придется делать что-то вроде:
public static int getResultSetRowCount(ResultSet resultSet) {
int size = 0;
try {
    resultSet.last();
    size = resultSet.getRow();
    resultSet.beforeFirst();


Этот код понятен. Непонятно какое отношение это код имеет к поднятой теме.
26 дек 18, 09:50    [21773595]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
Последняя ссылка вообще огонь. К теме она относиться только тем что там встречаются ключевые слова Postgresql, count, table, query. Все остальное мимо.
26 дек 18, 09:54    [21773598]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Этот код понятен. Непонятно какое отношение это код имеет к поднятой теме.
это к тому что
Озверин
страшную вещь тебе скажу, resultset`ы - тоже выбирают все данные в память и оттуда с ней работают. Только никому не говори.
не выбирают всё, если не сделать переход к концу
26 дек 18, 10:19    [21773620]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
lleming
Последняя ссылка вообще огонь. К теме она относиться только тем что там встречаются ключевые слова Postgresql, count, table, query. Все остальное мимо.


вадя думает, что раз резалтсет не знает кол-во записей до перемещения курсора в самый конецо, то именно это служит доказательством того, что данные сразу не загружаются в память.
Как же его должно быть разочаровывают итераторы.
26 дек 18, 10:20    [21773622]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
lleming
Этот код понятен. Непонятно какое отношение это код имеет к поднятой теме.
это к тому что
Озверин
страшную вещь тебе скажу, resultset`ы - тоже выбирают все данные в память и оттуда с ней работают. Только никому не говори.
не выбирают всё, если не сделать переход к концу


я тебе привел ссылки на ман оракла и реализации драйвера для постгре, где черным по белому написаны условия поведения данных в резалтсете. Ты несешь откровенную чушь.
26 дек 18, 10:21    [21773624]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
вадя думает, что раз резалтсет не знает кол-во записей до перемещения курсора в самый конецо, то именно это служит доказательством того, что данные сразу не загружаются в память.
Как же его должно быть разочаровывают итераторы.
если бы были загружены все строки - не возникало б таких вопросов.
26 дек 18, 10:22    [21773625]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
я тебе привел ссылки на ман оракла и реализации драйвера для постгре, где черным по белому написаны условия поведения данных в резалтсете. Ты несешь откровенную чушь.
я не буду тебя переубеждать....
26 дек 18, 10:24    [21773628]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
вадя думает, что раз резалтсет не знает кол-во записей до перемещения курсора в самый конецо, то именно это служит доказательством того, что данные сразу не загружаются в память.
Как же его должно быть разочаровывают итераторы.
если бы были загружены все строки - не возникало б таких вопросов.


ты не веришь документации оракла или постгре, ты мне объясни?;)
26 дек 18, 10:25    [21773632]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
я тебе привел ссылки на ман оракла и реализации драйвера для постгре, где черным по белому написаны условия поведения данных в резалтсете. Ты несешь откровенную чушь.
я не буду тебя переубеждать....


так ты и не можешь, т.к. ничего кроме qaru и стаковерфлоу читать не умеешь.
26 дек 18, 10:26    [21773633]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя,ну ладно мне, а как ты себе доказал, что что-то работает быстрее, чем что-то другое? Ну там тест какой-нить написал хоть? Просто интересно узнать, Как работают гуру java + db программирования. Как замеряют скорости? Ведь как-то приходят они в своих умозаключениях к этим шедеврам?
26 дек 18, 10:28    [21773639]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
lleming
Member

Откуда:
Сообщений: 1595
вадя
Озверин
я тебе привел ссылки на ман оракла и реализации драйвера для постгре, где черным по белому написаны условия поведения данных в резалтсете. Ты несешь откровенную чушь.
я не буду тебя переубеждать....


Проверить то легко, простое jdbc соединение (postgres), простой запрос, в режиме дебага останови и побегай по полям PgResultSet и узри поле rows типа ArrayList, в котором внезапно сразу все данные.

Вопрос почему тогда нет в спеке jdbc у ResultSet нет getQueryRowCount, спроси у комитета который эту спеку делал и почему они со всеми вендорами не согласовали это поведение.

Условия выполнения там же в доке к драйверу postgres, сделай усилие почитай.
26 дек 18, 10:32    [21773643]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
вадя,ну ладно мне, а как ты себе доказал, что что-то работает быстрее, чем что-то другое? Ну там тест какой-нить написал хоть? Просто интересно узнать, Как работают гуру java + db программирования. Как замеряют скорости? Ведь как-то приходят они в своих умозаключениях к этим шедеврам?
тебя научит сравнивать время?
26 дек 18, 10:38    [21773645]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
вадя,ну ладно мне, а как ты себе доказал, что что-то работает быстрее, чем что-то другое? Ну там тест какой-нить написал хоть? Просто интересно узнать, Как работают гуру java + db программирования. Как замеряют скорости? Ведь как-то приходят они в своих умозаключениях к этим шедеврам?
тебя научит сравнивать время?


я бы получил урок от гуру java программирования. Научи, пожалуйста.
26 дек 18, 10:40    [21773647]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
lleming
Вопрос почему тогда нет в спеке jdbc у ResultSet нет getQueryRowCount,
это к вопросу о использовании конкретной субд или универсальном подходе для любой субд....
26 дек 18, 10:41    [21773650]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
я бы получил урок от гуру java программирования. Научи, пожалуйста.
воспользуюсь твоим методом - читай первоисточники.
26 дек 18, 10:42    [21773654]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
Озверин
я бы получил урок от гуру java программирования. Научи, пожалуйста.
воспользуюсь твоим методом - читай первоисточники.


мне мои методы говорят, что умолчанию resultset.getInt() вернет 0 вмеcто null. Не сильно шокировал?
26 дек 18, 10:47    [21773656]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Озверин
умолчанию resultset.getInt() вернет 0 вмеcто null.
))
26 дек 18, 11:04    [21773671]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Ты умудряешься спорить на ровном месте и по ерунде.
26 дек 18, 11:06    [21773673]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Korcar
Member

Откуда:
Сообщений: 7877
Petro123
вадя,
Ты умудряешься спорить на ровном месте и по ерунде.

в тебе так же присутствует эта способность и даже на порядок больше)
26 дек 18, 12:18    [21773724]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Korcar, так ты за мной и будешь тут как тень ходить.
Тебе же сказали, не умеешь разговаривать на взрослые темы - стой в сторонке.
26 дек 18, 12:36    [21773738]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15812
Озверин
вадя
пропущено...
воспользуюсь твоим методом - читай первоисточники.


мне мои методы говорят, что умолчанию resultset.getInt() вернет 0 вмеcто null. Не сильно шокировал?

ты всё только однозначно воспринимаешь?
во многих случаях ноль не требуется отображать....
вместо него пустую строку требуют или прочерк.
26 дек 18, 13:13    [21773772]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
вместо него пустую строку требуют или прочерк.
слоово Или это if?
26 дек 18, 13:30    [21773795]     Ответить | Цитировать Сообщить модератору
 Re: Вывод Null из БД  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
во многих случаях ноль не требуется отображать....
вместо него пустую строку требуют или прочерк.


как ты из резалтсета вместо числа получишь прочерк то?
Тебе для этого придется использовать get() вместо getInt() или getString().

Так и представляю, программист видит, что должен получить из этого поля число, а ему приходит прочерк и где-то на getInt() у него все падает к чертям, от чего он испытает ненависть ко всему человеческому люду. Зато он сразу знает, тут приложил руку архитектор вадя.

Для совсем примитивной логики твой случай еще может подойти, а там, где с числом надо выполнять числовые операции - надо что-то куда-то конрвертить.
26 дек 18, 13:45    [21773822]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
Все форумы / Java Ответить