Vous êtes sur la page 1sur 29

Accès aux bases de données

Introduction
• Des applications de gestion traitent des données dans des volumes plus ou
moins importants.
• Les données doivent être stockées dans une base de données lorsque son
volume devient assez important.
• Plusieurs types de base de données existent mais la BD relationnelle est le
modèle le plus répandu.
Base de données relationnelle
 Dans les années 1970, le Dr Ted Codd, un informaticien, a inventé le modèle
relationnel pour la gestion des bases de données.
 Le modèle relationnel traite de nombreux problèmes causés par le modèle de
fichier plat.
 Selon son modèle, les données sont organisées en entités et attributs, au lieu
de tout combiner dans une seule structure.
Schéma d’une BDR
SGBR
 Un SGBDR est un ensemble de programmes qui assurent la gestion et l’accès
à une base de données relationnelle.
 Un SGBDR assure la structuration, le stockage, la maintenance, la mise à jour,
la consultation des données d’une BDR.
 Les données sont organisées en tables possédant des relations entre elles
grâce à des clés primaires et étrangères.
 Les opérations sur la BDR sont réalisées grâce à des requêtes SQL.
 Des produits SGBDR les plus populaires du marché sont:
Oracle DB
SQL Server de Microsoft (MS SQL Server)
MySQL d'Oracle et son cousin MariaDB opensource.
PostgreSQL: le SGBD open source le plus avancé.
Avantages d’un SGBR
 Accès aux données : L’accès aux données se fait par l’intermédiaire d’un
Langage de Manipulation de Données (LMD): SELECT, UPDATE, DELETE,
INSERT et la définition des données se fait par l’intermédiaire d’un Langage
de Description de Données (LDD): CREATE TABLE, CREATE USER, ALTER TABLE,
DROP TABLE.
 Administration centralisée des données (intégration) : les données doivent
être centralisées dans un emplacement unique commun à toutes les
applications.
 Non redondance des données : Pour éviter les problèmes lors des mises à
jour, chaque donnée ne doit être présente qu’une seule fois dans la base.
Avantages d’un SGBR
 Cohérence des données : Les données sont soumises à un certain nombre de
contraintes d’intégrité qui définissent un état cohérent de la base.
 Partage des données : Il s’agit de permettre à plusieurs utilisateurs d’accéder
aux mêmes données au même moment de manière transparente.
 Sécurité des données : il s’agit des mécanismes permettant de gérer les
droits d'accès aux données selon les utilisateurs: Les données seront
protégées contre les accès non autorisés.
 Résistance aux pannes : Il faut avoir la possibilité de récupérer une base dans
un état cohérent.
JDBC (Java DataBase Connectivity)
 JDBC désigne une API pour permettre de se connecter et d’exécuter des requêtes
aux SGBDR avec Java.
 Pour pouvoir utiliser JDBC, il faut un pilote (driver) spécifique à la base de données
à laquelle on veut accéder.
 Il existe quatre types de pilote JDBC, mais le type 4, un driver Java utilisant le
protocole natif du SGBDR, est largement utilisé.
 Ce type de driver, écrit en java, appelle directement le SGBD par le réseau et est
fourni par l'éditeur d’un SGBDR.
JDBC (Java DataBase Connectivity)
 Toutes les classes de JDBC sont dans le package java.sql.
 Il y a 4 classes importantes : DriverManager, Connection, Statement ( et
PreparedStatement), et ResultSet.
Structure de JDBC
Connexion à la BD
 Créer une BD

 Créer une table


Connexion à la BD
 Ajouter des enregistrements
Chargement du pilote JDBC
 La connexion à une base de données nécessite au préalable le chargement du
pilote JDBC.
 Le chargement du pilote JDBC se fait via la méthode Class.forName("pilote").
 La méthode static forName() de la classe Class peut lever l'exception
java.lang.ClassNotFoundException.
 Exemples:
Class.forName("com.mysql.cj.jdbc.Driver");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("org.postgresql.Driver");
A partir de JDBC 4.0, tous pilotes se trouvant dans CLASSPATH sont chargés
automatiquement. Donc, Class.forName() n’est plus utilisée actuellement.
Chargement du pilote JDBC
SGBDR Nom de la classe du pilote Format de l’URL de connexion
Oracle DB oracle.jdbc.OracleDriver jdbc:oracle:thin:@[host]:[port]:[schema]
Ex : jdbc:oracle:thin:@localhost:1521:maBase
MySQL <= 5.1 com.mysql.jdbc.Driver jdbc:mysql://[host]:[port]/[schema]
Ex : jdbc:mysql://localhost:3306/maBase
MySQL >= 8 com.mysql.cj.jdbc.Driver jdbc:mysql://[host]:[port]/[schema]
Ex : jdbc:mysql://localhost:3306/maBase
MariaDB org.mariadb.jdbc.Driver jdbc:mariadb://[host]:[port]/[schema]
Ex : jdbc:mariadb://localhost:3306/maBase
PosgreSQL org.postgresql.Driver jdbc:postgresql://[host]:[port]/[schema]
Ex : jdbc:postgresql://localhost:5432/maBase
HSQLDB (mode org.hsqldb.jdbcDriver jdbc:hsqldb:file:[chemin du fichier]
fichier) Ex : jdbc:hsqldb:file:maBase
HSQLDB (mode org.hsqldb.jdbcDriver jdbc:hsqldb:mem:[schema]
mémoire) Ex : jdbc:hsqldb:mem:maBase
Connexion à la BD
 Pour ouvrir une connexion, on va utiliser la méthode getConnection() de
la classe DriverManager. Cette méthode nécessite un paramètre, URL de
connexion :
Connexion à la BD
Connexion à la BD
 Pour simplifier la gestion de connexion, on va utiliser un fichier qui
contiendra les paramètres de connexion.
Connexion à la BD
Connexion à la BD
Opérations CRUD
Interface Statement
 Un Statement est une interface qui permet d’effectuer des requêtes SQL.

Permet d’exécuter une requête SQL et d’en connaître le résultat.

Comme le Statement, le PreparedStatement permet d’exécuter une requête SQL


et d’en connaître le résultat. Le PreparedStatement est une requête paramétrable .

permet d’exécuter des procédures stockées sur le SGBDR. On peut ainsi passer
des paramètres en entrée du CallableStatement et récupérer les paramètres
de sortie après exécution.
Objet Statement
 Un objet Statement est créé à partir d’une des méthodes createStatement()
de l’interface Connection.

 Une fois créé, 3 méthodes importantes sont disponibles:


executeQuery(): pour l’intruction SELECT
executeUpdate(): pour mettre à jour les données ou la structure de la BD
execute(): peut être utilisé pour les deux cas si le resultat est inconnu.
Objet Statement
Objet Statement
 Un objet Statement est créé à partir d’une des méthodes createStatement()
de l’interface Connection.

 Une fois créé, 3 méthodes importantes sont disponibles:


executeQuery(): pour l’intruction SELECT
executeUpdate(): pour mettre à jour les données ou la structure de la BD
execute(): peut être utilisé pour les deux cas si le resultat est inconnu.
CRUD avec Statement: CREATE
CRUD avec Statement: READ
CRUD avec Statement: UPDATE & DELETE
Objet PreparedStatement
 Un objet PreparedStatement est créé à partir d’une des méthodes
prepareStatement() de l’interface Connection.

 Une fois créé, 3 méthodes importantes sont également disponibles:


executeQuery(): pour l’intruction SELECT
executeUpdate(): pour mettre à jour les données ou la structure de la BD
execute(): peut être utilisé pour les deux cas si le resultat est inconnu.
Références
• https://www.baeldung.com/java-jdbc
• https://gayerie.dev/docs/jakartaee/javaee_orm/jdbc.html

Vous aimerez peut-être aussi