Добавление отдельных данных в JComboBox из базы данных

#java #sql

#java #sql

Вопрос:

У меня есть JComboBox, который я хочу заполнить кафедрами студентов в базе данных. Теперь один и тот же отдел встречается в таблице много раз, поэтому я хочу, чтобы каждое название отдела отображалось в списке элементов только один раз. Настоящий код, который я написал, не дает желаемого результата. Он помещает одно и то же название отдела несколько раз в список со списком. Как я могу это решить? Мой код для извлечения названий отделов приведен ниже:

  conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydaatabase1","root","Password123");
            String sql1 = "select distinct (dept) from droptest";
            PreparedStatement pss = conn.prepareStatement(sql1);
            ResultSet rs = pss.executeQuery(sql1);
            while(rs.next())
            {
                String d = rs.getString("dept");
                jComboBox1.addItem(d);
            }
  

Комментарии:

1. Ваш оператор SQL верен. Нет необходимости в каком-либо групповом операторе, поскольку вы выполняете distinct только для 1 столбца. Может возникнуть проблема в операторе while, который добавляет элемент.

2. Я поместил приведенный выше код в конструктор, поэтому я предполагаю, что он каким-то образом вызывается более одного раза. Возможно ли это?

Ответ №1:

Я думаю, вам нужно использовать group by в select data…

выберите ColumnName из группы tablename по ColumnName

     Select dept 
    From droptest
    Group by dept 
  

Группировать по-разному

Комментарии:

1. Группировать по не требуется. Он принимает только отдельные данные в 1 столбце.

2. Хорошо работают оба