Увеличение значения ID_Column на 1 с помощью MySQL

0

Я написал этот код, который увеличивает содержание jlabel на 1.
это отлично работает с базой данных SQLite. но когда я переключился на MySQL, тот же синтаксис не дает никакого значения. пожалуйста, что кажется проблемой. код выглядит следующим образом:

try{
    String sql = "Select max(ID) from ad_form";
    pst=con.prepareStatement(sql);
    rs=pst.executeQuery();
    String one =rs.getString("max(ID)");
    id.setText(one);

    int all = Integer.valueOf(id.getText());
    all=all+1;
    id.setText(String.valueOf(all));
    }catch(SQLException | NumberFormatException e ){
    JOptionPane.showMessageDialog(null,e);
    }
    finally{
                try{
                    rs.close();
                    pst.close();
                }
                catch(Exception ep){
                    ep.getMessage();
                }

            }

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

  • 0
    Это все еще допустимый синтаксис SQL в MySQL. Вы проверили, есть ли ошибка? Вероятно, столбец max(ID) возвращается с другим именем (например, MAX(ID) ), и в этом случае SELECT MAX(ID) AS fake_column_name FROM ad_form все равно будет работать.
  • 0
    сообщение об ошибке: Перед началом набора результатов @VoteyDisciple
Показать ещё 4 комментария
Теги:

1 ответ

0

Проблема заключается в наименовании неназванного выражения. Это зависит от базы данных. Так просто:

Select max(ID) as max_id from ad_form

а потом:

String one =rs.getString("max_id");

Это будет работать в любой базе данных.

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

  • 0
    Я попробовал ваш ответ @ Гордон. но все еще не работал. Я хочу, чтобы каждый член имел уникальный набор значений int как id. вот почему я использовал этот подход
  • 1
    @RodneyNart. , , Возможно, вам следует использовать столбец auto_increment . Это должно быть сделано в базе данных, автоматически, когда строка вставлена, а не в приложении.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню