jComboBox + SQL Developer zdublowane wartości.

0

Witam
W jaki sposób mogę wczytać do jComboBoxa dane z bazy tak aby nie było "dubli"?
Zrobiłem aby wypełniał ComboBoxa wartościami z bazy jednak do wyboru są też zdublowane wartości. Po prostu wczytuje dane 1 do 1.
W jaki sposób mogę pominąć zdublowane wartości ?

public void fillCombo(){
        String sql= "Select * from AUTA";
    try {
        ps=con.prepareStatement(sql);
        res=ps.executeQuery();
        while(res.next()){
            Marka.addItem(res.getString("MARKA"));
            Model.addItem(res.getString("MODEL"));
            Silnik.addItem(res.getString("SILNIK"));
            Zastosowanie.addItem(res.getString("ZASTOSOWANIE"));
            Awaryjnosc.addItem(res.getString("AWARYJNOSC"));
            Typ.addItem(res.getString("TYP"));
            Poj_bag.addItem(res.getString("POJ_BAG"));
            Paliwo.addItem(res.getString("PALIWO"));
            Koszty.addItem(res.getString("KOSZTY"));
        }
    } catch (SQLException ex) {
        Logger.getLogger(wybor.class.getName()).log(Level.SEVERE, null, ex);
    }
        
    }

Bardzo proszę o pomoc :).
Pewnie to banalne rozwiązanie ale męczę się już z tym trochę.

0

Nie dodawaj bezpośrednio do JComboBoksów tylko do zbiorów (HashSet). Potem przekonwertuj zbiory na tablice (toArray) i użyj tablic jako modelu dla JComboBoksów.

0

Poradziłem sobie :) do każdego zrobiłem osobną metodę i działa elegancko :)

public void fillMarka(){
        Marka.enable();
    String sql1= "Select MARKA from AUTA GROUP BY MARKA ORDER BY MARKA ASC";
        try {
            ps=con.prepareStatement(sql1);
            res=ps.executeQuery();
            while(res.next()){
                Marka.addItem(res.getString("MARKA"));
            }
        } catch (SQLException ex) {
        Logger.getLogger(wybor.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
0

Nie lepiej byłoby zrobić?

Select distinct MARKA from AUTA ORDER BY MARKA ASC

1 użytkowników online, w tym zalogowanych: 0, gości: 1