Quel est le meilleur moyen / modèle pour configurer la connexion mysql et jdbc?

StackOverflow https://stackoverflow.com/questions/819845

  •  03-07-2019
  •  | 
  •  

Question

Quel est le meilleur moyen de configurer une connexion avec le jdbc de mysql? Et exécutez une simple déclaration. Comment faire ça? Merci.

Était-ce utile?

La solution

Le passe-partout de base pour MySQL / JDBC ressemble à ceci:

Obtenir la connexion :

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://databaseName");

Exécutez l'instruction :

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from tableName");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

Fermer la déclaration et la connexion :

rs.close();
stmt.close();
conn.close();

Vous devez simplement vous assurer que le pilote est installé et / ou dans votre CLASSPATH.

Autres conseils

Nous sommes au XXIe siècle - utilisez une implémentation JPA (ORM). Mais si vous insistez pour revenir au métal (au risque de baisser les votes) -

Il existe de nombreuses façons d’obtenir une connexion JDBC à partir d’un pilote. Utiliser la réflexion avec un nom de classe câblé est le plus fréquent et peut-être le plus endommagé du cerveau. Si vous souhaitez connecter un nom de classe, vous pouvez aussi bien profiter des avantages du code normal (fautes de frappe du compilateur, aucune exception superflue à gérer, plus facile à lire, des dépendances explicites, une meilleure prise en charge des outils, etc.).

Prenez également l'habitude de libérer des ressources en toute sécurité.

Donc:

public static void main(String[] args) throws SQLException {
     Driver driver = new com.mysql.jdbc.Driver();
     Connection connection = driver.connect(
         "jdbc:mysql://mydatabase", 
         new java.util.Properties() {{
              put("user", "fred");
         }}
     );
     try {
         PreparedStatement statement = connection.prepareStatement(
             "SELECT insideLeg FROM user WHERE name=?"
         );
         try {
             statement.setString(1, "jim");
             ResultSet results = statement.executeQuery();
             try {
                 if (results.next() {
                     System.out.println("= "+results.getLong(1));
                 } else {
                     System.out.println("Missing.");
                 } 
             } finally {
                 results.close();
             }
         } finally {
             statement.close();
         }
     } finally {
         connection.close();
     }
}

Quel gâchis! Et il n'utilise même pas encore de transactions. Oui, utilisez un ORM. Ils sont très respectables ces jours-ci.

Vous n’avez pas besoin de faire tout cela pour chaque déclaration. Vous ne voulez pas créer des drivers d'instanciation à chaque fois. En particulier, l’exécution autour de l’idiome est utile.

Cela dépend de votre cas.

Si vous devez simplement exécuter des requêtes à partir d'une application autonome, vous devez utiliser une connexion unique, telle que:

Class.forName ("yourDriverName");

Connection cn = DriverManager.getConnection ("db url");
Statement st = cn.createStatement ();
ResultSet rs = st.executeQuery ("select * from foo");
while (rs.next()) {
  doSmth ();
} 
rs.close ();
st.close ();
cn.close ();

Mais si vous développez une application réelle (spécialement une application Web), utilisez celle de DataSource. Lisez le manuel de votre base de données et de votre serveur Web pour savoir comment configurer la source de données. DataSource vous permet d’utiliser le pool de connexions - il vous faudra pour augmenter vos performances.

La configuration de DataSource n’est pas un processus difficile.

Voici la documentation Sun pour la création d'une connexion JDBC . À partir de là, obtenir accéder à un objet Statement et exécuter du SQL simple.

Pour les systèmes de niveau de production, vous souhaiterez probablement également créer un pool de connexions .

Utilisez le cadre d'abstraction JDBC de Spring Framework - il vous suffit de créer un fichier XML de contexte et d'utiliser la classe de modèle JDBC. Quelques lignes de code XML + Java vous permettront de commencer. L'avantage est de garder vos informations de connexion en dehors de Java compilé. Voir: http://www.springbyexample.org/examples/simple-spring- jdbc-template.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top