Maison > Java > Gestionnaire de connexions en singleton

Gestionnaire de connexions en singleton

王林
Libérer: 2024-02-09 18:36:08
avant
1198 Les gens l'ont consulté

En PHP, le gestionnaire de connexions en tant que singleton est un modèle de conception courant. En tant qu'éditeur PHP Yuzu, nous avons mené une étude approfondie des principes et des applications de ce design pattern. La fonction principale du gestionnaire de connexions est de gérer de manière centralisée les connexions de base de données, de garantir qu'il n'y a qu'une seule instance de connexion de base de données dans l'application, d'éviter la surcharge liée à la création répétée de connexions et de contrôler efficacement le cycle de vie de la connexion. Ce modèle de conception est très pratique en matière de développement et peut améliorer les performances et la maintenabilité du programme. Dans cet article, nous présenterons en détail comment le gestionnaire de connexions est implémenté en tant que singleton et ses scénarios d'application dans des projets réels.

Contenu de la question

Supposons que je crée un objet pour gérer la connexion en tant que signleton, par exemple :

public class DatabaseConnection {

private static Connection con = null;

static

{ 

String url = "jdbc:`\[`mysql:/`\](mysql://)`/localhost:3306/org";`

String user = "root";
String pass = "root";

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url, user, pass);

}

catch (ClassNotFoundException | SQLException e) {

e.printStackTrace();

}

}

public static Connection getConnection()

{

return con;
}
Copier après la connexion

}

Ai-je bien compris, avec cette approche, je ne crée qu'une seule instance de connexion et je l'utilise dans toute l'application. J'ai juste besoin de fermer la connexion avant de quitter l'application ? Je pose cette question parce qu'on m'a dit dans le didacticiel que la meilleure option est d'utiliser try-with-resources pour créer la connexion. Mais en utilisant try-with-resources ou DatabaseConnection.getConnection().close, je fermerai la connexion et je ne pourrai pas la restaurer plus tard dans l'application singleton. Pouvez-vous me l'expliquer ?

J'ai parcouru Stack Overflow et Google mais je n'ai pas trouvé la réponse

Solution de contournement

Vous établissez la connexion à l'intérieur d'un bloc statique et le bloc statique est chargé pendant le chargement de la classe. Par conséquent, pour fermer la connexion, vous devez fermer l’application.

Si vous souhaitez créer un singleton, créez une classe et rendez le constructeur privé et à l'intérieur de ce constructeur, définissez votre connexion à la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal