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

Sprawdzanie czy wartość jest już w tabeli

Object Storage Arubacloud
0 głosów
218 wizyt
pytanie zadane 12 stycznia 2019 w Java przez BulweR Nowicjusz (180 p.)
Siemka potrzebuję pomocy. Mam program w javafx hibernate i polega on tam na dodawaniu samochodów do bazy danych itd itd. I podczas dodawania samochodu mam textField "Numer Rejestracyjny" i mam w tabeli kolumnę "Numer Rejestracyjny". I chcę zrobić coś takiego że jeżeli ktoś dodając samochód wpisze w textField numer rejestracyjny który jest już w bazie to żeby wyskoczył komunikat np "Nie możesz dodać samochodu ponieważ taki numer rejestracyjny już istnieje w bazie". Mam wizję żeby zrobić to w if tak samo jak robiłem sprawdzanie czy textFieldy nie są puste i czy np w cenie ktoś nie wpisał liter. Tylko nie wiem jaki warunek dać - if(textRej.getText() i co dalej ?

2 odpowiedzi

0 głosów
odpowiedź 12 stycznia 2019 przez Tomek Sochacki Ekspert (227,510 p.)
Nie znam JavaFX, pracuję raczej z Javą webową i Springiem ale generalnie zasady są te same, ja bym to ograł nieco inaczej i zapiął jakiś walidator np. na każdy znak w inpucie albo lepiej zrobić jakiś debounce i strzelać do bazy z zapytaniem czy taki numer jest już zapisany. Ewentualnie jeśli tych danych w bazie nie jest dużo i nie ma jakiegoś wielkiego obłożenia na apkę to można by pomyśleć o cachowaniu tych danych aby nie odpytywać co chwilę bazy ale to już kwestia poboczna.
komentarz 12 stycznia 2019 przez BulweR Nowicjusz (180 p.)
Zastanawiałem się czy by nie stworzyć funkcji boolean która by sprawdzała mi w bazie danych czy istnieje taki obiekt już przy pomocy polecenia LIKE i jeżeli istnieje to przyjmuje wartość true a jeśli nie to wartość false i potem w if dać że if(funkcjaboolean!=true) to wykonuje to co ma zrobić else(wyswietla informacje ze istnieje taki samochód). Tylko nie wiem jak sie za to zabrać
0 głosów
odpowiedź 12 stycznia 2019 przez Arkadiusz Fajdek Dyskutant (9,450 p.)

Hej! Problem można rozwiązać na wiele sposobów. Jednak wydaje się że najprostszym, a zarazem najbezpieczniejszym sposobem jest założenie unikalnego klucza na danej kolumnie.

Już wyjaśniam. Tak samo jak to bardzo często jest z tabelą w której trzymasz użytkowników, można mieć tylko jednego użytkownika z danym adresem email.

Słowo klucz: Unique constraint

Wracając do twojego przypadku. Po założeniu klucza unikalnego na kolumnę z numerem rejestracyjnym samochodu, w przypadku próby zapisu nowego auta, którego numer rejestracyjny znajduje się w bazie zostanie zwrócony wyjątek przez Hibernate: ConstraintViolationException.

Hibernate zapewnia super wsparcie dla tego typu zadań jak @UniqueConstraint oraz @Column(unique = true)

Sposób z zapewnieniem poprawnych danych na poziomie bazy danych jest najbezpieczniejszy :) Powodzenia!

Podobne pytania

0 głosów
0 odpowiedzi 210 wizyt
0 głosów
2 odpowiedzi 203 wizyt
pytanie zadane 10 listopada 2018 w Sprzęt komputerowy przez robertwe Gaduła (4,620 p.)
0 głosów
1 odpowiedź 218 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...