2017-05-02 3 views
0

Ich verwende derzeit eine Reihe von statischen Methoden innerhalb einer Klasse, um Daten aus einer MySQL-Datenbank zu lesen. Der folgende Code ist ein Beispiel für eine dieser Methoden:Statische Methoden zum Lesen/Schreiben in die Datenbank

DatabaseReader Klasse:

public class DatabaseReader 
{ 
    //Method to get an employee's details. 
    public static JSONArray getEmployee(String employeeID) 
    { 
     String query = "SELECT * FROM employee WHERE employeeID = ?"; 
     DatabaseConnection dbc = new DatabaseConnection(query); 
     dbc.setString(1, employeeID); 
     return getResultsFromQuery(dbc); 
    } 

    //More static methods here... 
    //... 
    //... 
} 

So zum Aufrufen dieser Methode, verwende ich die DatabaseReader.getEmployee(employeeID); Anweisung in meinem Code.

auf der oben Basierend verstehe ich, dass die Methode zur getEmployee()DatabaseReader Klasse gehört, anstatt auf eine Instanz davon Zugehörigkeits (z.B. DatabaseReader dbr = new DatabaseReader(); von dbr.getEmployee(1); gefolgt).

Ich bin jedoch nicht sicher, ob es gute Praxis ist, statische Methoden für die Datenbankverbindung zu verwenden, da es mehrere Benutzer geben wird, die die gleichen Methoden verwenden.

Wenn zwei Benutzer die getEmployee()-Methode verwenden, würden die Variablen query und innerhalb der statischen Methode ebenfalls statisch sein und somit für beide Benutzer gemeinsam verwendet werden? Oder würde jeder dieser Benutzer ihre eigenen separaten Instanzen eines query String und dbc DatabaseConnection verwenden?

Ist es sinnvoll, statische Methoden (wie die obige) zum Lesen/Schreiben in eine Datenbank zu verwenden?

+0

siehe diese [Antwort] (http://stackoverflow.com/a/2671636/2310289) vor allem die Kommentare –

+0

Was meinst du Benutzer? Methoden werden nicht von Personen aufgerufen, sie werden mit anderen Methoden aufgerufen. – immibis

+0

Wenn zwei "Benutzer" eine * nicht statische * Methode aufrufen, teilen sie sich die gleichen lokalen Variablen? Nein, tun sie nicht. – immibis

Antwort