Spring JdbcTemplate: тип возвращаемого значения count (*) в ResultSet of PreparedStatement - PullRequest
0 голосов
/ 28 августа 2018

Каков тип возвращаемого значения count (*) в ResultSet подготовленного оператора с Spring JdbcTemplate?

        String query = "select count(*) as ROW_COUNT from table1";

        List<Map<String, Object>> list = executePreparedStatement(query);

        Iterator<Map<String, Object>> iter = list.iterator();
        if (iter.hasNext()) {
            Map<String, Object> lom = iter.next();
            return (((Long) lom.get("ROW_COUNT"))).intValue();
        }

Это зависит от драйвера JDBC / и / или базы данных?

Например, в DB2 тип возвращаемого значения был Integer, но в PostgreSQL это Long.

Почему это отличается?

1 Ответ

0 голосов
/ 28 августа 2018

Различные поставщики имеют разные реализации.

Иногда даже один поставщик может иметь разные реализации.

Вам необходимо соответствующим образом кодировать.

Db2 для Linux / Unix / Windows, Db2 для i-Series, Db2 для Z / OS, все возвращают большое целое число из функции COUNT.

Кроме того, Db2 для i может вернуть DECIMAL (15,0) из функции count, если таблица распределена.

В Db2 также есть функция COUNT_BIG, которая возвращает DECIMAL (31,0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...