Как добавить результат в набор результатов хранимой процедуры MySQL в Java

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

while (resultSet.next()) {

            Object[] objects = {
                    resultSet.getDouble("January"),
                    resultSet.getDouble("February"), 
                    resultSet.getDouble("March"),
                    resultSet.getDouble("April"),
                    resultSet.getDouble("May"),
                    resultSet.getDouble("June"), 
                    resultSet.getDouble("July"),
                    resultSet.getDouble("August"), 
                    resultSet.getDouble("September"),
                    resultSet.getDouble("October"), 
                    resultSet.getDouble("November"),
                    resultSet.getDouble("December"), 
                     };
            model.addRow(objects);
        }

Ошибка показывает "Столбец" Январь "не найден".

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

categoryid  January   February....

1      3000      5000      (double)....

Код запроса:

CallableStatement callableStatement = connection.prepareCall(sql);
        if (cobAccount.getSelectedIndex() != 0) {
            String accountid = cobAccount.getSelectedItem().toString()
                    .substring(0, 1);
            callableStatement.setString(1, accountid);
        } else {
            callableStatement.setString(1, "0");
        }
        if (cobYear.getSelectedIndex() != 0) {
            String year = cobYear.getSelectedItem().toString();
            callableStatement.setString(2, year);
        } else {
            callableStatement.setString(2, "0");
        }
        if (cobMember.getSelectedIndex() != 0) {
            String memberid = cobMember.getSelectedItem().toString()
                    .substring(0, 1);
            callableStatement.setString(3, memberid);
        } else {
            callableStatement.setString(3, "0");
        }
        if (!"".equals(txtMinmoney.getText())) {
            double minMoney = Double.valueOf(txtMaxmoney.getText());
            callableStatement.setDouble(4, minMoney);
        } else {
            callableStatement.setDouble(4, '0');
        }
        if (!"".equals(txtMaxmoney.getText())) {
            double maxMoney = Double.valueOf(txtMaxmoney.getText());
            callableStatement.setDouble(5, maxMoney);
        } else {
            callableStatement.setDouble(5, '0');
        }

3 ответа

Похоже, что нет колонки с именем января. Есть ли столбец с именем "Месяц" со значением январь / февраль / и т. Д.? Если бы вы могли опубликовать определение таблицы и запрос, устранение неполадок было бы проще.

Убедитесь, что строка, которую вы передаете для getDouble Функция - это фактические имена ваших столбцов SQL. Например, Janunary, кажется, пишется неправильно.

Ты пропустил январь со своим resultSet.next() нет?

возможно сделать resultSet.hasNext() или Equivelant и resultSet.next() в конце вашего цикла?

Другие вопросы по тегам