Maison > base de données > tutoriel mysql > Continu ou à la demande : comment votre plugin Minecraft Bukkit doit-il gérer les connexions à la base de données ?

Continu ou à la demande : comment votre plugin Minecraft Bukkit doit-il gérer les connexions à la base de données ?

Mary-Kate Olsen
Libérer: 2024-11-02 18:00:05
original
485 Les gens l'ont consulté

Continuous or On-Demand: How Should Your Minecraft Bukkit Plugin Handle Database Connections?

Gestion des connexions à la base de données : continue ou à la demande

Un scénario typique implique un plugin Minecraft Bukkit nécessitant une connexion à la base de données. La question se pose : cette connexion doit-elle rester ouverte tout au long de l'exécution du plugin ou être établie et terminée uniquement lorsque cela est nécessaire ?

Établissement de connexion à la demande

L'ouverture répétée de connexions à la base de données peut être coûteux en calcul. Au lieu de cela, il est conseillé de créer une connexion uniquement lorsqu'elle est nécessaire pour les opérations de base de données.

Java propose deux approches pour cela :

  • Pré-Java 7 : Ouverture et fermeture manuelles de la connexion dans un bloc try-finally.
  • Java 7 et versions ultérieures : Utilisation d'une instruction try-with-resources, où la connexion est automatiquement fermée après utilisation.
<code class="java">try (Connection con = ...) {
  // Perform database operations
}</code>
Copier après la connexion

Regroupement de connexions

Cependant, la gestion manuelle des connexions aux bases de données est toujours sujette à des inefficacités. Il est recommandé d'utiliser un pool de connexions à la base de données, représenté par l'interface DataSource de Java, qui gère les connexions physiques à la base de données de manière dynamique.

Lorsqu'une connexion est "fermée" à l'aide de Connection#close, elle est simplement placée en "veille". et reste ouvert.

Ressources associées

  • Java Connection Pooling : https://docs.oracle.com/javase/7/docs/api/ javax/sql/DataSource.html
  • Outils de pooling de connexions :

    • BoneCP : https://github.com/atomikos/bonecp
    • c3po : https://github.com/atomikos/c3p0
    • Apache Commons DBCP : https://commons.apache.org/proper/commons-dbcp/
    • HikariCP : https:// github.com/brettwooldridge/HikariCP

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal