sql >> Databasteknik >  >> RDS >> Mysql

Java Mysql frågedatabas med anslutning

I din returnAllParts#queryReturnAllParts metod, ändra

con.getDBConnection();

Av

con = getDBConnection();

Problemet är att con är en variabel från java.sql.Connection och den har ingen getDBConnection metod. Sedan din nuvarande returnAllParts klass utökar DBConnect klass, kan den komma åt public Connection getDBConnection metod utan problem.

Detta beror på att i din Main#main klass, har du deklarerat DBConnect con . Blanda inte ihop denna variabel med con variabel som deklareras i andra metoder.

Inte direkt relaterat till problemet, men jag föreslår några förbättringar av din nuvarande kod/design:

  • Ändra namnet på din returnAllParts klass för något mer meningsfullt för framtida läsare (även du i vissa dagar eller veckor kommer att bli en framtida läsare av din kod). Från att ha läst din kod ser det ut som att den här klassen bör bytas om till PartList .
  • Använd en databasanslutningspool istället för att manuellt hämta dina anslutningar. Det finns bibliotek som hanterar detta för dig som BoneCP
  • Du är förmodligen ny på programmering, så det vore bättre att du börjar på rätt sätt och utvecklar din applikation i lager (mer läsning:Multitierarkitektur ). Med denna grund kan vi säga att en DAO (eller datatjänst, beror på hur du namnger den) bara bör innehålla metoderna för att komma åt och hämta data på ett sätt som andra klienter kan konsumera det som de vill/behöver, så det skulle vara bättre returnera en List<PartList> objekt och att ett annat lager i din applikation (förmodligen det närmaste presentationen) kommer att tillämpa transformationen från dina objekt till en JSON-sträng.
  • För en designsynpunkt skulle det vara mycket bättre om dina databasåtkomstobjekt använder en DBConnect objekt istället för att sträcka sig från det. På detta sätt kan du ha en enda DBConnect objekt per databasanslutningskonfiguration associerad med alla relaterade DAO.


  1. Hur man använder HAVING och ORDER BY-klausulen i sql

  2. Problem med RewriteMap MapType dbd

  3. mysql ERROR 2002 (HY000):Kan inte ansluta till den lokala MySQL-servern via sockeln '/var/run/mysqld/mysqld.sock' (2)

  4. Kan inte installera mysqlclient i virtualenv på nya Mac