[Java & MySql] Usuwanie rekordów

0

Hej,
robię usuwanie rekordów z mysql'a za pomocą javy. Szukałem na tutorialach oczywiście i znalazłem coś takiego:

Statement st = connection.createStatement();
String sql = "DELETE FROM kontakty WHERE Nr = 918";   //918 to przykładowy nr do usunięcia
int deleteCount = st.executeUpdate(sql);

sql = "DELETE FROM kontakty WHERE Nr = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, 918);                    //918 to przykładowy nr do usunięcia
deleteCount = pstmt.executeUpdate();

i wszystko ok mi działa bo wpisałem konkretny nr do usunięcia lecz to mi nie wystarcza i chcę zrobić aby usuwało zaznaczony rekord w tabeli i teraz mam coś takiego lecz już coś jest nie tak bo nie usuwa, co mam zrobić?

int zaznaczonyWiersz = jTable1.getSelectedRow();
Statement st = connection.createStatement();
String sql = "DELETE FROM kontakty WHERE Nr = '"+zaznaczonyWiersz+"'";   
int deleteCount = st.executeUpdate(sql);

sql = "DELETE FROM kontakty WHERE Nr = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setInt(1, zaznaczonyWiersz);
deleteCount = pstmt.executeUpdate();
0

czy

String sql = "DELETE FROM kontakty WHERE Nr = '"+zaznaczonyWiersz+"'";   

nie powoduje, że wstawiasz tam 'liczba' zamiast liczba, tzn stringa zamiast inta?

0

kombinuje też tak:
String sql = "DELETE FROM kontakty WHERE Nr = " + zaznaczonyWiersz;
ale także nic nie daje. hmmm może i racja że zamiast Stringa dodaje Inta ale wtedy jak mam to zrobić?

0
gruby napisał(a)

kombinuje też tak:
zamiast Stringa dodaje Inta

zamiast Stringa masz dodawać inta, a na raize robisz dokładnie odwrotnie;p

usunąć apostrofy z zapytania

0

Nie bardzo rozumie. Możesz przybliżyć swoją myśl? Nie mogę przecież usunąć apostrofów z tego stringa i zrobić int. Trzeba przekonwertować tylko nie wiem jak.

0

a jakiego typu w bazie jest kolumna Nr?

0

no int oczywiscie

0

a pisanie Nr='123' to porównywanie numeru ze stringiem, porównywanie numeru z numerem to Nr=123

0

a poza tym Integer.toString(x);

0

chyba nie do końca się rozumiemy

0

możliwe;D

0

jeszcze raz. chodzi o usunięcie zaznaczonego rekordu a nie rekordu wpisanego na sztywno. przerobiłem na tak:

  Statement st = connection.createStatement();
                
                String s = Integer.toString(jTable1.getSelectedRow());
                
                String sql = "DELETE FROM kontakty WHERE Nr = "+s;
                int deleteCount = st.executeUpdate(sql);

                System.out.println(sql);
                sql = "DELETE FROM kontakty WHERE Nr = ?";
                PreparedStatement pstmt = connection.prepareStatement(sql);

                   pstmt.setString(1, s);
                   deleteCount = pstmt.executeUpdate();

ale dalej nic

0

wiem co jest już grane ;) mianowicie usuwanie działa jak numer rekordu w tabeli jest taki jak 'Nr' (id) rekordu w bazie, inaczej nie usunie. Nie wiem tylko jak pobrać wartość komórki z tabeli;/

0
int zaznaczonyRekord = Table.getSelectedRow();   //zaznaczony rekord w tabeli
int zaznaczonaKomorka  = Integer.parseInt(Table.getValueAt(zaznaczonyRekord, 0).toString()); //wartosc komórki w tabeli

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