2017-05-02 9 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 dbr = new DatabaseReader();dbr.getEmployee(1);続い)代わりのインスタンスに属するDatabaseReaderクラスに属していることを理解します。

静的メソッドをデータベース接続に使用することは、同じメソッドを使用する複数のユーザーが存在するため、わかりません。

getEmployee()メソッドを使用するユーザーが2人いる場合、静的メソッド内の変数querydbcは静的であり、両方のユーザーで共有されますか?または、これらの各ユーザーは、それぞれquery文字列とdbc DatabaseConnectionの個別のインスタンスを使用していますか?

データベースへの読み書きに静的メソッド(上記のようなもの)を使用することは妥当ですか?

+0

これを見る[回答](http://stackoverflow.com/a/2671636/2310289)特にコメント –

+0

どういう意味ですか?メソッドは人によって呼び出されず、他のメソッドによって呼び出されます。 – immibis

+0

2人の "ユーザー"が非静的な*メソッドを呼び出す場合、それらは同じローカル変数を共有しますか?いいえ、彼らはしません。 – immibis

答えて

0

"いいえ、静的変数ではありません。ローカル変数です。メソッドで宣言された変数はすべてローカル変数です。" - ソース:In Java, are variables declared inside static methods themselves static?

データベース接続に静的メソッドを使用しても問題ないと思います。私はそれを実際に奨励するかもしれない。

関連する問題