Le kit de développement Java comprend un ensemble connu sous le nom Database Connectivity API Java, ou JDBC pour faire court. Cela fournit une interface unique pour interagir avec n'importe quel forfait de base de données qui fournit un pilote JDBC. La plupart des grandes solutions de bases de données , notamment MySQL , fournissent un pilote JDBC soit sur leurs disques d'installation ou téléchargeable gratuitement à partir de leur page web . Le pilote JDBC MySQL
Le pilote JDBC pour MySQL est nommé MySQL :: Connector /J , et il s'agit d'une mise en œuvre très complète de l'API JDBC. Le pilote sera un fichier JAR qui doit être situé sur le chemin de classe Java. Le plus commun Java IDE de , notamment Eclipse et Netbeans , le fera pour vous , à condition que vous référencez le fichier de pilote comme une bibliothèque . En outre, afin d' utiliser les commandes de l'API JDBC , vous devez insérer la commande suivante dans le haut de n'importe quelle classe qui va utiliser directement JDBC
java.sql d'importation * ; . .
Setup
Alors que les tentatives JDBC pour rendre l'utilisation des bases de données dans vos programmes Java aussi simple que possible , il ya un certain nombre d' étapes à suivre pour configurer la connexion de base de données . Comme il est possible d'écrire un programme qui comprend plusieurs pilotes de base de données , avant de se connecter à une base de données que vous devez informer l'API du pilote que vous allez utiliser. Pour cela, vous exécutez la commande suivante : .
Class.forName ( " com.mysql.jdbc.Driver " ) newInstance ();
Ceci renverra une instance de la classe de pilote ( qui est inclus dans java.sql ) , et vous pouvez stocker la référence à cette instance pour utiliser plus tard si vous le souhaitez. Cependant, il n'est pas nécessaire dans la plupart des circonstances. Si vous recevez une erreur, cela signifie très probablement que votre chemin de classe n'est pas configuré correctement .
Création d'une connexion
La connexion de base de données doit être faite à l'aide une URL ou une adresse IP. Si la base de données s'exécute sur la même machine que le programme Java, c'est facile: L'URL est localhost , avec un ajout important : le protocole (ou URL) identifiant. Un familier pour le Web est «http://» . Pour une base de données MySQL JDBC, l'identifiant de protocole correct est « jdbc: mysql ://"
Connection conn = DriverManager.getConnection ( "jdbc : mysql ://localhost", nom d'utilisateur , mot de passe ) ; . < Br >
traiter les erreurs
Toute erreur relative à un cadre , une déclaration ou un ensemble de résultats sera du type SQLException . Pour plus de détails sur l'erreur spécifique , vous devriez prendre SQLException et imprimer son message d'erreur à la console. Une source potentielle de confusion est la vitesse à laquelle les connexions temps . Il ya beaucoup de temps à se connecter, exécuter quelques questions et obtenir des résultats, mais certainement pas le temps d'attendre l'entrée utilisateur après une connexion. Si vous devez attendre une entrée de l'utilisateur , il est généralement une meilleure pratique de déconnecter , de récupérer l'entrée d'utilisateur , puis reconnectez à nouveau pour exécuter les requêtes .
Requêtes et résultats
Il ya deux classes principales pour interagir avec la base de données une fois connecté : la Déclaration et le ResultSet = le conn.createStatement de
Déclaration (); d' s.executeQuery ("SELECT * FROM employés »); ResultSet rs = s . . getResultSet ();
Déclaration de
envoie simplement la chaîne SQL à la base de données, requêtes devra être écrite dans le dialecte natif de SQL pour la base de données utilisée . Une qualité importante d'un ResultSet est qu'il récupère les données du serveur d' une ligne à la fois, et seulement récupère les données lorsque la ligne est demandé. Le code ci-dessus n'a pas encore téléchargé des résultats à partir du serveur .
Parce qu'il est impossible sur la plupart des systèmes de connaître la taille d'un jeu de résultats avant que tous les résultats ont été récupérés , il est préférable de stocker un ensemble de résultats , au moins temporairement , à l'intérieur d'une structure de données qui peut être redimensionnée de façon efficace. La classe LinkedList de Java est parfait pour cette
résultats LinkedList = new LinkedList (); . While ( rs.next ()) { results.add ( rs.getString ( " prenom ")); }
< p> Et, c'est toujours une bonne pratique de fermer les connexions explicitement plutôt que de les laisser timeout:
rs.close (); s.close (); conn.close ();