Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem][Java] Usuwanie rekordów z MySQLa


Rekomendowane odpowiedzi

Opublikowano

Witam

Mógłby mi ktoś powiedzieć jak się usuwa rekordy? Próbowałem czegoś takiego ale w sumie to nie wiem co ja robiłem :D

public  static void usunRekord(String tabela, String kolumna, Object arg) {
try {
Connection conn = DriverManager.getConnection(url+baza, login, password);
Statement st = conn.createStatement();
 
try {
st.executeUpdate("DELETE FROM tabela WHERE Nazwa='" + "4MaticPL" + "' AND PD='" + 50 + "'");
conn.close();
} catch (SQLException e) {
System.out.println("Uwaga! Problem z usunięciem danych");
}
} catch (SQLException e) {
 System.out.println("Uwaga! Mamy problemy z połączeniem!");
}
}
 
Tak wygląda rekord w bazie:

W sumie to już to ogarnąłem, ale mam pytanie czy idzie zrobić, żeby wywalało błąd jeżeli taki rekord nie istnieje?

 

 

public  static void usunRekord(String tabela, String kolumna, Object arg) {
try {
Connection conn = DriverManager.getConnection(url+baza, login, password);
Statement st = conn.createStatement();
 
try {
st.executeUpdate("DELETE FROM tabela WHERE Nazwa='" + "4MaticPL" + "'");
conn.close();
} catch (SQLException e) {
System.out.println("Uwaga! Problem z usunięciem danych");
}
} catch (SQLException e) {
 System.out.println("Uwaga! Mamy problemy z połączeniem!");
}
}
Opublikowano

w statement powinna być opcja typu getAffectedRows, czyli w typ wypadku ile rekordów zostało usuniętych :P

 

Po 2... pytaj na bukkit.pl bo tutaj mniej ludu znającego się na pisaniu jest :D i łatwo przegapić pytanie

 

po 3... ujowy kod, lecisz z nowym połączeniem za każda jedną zmianą

Connection conn = DriverManager.getConnection(url+baza, login, password);

 

I nawet nie zamykasz statementu...

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

w statement powinna być opcja typu getAffectedRows, czyli w typ wypadku ile rekordów zostało usuniętych :P

 

Po 2... pytaj na bukkit.pl bo tutaj mniej ludu znającego się na pisaniu jest :D i łatwo przegapić pytanie

 

po 3... ujowy kod, lecisz z nowym połączeniem za każda jedną zmianą

Connection conn = DriverManager.getConnection(url+baza, login, password);

 

I nawet nie zamykasz statementu...

 

Wiem wiem. Ja bazy praktycznie nie ogarniam. Na razie robię sobie pierwszą jakąś taką klase do obsługi tego a potem będę starał się to jakoś ogarnąć

Dobra zamknąłem ten statement :D 

 

 

   public static void dodajRekord(String tabela, Object col1, Object col2, Object col3) {
  
  try {
  Connection conn = DriverManager.getConnection(url+baza, login, password);
  Statement st = conn.createStatement();
 
  try {
  st.executeUpdate("INSERT " + tabela + " VALUES ('" + col1 + "' , '" + col2 + "' , '" + col3 + "')");
  conn.close();
  st.close();
  }
  
  
  catch (SQLException e) {
  CrystalMySQL.logger.info("Blad podczas dodawania rekordu!");
  } 
  } catch (SQLException e) {
CrystalMySQL.logger.info("Blad podczas laczenia z baza danych!");
  }
   }

po 3... ujowy kod, lecisz z nowym połączeniem za każda jedną zmianą

Connection conn = DriverManager.getConnection(url+baza, login, password);

 

Co mam z tym zrobić?:D

Opublikowano

Wiem wiem. Ja bazy praktycznie nie ogarniam. Na razie robię sobie pierwszą jakąś taką klase do obsługi tego a potem będę starał się to jakoś ogarnąć

Dobra zamknąłem ten statement :D

   public static void dodajRekord(String tabela, Object col1, Object col2, Object col3) {
  
  try {
  Connection conn = DriverManager.getConnection(url+baza, login, password);
  Statement st = conn.createStatement();
 
  try {
  st.executeUpdate("INSERT " + tabela + " VALUES ('" + col1 + "' , '" + col2 + "' , '" + col3 + "')");
  conn.close();
  st.close();
  }
  
  
  catch (SQLException e) {
  CrystalMySQL.logger.info("Blad podczas dodawania rekordu!");
  } 
  } catch (SQLException e) {
CrystalMySQL.logger.info("Blad podczas laczenia z baza danych!");
  }
   }

po 3... ujowy kod, lecisz z nowym połączeniem za każda jedną zmianą

Connection conn = DriverManager.getConnection(url+baza, login, password);

 

Co mam z tym zrobić? :D

Po prostu robi sie jakąś metodę w której nawiązuje się połączenie i zapisuje je do jakiejś zmiennej globalnej.

 

Tylko jak plugin nie używa mysql 24/7 i/lub ma dziwny hosting, to połączenie może znikać, więc czasami albo trzeba sprawdzać, albo zmienić czas wygasania (o ile hosting nam nie blokuje czy coś), albo zrobić metode uruchamianą np co 10 min, wykonującą coś małego i bezsensownego, takie pingowanie.

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Czyli przez te zamykanie obciąża mi processor?


Po prostu robi sie jakąś metodę w której nawiązuje się połączenie i zapisuje je do jakiejś zmiennej globalnej.

 

Tylko jak plugin nie używa mysql 24/7 i/lub ma dziwny hosting, to połączenie może znikać, więc czasami albo trzeba sprawdzać, albo zmienić czas wygasania (o ile hosting nam nie blokuje czy coś), albo zrobić metode uruchamianą np co 10 min, wykonującą coś małego i bezsensownego, takie pingowanie.

czyli to zamykam conn.createStatement(); a połączenie ma być otwarte najlepiej cały czas?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...