• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java + MySQL - wczytywanie danych z bazy i wprowadzenie do ComboBoxa (Swing)

Object Storage Arubacloud
0 głosów
917 wizyt
pytanie zadane 5 stycznia 2017 w Java przez FairPlay Nowicjusz (170 p.)

Witam, mam problem z wczytywaniem rekordów z bazy danych i zapisywaniem ich do Comboboxa. O ile zapisywanie do bazy danych działa poprawnie, to ze wczytywaniem dzieje się coś strasznie dziwnego. Mianowicie po zaznaczeniu zapisuje się dobrze w bazie, ale zaś po ponownym zalogowaniu żadne pole nie jest zaznaczone. Pewnie coś z tymi ifami jest źle. Tylko no właśnie? Jak to poprawić? Tabel "sex" może mieć 2 pola - Mężczyzna i Kobieta. Mam 2 comboboxy, nazwane odpowiednio male i female.

 

        try {
            pst = connect.prepareStatement("SELECT sex FROM user_reg WHERE login='"+login_pane.getText()+"'");
            rss = pst.executeQuery();
            
             if(rss.next()){
                     String value = rss.toString();
            if(value.equals("Mężczyzna")){
                     male.setSelected(true);
                     female.setSelected(false);}
            else if(value.equals("Kobieta")) {
                     male.setSelected(false);
                     female.setSelected(true);}
            else{
                    male.setSelected(false);
                    female.setSelected(false);}
            
            }
            
            rss.close();

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex);
        }

 

2 odpowiedzi

+1 głos
odpowiedź 5 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
wybrane 5 stycznia 2017 przez FairPlay
 
Najlepsza

Nie powinno dawać się stringa pobranego od użytkownika odrazu wklejać do zapytania. Aby uchronić się przez SQL injection stosujemy taki zabieg.

String sql= "SELECT sex FROM user_reg WHERE login = ? ";
PreparedStatement ps = connect.prepareStatement(sql);
String login = login_pane.getText();
ps.setString(1,login);
rs = ps.executeQuery();

 

Najważniesza tu jest linijka 1 i 4 czyli znak zapytania i setString

I raczej jak chcesz pobrać stringa to nie toString tylko getString(1) albo getString("sex")

 

komentarz 5 stycznia 2017 przez FairPlay Nowicjusz (170 p.)
Cacy, działa. Dzięki :) I kurcze męczyłem się z tym tak długo, a jednak tak niewiele potrzeba było. Jeszcze sporo pracy przede mną. No nic, do zamknięcia.
komentarz 5 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Powodzenia w dalszej pracy
+1 głos
odpowiedź 5 stycznia 2017 przez playerony Pasjonat (15,240 p.)
"SELECT sex FROM `user_reg` WHERE login='"+login_pane.getText()+"'"

Kiedyś miałem podobny problem i właśnie dodanie odpowiednich cudzysłowiów pomogło.

Druga sprawa to czy aby napewno String w Javie obsługuje Ci polskie znaki?
komentarz 5 stycznia 2017 przez FairPlay Nowicjusz (170 p.)

Syntax error Exception, to chyba nie przez cudzysłów. 

Druga sprawa to czy aby napewno String w Javie obsługuje Ci polskie znaki?

Na 100%, Mam pole "Miejscowość", gdzie dodawałem nazwy z polskimi literami i wszystko działało cacy 

komentarz 5 stycznia 2017 przez playerony Pasjonat (15,240 p.)

Patrząc na mój kod naklepnay jakieś x lat temu:

String sql = "select * from `pallets_picked` where id = '" + id + "'";
				
			Statement statement = null;
			ResultSet resultSet = null;
			try {
				statement = (Statement) connection.createStatement();
				rs = statement.executeQuery(sql);
					
				while ( resultSet.next() ) {
		            int palleteID = resultSet.getInt("id");
		            int clientID = resultSet.getInt("client_id");
		            String products = resultSet.getString("products");
		            
		            informations = new PickedPalleteInformations(palleteID, clientID, products);
				}
			} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
			}

 

Może Ci brakować: resultSet.getString(nazwa_jakaś). Jeżeli nie to to w tym moim fragmencie kodu myśle, że znajdziesz odpowiedź.

Podobne pytania

0 głosów
1 odpowiedź 87 wizyt
0 głosów
6 odpowiedzi 927 wizyt
pytanie zadane 16 września 2016 w Java przez Kacperos_89 Początkujący (400 p.)
0 głosów
0 odpowiedzi 200 wizyt
pytanie zadane 26 maja 2019 w Java przez matrix1395 Nowicjusz (190 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...