オープンとクローズのjdbc接続を担当するSQLConnectionというクラスがあります。いつも私は接続を開く必要があります、私はクラスの属性を充電するためにXMLファイルを読んで、次に私は接続を開きます。接続クラス、私はシングルトンを使うべきですか?
私はこのクラスにシングルトンのデザインパターンを作成し、コンストラクタのクラスでxmlファイルを読み込むことを考えています。
私は質問しています。どのアプローチが優れていて、何が最高のパフォーマンスを提供していますか?クラスに静的な知識を持たせるか、xmlを読み込んで毎回オブジェクトクラスを作成しますか?ああ、10〜100人のユーザーがいるWebアプリケーションです。ここで
は私がやってようなものです:
public class SQLConnection {
String url = "";
String driver = "";
String userName = "";
String password = "";
public Connection openConnection() {
Connection conn = null;
this.setAtributes();
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, userName, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void closeConnection(Connection conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//read a xml file that have database infos
public void setAtributes(){
this.url = "lalala";
this.userName = "lalala";
this.password = "lalala";
this.driver = "lalala";
}
}
をここで私がやりたいようなものです:
public class SQLConnection {
private static SQLConnection instance;
String url = "";
String driver = "";
String userName = "";
String password = "";
private SQLConnection() {
}
public static synchronized SQLConnection getInstance() {
if (instance == null)
instance = new SQLConnection();
setAtributes(instance);
return instance;
}
public Connection openConnection() {
Connection conn = null;
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, userName, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//read a xml file that have database infos
public static void setAtributes(SQLConnection instance){
instance.url = "lalala";
instance.userName = "lalala";
instance.password = "lalala";
instance.driver = "lalala";
}
}
代わりに実際の接続プールを使用してください。 – Kayaman
**接続にシングルトンを使用しないでください**。接続プールを使用する。 – BackSlash
最初の文章で停止している可能性があります。シングルトン、期間、あなたがなぜそれが最良の方法であるかを明言するまで、使用しないでください。 (それはほとんど決してありません。) – cHao