2017-05-02 55 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

回答