Java, dodanie rekordu do bazy danych

0

Witam,
mam problem z wstawianiem rekordu do bazy danych, niestety nie dodaje gdy za każdym razem próbuję wpisać rekord eclipse mnie informuję że połączenie istnieje a wpisany przeze mnie rekord nie zapisuje się w bazie;/
Proszę o pomoc bo już sam nie wiem co źle zrobiłem, w czym tkwi problem

Poniżej znajduje się actionListener przypisany do buttona który zatwierdza dodanie rekordu gdy potwierdzam to Consola wyświetla mi że połączenie istnieje

 JButton dodaj = new JButton("Dodaj");
		panel.add(dodaj);
		dodaj.addActionListener(new ActionListener(){
		public void actionPerformed(ActionEvent e)
		{
			polaczenie();
			String s1 = imie.getText().trim();
			String s2= nazwisko.getText().trim();
			String polecenie= "insert into student ( imie, nazwisko) values
                                                                          (,"+s1+" ',' " +s2+" ')";
			try{
				st.executeUpdate(polecenie);
				st.close();
			}
			catch(Exception ek){}
			info.setText("Pomyślnie dodano rekord");
			validate();
			
			
			}
		

Tu natomiast jest metoda polaczenie

public void polaczenie() {
		
				try{ 
					Class.forName("com.mysql.jdbc.Driver"); 
					Connection conn =DriverManager.getConnection
                                                                  ("jdbc:mysql://localhost:3306/Student"," "," "); 
					st=conn.createStatement();   
					System.out.println("Polaczenie istnieje."); 
					}catch(Exception ek){ 
					System.out.println("Brak polaczenia."); 
					} 
		}
		
		});
		 

Znalazłem na innym poście podobny problem lecz niestety nie został on zrealizowany pomyślnie
gdzie wywnioskowane ze st czyli Statement ma wartość null .
Dzięki.

0

Masz niepotrzebny przecinek w Polecenie w miejscu "values(,". Poza tym używaj parametrów w zapytaniach zamiast sklejać string.

EDIT:

vesnaPo napisał(a):
 ...
			catch(Exception ek){}
                  ...
			
		

Skąd chcesz wiedzieć w czym błąd skoro sam go przed sobą ukrywasz??

1
catch(Exception ek){}
info.setText("Pomyślnie dodano rekord");

robisz sobie jaja? Moze jednak wypiszesz wyjatek ktory tu polecial?

0

Dlatego nieraz spotkałem się z tym jaka to Java dziwna i niedobra, wymusza na nas wyjątki, obiektowość do bólu, wzorce itd. Wg mnie to jedno z podejść i jest dobre, ale niektórzy i tak się nie zasymilują z Javą i potem takie kwiatki mamy i język faktycznie takim bardziej przeszkadza niż pomaga, bo mają nadmiar kodu, który wstawiają, bo inaczej nici z kompilacji.

0
sephirot8608 napisał(a):

Masz niepotrzebny przecinek w Polecenie w miejscu "values(,". Poza tym używaj parametrów w zapytaniach zamiast sklejać string.

EDIT:

vesnaPo napisał(a):
 ...
			catch(Exception ek){}
                  ...
			
		

Skąd chcesz wiedzieć w czym błąd skoro sam go przed sobą ukrywasz??

No to fakt przyznaję, wypisałem i ujrzałem, że jednak nie dodaje mi rekordu.
Sorry z tymi stringami ale jak widać zmaga się z tym bo nie umiem sobie poradzić o co w tym tu wszytskochodzi .

Ale gdzie szukam na necie to w sumie jest podobnie. tylko z jedną różnicą, że u mnie nie działa tak jak bym chciał.

0

Tak w ogóle to Twoj design metody jest zly, poniewaz po kazdym kliknieciu, laczysz sie z baza danych.

0

No tak jest, wzorowałem się na innych programach, na razie dręczy mnie to, że po dodaniu danych nie dodaje mi zawartości.

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