Publicité

Java fournit JDBC (connectivité Java DataBase) dans le cadre du SDK Java (Kit de développement logiciel). Utiliser ceci API, il est très facile de se connecter à un base de données relationnelle Qu'est-ce donc qu'une base de données? [MakeUseOf explique]Pour un programmeur ou un passionné de technologie, le concept de base de données est quelque chose qui peut vraiment être tenu pour acquis. Cependant, pour beaucoup de gens, le concept d'une base de données elle-même est un peu étranger ... Lire la suite et effectuer des opérations courantes telles que l'interrogation, l'insertion, la mise à jour et la suppression d'enregistrements.

Bien que l'API JDBC de base soit incluse dans java, la connexion à une base de données particulière telle que MySQL ou SQL Server nécessite un composant supplémentaire appelé pilote de base de données. Ce pilote de base de données est un composant logiciel qui traduit les appels JDBC principaux dans un format compris par cette base de données.

Dans cet article, regardons les détails de la connexion à une base de données MySQL et comment effectuer quelques requêtes avec elle.

Le pilote de base de données MySQL

Comme expliqué ci-dessus, pour pouvoir vous connecter à une base de données MySQL, vous avez besoin du pilote JDBC pour MySQL. Il s’agit du pilote Connector / J et peut être téléchargé à partir de le site MySQL ici.

Une fois que vous avez téléchargé le fichier ZIP (ou TAR.GZ), extrayez l'archive et copiez le fichier JAR mysql-connector-java – bin.jar à un endroit approprié. Ce fichier est requis pour exécuter tout code utilisant le pilote MySQL JDBC.

Création d'un exemple de base de données

En supposant que vous avez téléchargé la base de données MySQL et le configurer correctement Comment installer une base de données MySQL sur WindowsSi vous écrivez souvent des applications qui se connectent à des serveurs de base de données, c'est bien si vous savez comment installer une base de données MySQL sur votre machine Windows à des fins de test. Lire la suite là où vous y avez accès, créons un exemple de base de données afin de pouvoir l'utiliser pour la connexion et l'exécution de requêtes.

Connectez-vous à la base de données à l'aide d'un client de votre choix et exécutez les instructions suivantes pour créer un exemple de base de données.

créer un échantillon de base de données; 

Nous avons également besoin d'un nom d'utilisateur et d'un mot de passe pour pouvoir se connecter à la base de données (sauf si vous souhaitez vous connecter en tant qu'administrateur, ce qui est généralement une mauvaise idée).

Ce qui suit crée un utilisateur nommé testuser qui se connectera à la base de données MySQL à partir de la même machine où il s'exécute (indiqué par localhost), en utilisant le mot de passe securepwd.

créer l'utilisateur 'testuser' @ 'localhost' identifié par 'securepwd'; 

Si vous vous connectez à une base de données exécutée sur une autre machine (nommée remotemc), vous devez utiliser les éléments suivants (remotemc peut être un nom d'hôte ou une adresse IP):

créer l'utilisateur 'testuser' @ 'remotemc' identifié par 'securepwd'; 

Maintenant que le nom d'utilisateur et le mot de passe ont été créés, nous devons accorder l'accès à l'exemple de base de données créé précédemment.

accorder tout sur l'échantillon. * à 'testuser' @ 'localhost'; 

Ou, si la base de données est distante:

accorder tout sur l'échantillon. * à 'testuser' @ 'remotemc'; 

Vous devez maintenant vérifier que vous pouvez se connecter à la base de données Comment installer une base de données MySQL sur WindowsSi vous écrivez souvent des applications qui se connectent à des serveurs de base de données, c'est bien si vous savez comment installer une base de données MySQL sur votre machine Windows à des fins de test. Lire la suite en tant qu'utilisateur que vous venez de créer avec le même mot de passe. Vous pouvez également exécuter les commandes suivantes après la connexion, pour vous assurer que les autorisations sont toutes correctes.

créer la table joe (id int clé primaire auto_increment, nom varchar (25)); drop table joe; 

Configurer le chemin d'accès aux classes Java

Entrons maintenant dans les détails de la connexion à MySQL depuis Java 10 concepts Java de base que vous devez apprendre lors de la mise en routeQue vous écriviez une interface graphique, développiez un logiciel côté serveur ou une application mobile utilisant Android, l'apprentissage de Java vous sera très utile. Voici quelques concepts Java de base pour vous aider à démarrer. Lire la suite . La première étape consiste à charger le pilote de base de données. Pour cela, appelez les éléments suivants à un emplacement approprié.

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

Le code peut lever une exception, vous pouvez donc l'attraper si vous avez l'intention de le traiter (comme le formatage du message d'erreur pour une interface graphique).

essayez {Class.forName ("com.mysql.jdbc. Chauffeur"); } catch (ClassNotFoundException ex) {// utilise l'exception ici. }

Il est très courant d'appeler ce code dans un bloc statique de la classe afin que le programme échoue immédiatement si le pilote ne peut pas être chargé.

Exemple de classe publique. {statique {essayez {Class.forName ("com.mysql.jdbc. Chauffeur"); } catch (ClassNotFoundException ex) {System.err.println ("Impossible de charger le pilote MySQL"); } } }

Bien sûr, pour pouvoir trouver le pilote, le programme doit être appelé avec le pilote JAR (téléchargé et extrait ci-dessus) inclus dans le chemin de classe comme suit.

java -cp mysql-connector-java--bin.jar:... 

Connexion à MySQL depuis Java

Maintenant que nous avons éliminé les détails du chargement du pilote MySQL à partir de java, connectons-nous à la base de données. Une façon de créer une connexion à une base de données consiste à utiliser le DriverManager.

String jdbcUrl =...; Connexion con = DriverManager.getConnection (jdbcUrl); 

Et quel est le jdbcUrl? Il indique les détails de la connexion, y compris le serveur sur lequel se trouve la base de données, le nom d'utilisateur, etc. Voici un exemple d'URL pour notre exemple.

String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = secrepwd "; 

Notez que nous avons inclus tous les paramètres requis pour la connexion, y compris le nom d'hôte (localhost), nom d'utilisateur et mot de passe. (Inclure le mot de passe comme celui-ci n'est PAS une bonne pratique, voir ci-dessous pour des alternatives.)

Utiliser ceci jdbcUrl, voici un programme complet pour vérifier la connectivité.

Exemple de classe publique. {statique {essayez {Class.forName ("com.mysql.jdbc. Chauffeur"); } catch (ClassNotFoundException ex) {System.err.println ("Impossible de charger le pilote MySQL"); }} statique public void main (String [] args) lève une exception {String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd "; Connexion con = DriverManager.getConnection (jdbcUrl); System.out.println ("Connecté!"); con.close (); } }

Notez qu'une connexion à une base de données est une ressource précieuse dans un programme et doit être fermée correctement comme ci-dessus. Le code ci-dessus, cependant, ne ferme pas la connexion en cas d'exception. Afin de fermer la connexion sur une sortie normale ou anormale, utilisez le modèle suivant:

try (Connection con = DriverManager.getConnection (jdbcUrl)) {System.out.println ("Connecté!"); }

Comme indiqué ci-dessus, c'est une mauvaise idée d'incorporer le mot de passe dans l'URL JDBC. Pour spécifier directement le nom d'utilisateur et le mot de passe, vous pouvez utiliser l'option de connexion suivante à la place.

String jdbcUrl = "jdbc: mysql: // localhost / sample"; try (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }

Interroger la base de données depuis Java

Maintenant que la connexion à la base de données est établie, voyons comment effectuer une requête, comme interroger la version de la base de données:

sélectionnez la version (); 

Une requête est exécutée en java comme suit. UNE Déclaration est créé et une requête est exécutée à l'aide du exécuter l'ordre() méthode qui renvoie un ResultSet.

String queryString = "sélectionnez la version ()"; Instruction stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString); 

Imprimez la version depuis le ResultSet comme suit. 1 fait référence à l'index de la colonne dans les résultats, à partir de 1.

while (rset.next ()) {System.out.println ("Version:" + rset.getString (1)); }

Après avoir traité les résultats, les objets doivent être fermés.

rset.close (); stmt.close (); 

Et cela couvre tout ce qu'il y a à se connecter à MySQL à partir de Java et à effectuer une simple requête.

Avez-vous utilisé JDBC avec MySQL dans vos projets? Quels problèmes, le cas échéant, avez-vous rencontrés avec les bases de données et Java? Veuillez nous en informer dans les commentaires ci-dessous.