Tutoriel Java N°12 : accès base de données MySQL

////Tutoriel Java N°12 : accès base de données MySQL

java-9.jpg Avec Objis, spécialiste Java depuis 2005, maîtrisez l’insertion et la récupération de données dans une base de données MySQL. Installez le Driver MySQL Connector, qui possède les implémentations pour la base MySQL des interfaces Connexion, Statement, ResultSet de l’API java.sql. Apprenez ensuite à Packager votre livraison pour la mise en production. Identifiez enfin les opportunités d’amélioration du code

ASTUCE –> Soyez informé de la mise à jour de nos tutos ou de la création de nouveaux tutos.

Auteur

 Douglas MBIANDOU. Président Objis . Concepteur formation ‘Nouveautés Java 8 et 9’

Prérequis

 Connaissance de JAVA.

Objectifs

 Mettre en oeuvre l’API JDBC java.sql

 Comprendre les 5 étapes clés pour l’insertion de données

 Comprendre les 6 étapes clés pour la récupération de données

Liens utiles

 200 tutos java Objis

 Objis, spécialiste formation java depuis 2005

 Déploiement Jar sur Tutoriel Java officiel Oracle

Durée

 30min

Programme

 Partie 1 : création du projet

 Partie 2 : ajout du driver JDBC MySql

 Partie 3 : création table

 Partie 4 : Insertion données en base

 Partie 5 : récupération de données

 Partie 6 : création livraison en production (sans manip MANIFEST.MF)

 Partie 7 : création livraison en production (avec manip MANIFECST.MF)

 Partie 8 : optimisations

Partie 1 : projet eclipse demojdbc

 A partie d’Eclipse (Standard ou Entreprise), Menu File->New

tutoriel_java_jdbc_objis.png

L’écran suivant apparaît.

tutoriel_java_jdbc_objis_2.png

 Ajoutez le nom du projet (ici demojdbc) dans le champ ‘Project Name’, puis appuyez sur bouton ‘Next’.

L’écran suivant apparaît.

tutoriel_java_jdbc_objis_3.png

Eclipse déposera les fichiers compilés (.class) dans le répertoire bin.

 Cliquez sur ‘Finish’

Le projet apparaît dans la vue ‘Explorateur de package’.

tutoriel_java_jdbc_objis_4.png

Création package et classe

 Cliquez droit sur src->new->Class

tutoriel_java_jdbc_objis_5.png

L’écran suivant apparaît.

tutoriel_java_jdbc_objis_6.png

 Entrez dans le champ Name le nom de classe : DemoJdbc

 Entrez dans le champ Package le nom du package dans lequel la classe sera : com.objis.demojdbc

 Cochez la case ‘public static void main()’ afin de lancer l’application à partir de cette classe.

Pui bouton Finish. Eclipse met à jour la vue Explorer.

tutoriel_java_jdbc_objis_23.png

Partie 2 : Ajout du driver JDBC

Librairie du projet (Driver JDBC) et CLASSPATH eclipse

Créez un répertoire lib à la racine du projet

tutoriel_java_jdbc_objis_7.png

tutoriel_java_jdbc_objis_8.png

Dans ce répertoire importez le driver jdbc :

 cliquez-droit puis import

tutoriel_java_jdbc_objis_9.png

General/File System

tutoriel_java_jdbc_objis_10.png

naviguez dans votre système jusqu’à trouver le driver (ici mysql-connector-java-5.0.5.jar, récupéré suite au dézippage de ZIP Driver )

tutoriel_java_jdbc_objis_11.png

 Cliquez sur Finish

Le driver apparaît dans la vue.

tutoriel_java_jdbc_objis_12.png

Informez Eclipse de l’existence de ce driver

tutoriel_java_jdbc_objis_13.png

 Cliquez-droit sur le projet->properties.
L’écran suivant apparaît.

tutoriel_java_jdbc_objis_14.png

Dans l’onglet ‘Librairies’ cliquez sur bouton ‘Add Jars’ car le driver est déja dans le projet (Sinon il faudrait cliquer sur Add External Jars)

tutoriel_java_jdbc_objis_15.png

 sélectionnez le driver puis OK

tutoriel_java_jdbc_objis_16.png

Le driver apparaît désormais dans ‘Referenced librairies’.

Partie 3 : création table

En utilisant le client PhpMyAdmin, créer :

— Une base de données ‘formation’

— une table ‘javadb’ possédant une seule colonne ‘personne’

tutoriel_java_jdbc_objis_21.png

 Expliquez

Partie 4 : insertion de données

Code d’accès aux données

tutoriel_java_jdbc_objis_18.png

Créez une méthode sauverEnBase() suivante, qui prend en paramètre une chaîne de caratère à insérer en base de données.

insertion_jdbc_java.png

Cette méthode statique sera apellée à partir de la méthode main() et donc au lancement de l’application.

QUESTION 1 : Dans quel package se trouve Connection ? Est-ce une Classe ou une interface ?

QUESTION 2 : à quoi sert le code : Class.forName ?

QUESTION 3 : à quoi sert le ‘try / catch’ ?

QUESTION 4 : y a t’il une autre façon de gérer les erreurs potentielles ?

QUESTION 5 : à quoi sert le bloc ‘finaly’ ?

tutoriel_java_jdbc_objis_17bis.png

 cliquez-droit sur la classe DemoJdbc->Run As->Java Application.

tutoriel_java_jdbc_objis_19.png

 

tutoriel_java_jdbc_objis_20.png

tutoriel_java_jdbc_objis_22.png

La données a bien été insérée en base de données.

Partie 5 : lecture de données

Ci-dessous le code de récupération de données

select_base_jdbc.png

Résultat

select_base_jdbc_ok.png

Nous avons récupérés les informations en base de données.

Code du projet

demo java jdbc

Partie 6 : livraison en production (sans manipulation du Manifest)

 Créer un répertoire ‘livraisons’ vide

 copier / coller dans ce répertoire le répertoire ‘lib’ dans lequel vous avez copié le Driver

tutoriel-objis-deploiement-appli-jdbc-1

En s’appuyant sur la création de livrable, créer dans ce répertoire livraison le livrable demojdbc.jar

 Cliquer droit sur le projet dans eclipse

 Export

tutoriel-objis-deploiement-appli-jdbc-2

L’écran suivant apparaît

tutoriel-objis-deploiement-appli-jdbc-3

Notez que par défaut vous vous apprêtez donc à créer un livrable contenant : le source ompilé (ça on en a besoin), le driver (on l’a déja), et fichier eclipse .project et .classpath (on en a pas besoin en production !)

 Spécifiez le répertoire dans lequel vous allez créer le livrable aussi.

 Décochez tout ce qui n’est pas strictement lié au code source.

L’écran devient :

tutoriel-objis-deploiement-appli-jdbc-4

 Next

tutoriel-objis-deploiement-appli-jdbc-5

 Next

tutoriel-objis-deploiement-appli-jdbc-6

 Next

tutoriel-objis-deploiement-appli-jdbc-7

Notez la petite taille du livrable. C’est une bonne pratique d’essayer d’avoir toujours un livrable de la taille la plus petite possible (on met juste ce qu’il faut).

Lancez la commande suivante à partir du répertoire livraisons : java -cp demojdbc.jar com.objis.demojdbc.DemoJdbc

Expliquer l’option -cp

lancement-v0

 Expliquez

Lancez la commande suivante : java -cp demojdbc.jar;lib/mysql-connector-java-5.0.5-bin.jar com.objis.demojdbc.DemoJdbc

lancement-v1

Partie 7 : livraison en production (avec manipulation du Manifest)

 Créer à la racine du projet un répertoire ‘META-INF’

 Dans ce répertoire, créer un fichier texte MANIFEST.MF suivant

tutoriel-objis-deploiement-appli-jdbc-8bis

 Expliquer les 4 lignes du fichier

tutoriel-objis-deploiement-appli-jdbc-9

 

tutoriel-objis-deploiement-appli-jdbc-10

 

tutoriel-objis-deploiement-appli-jdbc-11

 

tutoriel-objis-deploiement-appli-jdbc-12

 

tutoriel-objis-deploiement-appli-jdbc-13

 

tutoriel-objis-deploiement-appli-jdbc-14

 

tutoriel-objis-deploiement-appli-jdbc-15

Vous venez de créer une deuxième version de votre livrable. L’intérêt ici est que vous allez pouvoir lancer l’application uniquement avec la commande : java -jar demojdbc2.jar

tutoriel-objis-deploiement-appli-jdbc-16

CORRECTION

 Projet eclipse

 Livraisons avec et sans manipulation MANIFEST.MF

demojdbc-deploiement-jar

Partie 8 : optimisations

 Question : qu’est ce qu’un ‘PraparedStatement’ ? Quelle différence avec un Statement ?

 Proposez un refactoring du code en utilisant les PreparedStatements. Quel avantage ?

 Proposez une meilleure stratégie de gestion des exceptions. En particulier, créez un package java ‘exceptions’ et créezz une exception ‘DataBaseException’ héritant de la classe Exception et dont la méthode getMessage() sera redéfinie pour renvoyer le message ‘ERREUR ACCES BASE DE DONNEES’

 Coté sécurité, citez au moins une faille à laquelle ce code s’expose. Comment s’en prémunir ?

Conclusion

Dans ce tutoriel, vous avez découvert les étapes clés de connexion à une base de données relationnelle avec JAVA.

formation.sql.

Professionnels : maîtrisez les nouveautés Java 8 et 9 !

modules-java9.jpgA travers notre nouvelle formation Nouveautés Java 8 et 9 (durée 4 jours) conçue par l’auteur de ce tutoriel, découvrez par la pratique le nouveau système de Modules Java 9 (Encapsulation forte + Intercafes + Dépendances explicites) ainsi que les spécificités de Java 8 (Streams, Lambda, Optional…). Maîtrisez également la méthodologie de migration de votre code vers Java 9. Un sérieux atout pour votre employabilité et l’évolution de votre carrière professionnelle !. Contactez-nous dès maintenant !

2018-01-27T16:08:40+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java