У меня возникла небольшая проблема с преобразованием результата запроса MySQL в класс Java при использовании SUM.
При выполнении простого SUM в MySQL
SELECT SUM(price) FROM cakes WHERE ingredient = 'chocolate';
с price
, являющимся целым числом, кажется, что SUM
иногда возвращает строку, а иногда и целое число, в зависимости от версии драйвера JDBC.
Судя по всему, сервер сообщает драйверу JDBC, что результатом SUM
является строка, и драйвер JDBC иногда «удобно» преобразует это в целое число. (см. объяснение Марка Мэтьюса ).
Java-код использует некоторые BeanInfo и Introspection для автоматического заполнения (списка) bean-компонента (ов) результатом запроса. Но это, очевидно, не может работать, если типы данных различаются между серверами, на которых развернуто приложение.
Мне все равно, получаю ли я строку или целое число, но я бы хотел всегда иметь один и тот же тип данных или, по крайней мере, заранее знать, какой тип данных я получу.
Есть ли какой-нибудь способ узнать, какой тип данных будет возвращен MySQL SUM
из кода Java? Или кто-нибудь знает лучший способ справиться с этим?