2015-08-31 2 views
1

Я пытаюсь читать из Resultset BigDecimal, который является нулевымjava.sql.ResultSet getBigDecimal когда это пустой

bean.setAuthorizedAmount(res.getBigDecimal(columnIndex++)); 

и это дает следующее исключение

java.sql.SQLException: Fail to convert to internal representation 

Может вы предлагаете простейший код, который может просто отображать на BigDecimal, является ли столбец нулевым или нет, например, как вы можете это сделать для String?

Надеюсь, что я был достаточно ясен, спасибо заранее.

+1

В этом случае тип данных столбца может отличаться. –

+0

Что нужно вернуть, если значение столбца в базе данных равно NULL? Если вы хотите вернуть BigDecimal.ZERO, вы можете, например, изменить инструкцию SQL для возврата 'NVL (column, '0')'. – SubOptimal

+0

Какой тип данных столбца? –

ответ

0

Это происходит, когда данные столбца не могут быть преобразованы в BigDecimal или любой тип, который вы ищете. Я думаю, вы начали columnIndex от 0, в этом случае вы не сможете получить точный столбец, который вы хотите. Он говорит, что java не может преобразовать данные в BigDecimal из значения столбца.

EDIT:

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

+2

Итак, как наилучшая практика, лучше получить коды по имени, а не по индексу. –

+1

Я решил получить столбцы по имени, он возвращает null, когда столбец равен null. Благодарю. – Simimmo

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