Я не полностью следую вашему коду, но могу указать на некоторые проблемы с логикой JDBC.Вот что вы делаете сейчас:
Connection con = koneksi.koneksiDB();
Statement stm = con.createStatement();
String query = "SELECT COUNT(no_surat)+1 FROM surat_masuk";
ResultSet rs = stm.executeQuery(query);
if (rs.next()) {
getValue = Integer.parseInt(rs.getString(5));
}
Нет смысла просить пятый столбец, когда ваш выбор имеет только один столбец в наборе результатов.Вы, вероятно, должны идти после индекса первого столбца, то есть
if (rs.next()) {
getValue = rs.getInt(1);
}
Обратите внимание, что я использую здесь ResultSet#getInt()
, а не ResultSet#getString()
, потому что счет обычно будет представлен целым числом вуровень базы данных.
В качестве альтернативы запросу индекса первого столбца можно указать псевдоним счетчика, а затем получить доступ к нему:
String query = "SELECT COUNT(no_surat) + 1 AS cnt FROM surat_masuk";
ResultSet rs = stm.executeQuery(query);
if (rs.next()) {
getValue = rs.getInt("cnt");
}