2017-05-02 61 views
0

我目前在一個類中使用許多靜態方法從MySQL數據庫讀取數據。下面的代碼是其中一種方法的一個例子:用於讀取/寫入數據庫的靜態方法

DatabaseReader類:

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... 
    //... 
    //... 
} 

所以調用這個方法,我用我的代碼中的DatabaseReader.getEmployee(employeeID);聲明。

基於上述,據我所知,getEmployee()方法屬於DatabaseReader類而不是屬於它的一個實例(例如DatabaseReader dbr = new DatabaseReader();接着dbr.getEmployee(1);)。

我不確定是否使用靜態方法進行數據庫連接是好的做法,因爲會有多個用戶使用相同的方法。

如果有使用getEmployee()方法,將在靜態方法中的querydbc變量是靜態的,以及兩個用戶,並且因此在兩個這些用戶的共享?或者,這些用戶中的每一個都將使用它們自己的query字符串和dbc DatabaseConnection的單獨實例?

使用靜態方法(例如上面的方法)讀取/寫入數據庫是否合理?

+0

看到此[回覆](http://stackoverflow.com/a/2671636/2310289)特別是意見 –

+0

你是什麼意思用戶?方法不被人調用,他們被其他方法調用。 – immibis

+0

如果兩個「用戶」調用*非靜態*方法,它們是否共享相同的局部變量?不,他們不。 – immibis

回答