Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Baza zapytań Java Mysql z połączeniem

W swoim returnAllParts#queryReturnAllParts metoda, zmień

con.getDBConnection();

Przez

con = getDBConnection();

Problem polega na tym, że con jest zmienną z java.sql.Connection i nie ma getDBConnection metoda. Od bieżącego returnAllParts klasa rozszerza DBConnect klasy, może uzyskać dostęp do public Connection getDBConnection metoda bez problemów.

Dzieje się tak, ponieważ w Twoim Main#main klasy, zadeklarowałeś DBConnect con . Nie myl tej zmiennej z con zmienna zadeklarowana w innych metodach.

Nie jest to bezpośrednio związane z problemem, ale sugeruję kilka ulepszeń do obecnego kodu/projektu:

  • Zmień nazwę swojego returnAllParts klasę na coś bardziej znaczącego dla przyszłych czytelników (nawet ty za kilka dni lub tygodni staniesz się przyszłym czytelnikiem twojego kodu). Po przeczytaniu twojego kodu wygląda na to, że ta klasa powinna zostać zmieniona na PartList .
  • Użyj puli połączeń bazy danych zamiast ręcznie pobierać połączenia. Istnieją biblioteki, które obsługują to na przykład BoneCP
  • Prawdopodobnie dopiero zaczynasz programować, więc byłoby lepiej, gdybyś zaczął we właściwy sposób i rozwijał swoją aplikację w warstwach (dalsza lektura:Architektura wielowarstwowa ). Na tej podstawie możemy powiedzieć, że DAO (lub usługa danych, w zależności od tego, jak ją nazwiesz) powinna zawierać tylko metody dostępu i pobierania danych w sposób, w jaki inni klienci mogliby je wykorzystać, jak chcą/potrzebują, więc byłoby to lepsze zwrócenie List<PartList> i że inna warstwa w Twojej aplikacji (prawdopodobnie najbliższa prezentacji) zastosuje przekształcenie z Twoich obiektów do ciągu JSON.
  • Z punktu widzenia projektowania byłoby o wiele lepiej jeśli obiekty dostępu do bazy danych używają DBConnect obiekt zamiast wychodzić z niego. W ten sposób możesz mieć jeden DBConnect obiekt na konfigurację połączenia z bazą danych powiązaną ze wszystkimi powiązanymi obiektami DAO.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Losowy KLUCZ PODSTAWOWY dla Innodb

  2. EF Core `update-database` w MySql kończy się niepowodzeniem z `__EFMigrationsHistory' nie istnieje`

  3. Nazwa indeksu MySQL i nazwa klucza obcego muszą być różne dla różnych tabel?

  4. MySQL Grant dla więcej niż jednej bazy danych

  5. Nie można pobrać klucza podstawowego identyfikatora niestandardowego po metodzie Laravel save()