Préface: qu'est-ce que JDBC
Java Database Connectivity (JDBC) est une interface de programme d'application utilisée dans la langue Java pour normaliser la façon dont les programmes clients accédaient aux bases de données, fournissant des méthodes telles que l'interrogation et la mise à jour des données dans la base de données. JDBC est également une marque de commerce de Sun Microsystems. Il s'agit de JDBC pour les bases de données relationnelles.
Autrement dit, il s'agit d'une API Java utilisée pour exécuter des instructions SQL. Grâce à l'encapsulation, les développeurs peuvent utiliser des API Java purs pour terminer l'exécution SQL.
1. Travail de préparation (i): configuration d'installation de MySQL et apprentissage de base
Avant d'utiliser JDBC pour faire fonctionner une base de données, vous devez d'abord avoir une base de données. Voici 3 liens pour les lecteurs à apprendre par eux-mêmes.
Téléchargement MySQL, installation, déploiement et didacticiel de l'opération détaillée graphique: //www.vevb.com/article/87690.htm
Il est recommandé de lire le tutoriel d'introduction tout en pratiquant, tout en pratiquant des opérations de base telles que l'insertion, la mise à jour, la sélection, la suppression, etc., et la création du tableau que vous souhaitez utiliser plus tard.
Le chiffre suivant est le tableau de la base de données que j'utiliserai pour la prochaine démonstration.
2. Travail de préparation (2): Téléchargez le package de pot correspondant de la base de données et importez-le
L'utilisation de JDBC nécessite l'importation du package JAR correspondant dans le projet. La correspondance entre la base de données et le package JDBC peut se référer au package JAR, au nom de la classe du pilote et au format URL correspondant à diverses bases de données. Méthode d'importation sous Eclipse:
Cliquez avec le bouton droit sur l'icône du projet, sélectionnez "Propriétés", sélectionnez "Ajouter des pots externes ..." dans "Java Bullid Path" et sélectionnez le package JAR que vous avez obtenu après le téléchargement et la décompression.
Si vous opérez sur MySQL, l'importation suivante ne rapportera pas d'erreur:
import com.mysql.jdbc.connection;
De plus, vous avez également besoin de packages JDBC, il suffit de les importer directement.
Importer java.sql.DiverManager; import java.sql.resultSet; import java.sql.sqlexception;
3. Opérations de base de JDBC
Pour plus de simplicité, les opérations, les commandes et les paramètres liés à la base de données sont codés en dur. Les lecteurs intéressés peuvent les explorer pour réduire le couplage entre les données et les opérations.
Examinons d'abord le code et la pratique spécifiques.
Toutes les méthodes et les membres de données ci-dessous se trouvent à l'intérieur de la classe publique JDBCopération.
(1) définir la classe d'enregistrement (facultatif)
Cela est principalement fait pour faciliter le fonctionnement et la définition de l'interface, et n'est pas nécessaire.
STATIQUE STATIQUE {ID de chaîne privée; public void setName (nom de chaîne) {this.name = name;} String public getSEX () {return;(2) récupération de la connexion
La connexion à la base de données doit être obtenue avant l'opération.
Connexion statique privée GetConn () {String Driver = "com.mysql.jdbc.driver"; String Url = "JDBC: Mysql: // getConnection (URL, nom d'utilisateur, mot de passe);} catch (classNotFoundException e) { E.PrintStackTrace ();} Catch (SQLEXception E) {E.PrintStackTrace ();(3) insérer
INTERT STATIQUE PRIVÉ (étudiant étudiant) {Connexion Conn = GetConn (); int i = 0; ing (2, Student.getSex ()); PSTMT.EXECUTEUPDATE (); PSTMT.CLOSE ();(4) Mise à jour
Private Static Int Update (Student Student) {Connexion Conn = GetConn (); int i = 0; System.out.println ("ResUtl:" + i); pstmt.close (); Conn.Close ();} Catch (SQLEXception E) {E.PrintStackTrace ();} Retour I;}(5) Sélectionner
Prenez SELECT * dans XXX comme exemple.
Private Static Integer Getall () {Connexion Conn = GetConn (); ("=========================="); (int i = 1; i <= col; i ++) {System.out.print (Rs.GetString (i) + "/ t"); ================= ");} Catch (Sqlexception E) {E.PrintStackTrace ();} retourne null;}(6) Supprimer
Private Static int Delete (Nom de la chaîne) {Connexion Conn = GetConn (); ; e.printStackTrace ();} Retour I;}4. Test
Avant les tests, le service de base de données correspondant doit être ouvert dans le système. La commande de démarrage mysql sous Windows est net start mysql
Code de test
Public Static Void Main (String Args []) {JDBCoperation.getall (); getall ();}Sortie dans Eclipse
=========================. 6 3 Petra Fema 9 4 Peter Male 9 5 _graff Male 40 6 God Fema 255 7 ACHILLES MALE 14 ========================. ==
V. Analyse du code
Dans le processus ci-dessus de l'ajout, de la suppression, de la modification et de la recherche de la base de données, il peut être trouvé en commun, c'est-à-dire un processus commun:
(1) Créer un objet de connexion et une chaîne de commande de requête SQL;
(2) passer la commande SQL Query à l'objet de connexion et obtenir l'objet PréparedStatement;
(3) EXECUTER EXECUTEUPDate () ou ExecuteQurey () sur l'objet PréparedStatement pour obtenir le résultat;
(4) Fermez l'objet PréparedStatement et l'objet de connexion l'un après l'autre.
On peut voir que lors de l'utilisation de JDBC, les types de contact les plus courants sont la connexion et le statement préparé, et la classe de résultat dans Select.
Connexion
java.sql
Connexion
Toutes les super interfaces: wrapper
--------------------------------------------------------------------------------
Interface publique Connection Tenteaux Wrapper
Connexion (session) à une base de données spécifique. Exécutez des instructions SQL dans le contexte de la connexion et renvoyez le résultat.
La base de données de l'objet Connection peut fournir des informations décrivant ses tables, la syntaxe SQL prise en charge, les procédures stockées, cette fonction de connexion, etc. Ces informations sont obtenues à l'aide de la méthode Getmetadata.
Préparé
java.sql
Interface préparée
Toutes les super interfaces: déclaration, emballage toutes les sous-interfaces connues: callableStatement
--------------------------------------------------------------------------------
Interface publique PréparedStatemextend déclaration
Un objet qui représente une instruction SQL précompilée.
Les instructions SQL sont précompilées et stockées dans des objets de préparation. Cette instruction peut ensuite être exécutée efficacement plusieurs fois en utilisant cet objet.
Méthodes courantes
booléen execute ()
Exécute une instruction SQL dans cet objet PreadStatement, qui peut être n'importe quel type d'instruction SQL.
ResultSet executequery ()
Exécute une requête SQL dans cet objet PreadStatement et renvoie l'objet de résultat généré par la requête.
int exécuteUpdate ()
Exécutez des instructions SQL dans cet objet PreadStatement, qui doit être une instruction SQL Data Manipulation Language (DML), telles qu'une instruction INSERT, UPDATE ou DELITE, ou une instruction SQL sans contenu de retour, tel qu'une instruction DDL.
Résultats
java.sql
Résultat d'interface
Toutes les super interfaces: Wrapper toutes les sous-interfaces connues: CacheDrowset, FilterredRowset, JDBCrowset, JoinRowset, Rowset, SyncreSolver, WebBrowset
--------------------------------------------------------------------------------
Résultats de l'interface publique
Un tableau de données représentant un ensemble de résultats de base de données est généralement généré en exécutant une instruction interrogeant la base de données.
6. Pensez aux problèmes
1. Chaque opération SQL nécessite de l'établissement et de la fermeture de la connexion, qui consomment inévitablement beaucoup de surcharge de ressources.
Analyse: La regroupement de connexions peut être utilisée pour effectuer une maintenance unifiée des connexions sans avoir à les établir et à les fermer à chaque fois. En fait, c'est ce que de nombreux outils pour encapsuler JDBC sont utilisés.
2. Que dois-je faire si le format des données entrants est différent de la définition de la base de données dans le code Java? Par exemple, affectez l'objet Java String à l'attribut TinyInt de la base de données.
Analyse: Lors de l'exécution des instructions SQL, la base de données tentera de se convertir. Selon mon expérience, si vous passez l'attribut d'âge de Tinyint avec une lettre pure à l'aide d'un objet de chaîne, il sera converti en 0. Les règles de conversion spécifiques doivent être liées à la base de données.
Ce qui précède est tout le contenu de cet article.