Oracle & Java - Version Complet
Oracle & Java - Version Complet
Mohammed Moumni
Abdellah Boumaiza
Youssef Allam
Présentation de PL / SQL
◦ PL / SQL vous permet de mélanger des instructions SQL avec des constructions
procédurales. Avec PL / SQL, vous pouvez définir et exécuter des unités de programme PL /
SQL telles que des procédures, des fonctions et des packages. Les unités de programme PL /
SQL sont généralement classées en blocs anonymes et procédures stockées.
02/03/2021
◦ Un bloc anonyme est un bloc PL / SQL qui apparaît dans votre application et qui n'est ni
nommé ni stocké dans la base de données. Dans de nombreuses applications, les blocs PL /
SQL peuvent apparaître partout où les instructions SQL peuvent apparaître.
◦ Une procédure stockée est un bloc PL / SQL qu'Oracle stocke dans la base de données et peut
être appelé par son nom depuis une application. Lorsque vous créez une procédure stockée,
Oracle analyse la procédure et stocke sa représentation analysée dans la base de
données. Oracle vous permet également de créer et de stocker des fonctions (qui sont
similaires aux procédures) et des packages (qui sont des groupes de procédures et de
fonctions).
02/03/2021
Le moteur PL / SQL et le serveur de base de données Oracle
02/03/2021
Présentation de Java
◦ Java est un langage de programmation orienté objet efficace pour les programmes de niveau
application. Il comprend les fonctionnalités suivantes:
• Une machine virtuelle Java (JVM), qui fournit la base fondamentale de l'indépendance de la
plate-forme
02/03/2021
Stratégie d'application Java d'Oracle
◦ L'un des attraits de Java est son omniprésence et le nombre croissant de programmeurs capables de
développer des applications qui l'utilisent. Oracle fournit aux développeurs d'applications
d'entreprise une solution Java de bout en bout pour créer, déployer et gérer des applications
Java. La solution complète se compose d'interfaces de programmation côté client et côté serveur,
d'outils de prise en charge du développement Java et d'une machine virtuelle Java intégrée au
serveur de base de données Oracle. Tous ces produits sont compatibles avec les standards Java.
◦ Outre Oracle JVM, l'environnement de programmation Java comprend les éléments suivants:
- Procédures stockées Java en tant qu'équivalent Java et compagnon pour PL / SQL. Les procédures
stockées Java sont étroitement intégrées à PL / SQL. Vous pouvez appeler une procédure stockée Java
à partir d'un package PL / SQL; vous pouvez appeler des procédures PL / SQL à partir d'une procédure
stockée Java.
02/03/2021
Doit-on utiliser PL / SQL ou Java pour coder des
procédures et des déclencheurs ?
◦ PL / SQL et Java peuvent être utilisés pour créer des procédures stockées et des déclencheurs
Oracle. Cela conduit souvent à des questions comme "Lequel des deux est le meilleur?" et "Oracle
va-t-il jamais désactiver PL / SQL en faveur de Java?".De nombreuses applications Oracle sont
basées sur PL / SQL et il serait difficile pour Oracle de jamais désactiver PL / SQL. En fait, tout
indique que PL / SQL a encore de beaux jours devant lui. De nombreuses améliorations sont encore
apportées à PL / SQL. Par exemple, Oracle 9i prend en charge la compilation native du code PL /
SQL en binaires. Sans parler des nombreuses améliorations PL / SQL apportées à Oracle 10g et
11g.PL / SQL et Java plaisent à différentes personnes dans différents rôles.
02/03/2021
PL / SQL:
◦ Peut être utilisé pour créer des packages, des procédures et des déclencheurs Oracle
◦ Centré sur les données et étroitement intégré à la base de données
◦ Propriétaire d'Oracle et difficile à porter vers d'autres systèmes de base de données
◦ La manipulation des données est légèrement plus rapide en PL / SQL qu'en Java
◦ PL / SQL est un langage de programmation procédural traditionnel
02/03/2021
Java:
◦ Peut être utilisé pour créer des packages, des procédures et des déclencheurs Oracle
◦ Norme ouverte, non propriétaire d'Oracle
◦ Entraîne une surcharge de conversion de données entre le type de base de données et Java
◦ Java est un langage orienté objet et les modules sont structurés en classes
◦ Java peut être utilisé pour produire des applications complètes PS: à partir d'Oracle 10g, les
procédures .NET peuvent également être stockées dans la base de données (Windows uniquement).
Néanmoins, contrairement à PL / SQL et JAVA, le code .NET n'est pas utilisable sur les systèmes
non Windows.
02/03/2021
C’EST QUOI UN JDBC ?
◦ JDBC, Java Data Base Connectivity est un ensemble de classes (API – Application Programming
Interface --JAVA) permettant de se connecter à une base de données relationnelle en utilisant des
requêtes SQL ou des procédures stockées. L’API JDBC a été développée de manière à pouvoir se
connecter à n’importe quelle base de données avec la même syntaxe; cette API est dite
indépendante du SGBD utilisé. Les classes JDBC font partie du package
02/03/2021
Types de drivers JDBC
◦ Les drivers de Type 1 :
ODBC-JDBC bridges, ODBC (Open Data Base Connectivity) est une interface propre à Microsoft et
qui permet l’accès à n’importe quelle base de données (Panneau de configuration Outils
d’administration Sources de données ODBC .
Chaque requête JDBC est convertie par ce pilote en requête ODBC qui est par la suite
convertie une seconde fois dans le langage spécifique de la base de donnée. Cette technique est la
moins optimale puisque les bases de données sont disponibles uniquement que par technologie
ODBC. Le SDK de Java fournit un pilote JDBC-ODBC :« sun.jdbc.odbc.JdbcOdbcDriver ».
02/03/2021
Figure : jdbc drivers type 1
02/03/2021
◦ Les drivers de Type 2 :
Ce type de driver traduit les appels de JDBC à un SGBD particulier, grâce à un mélange d'API java
et d'API natives. (Propre au SGBD).
Ce Driver est fourni par l’éditeur de SGBD.
Il est de ce fait nécessaire de fournir au client l’API native de la base de données. Si on change le type
de la base de données, on doit changer le pilote
02/03/2021
Figure : jdbc drivers type 2
02/03/2021
◦ Les drivers de Type 3 :
Permet la connexion à une base de données via un serveur intermédiaire régissant l’accès aux
multiples bases de données Ce type de driver est portable car écrit entièrement en java. Il est
adapté pour le Web.
Cela exige une autre application serveur à installer et à entretenir. Ce type de driver peut être
facilement utilisé par une applet, mais dans ce cas le serveur intermédiaire doit obligatoirement
être installé sur la machine contenant le serveur Web.
02/03/2021
Figure : jdbc drivers type 3
02/03/2021
◦ Les drivers de Type 4 :
◦ Ce type de driver est connu sous le nom Direct Database Pure Java Driver), permet d’accéder
directement à la base de données (sans ODBC ni Middleware). C’est le type le plus optimal
Dans ce modèle , une application JAVA (ou une applet) dialogue avec le SGBD par l’intermédiaire du pilote
JDBC. L’application JAVA et le pilote JDBC s’exécutent sur l’ordinateur client tandis que le SGBD est placé sur
un serveur.
02/03/2021
->Modèles 3 couches (three-tier)
Dans le modèle three-tier, l’applet (ou l’application JAVA) ne dialogue plus directement avec un SGBD : un
middle-tier fait le lien entre ces deux composants Le SGBD exécute les requêtes SQL et envoie les résultats au
middle tier. Ces résultats sont ensuite communiqués à l’applet sous forme d’appels http.
02/03/2021
Fonctionnement
1.Importer les packages nécessaires
8. Fermeture de la connexion.
02/03/2021
L'utilisation de PL /SQL plutôt que du code d'application stocké
localement sur les ordinateurs clients.
◦ Les avantages
◦ Ils permettent une programmation modulaire (réduire la complexité ou neveu de code métier)
◦ Ils permettent une exécution plus rapide. Ils peuvent réduire le trafic réseau(One-time, One-place Processing)
◦ Ils peuvent être utilisés comme mécanisme de sécurité.
◦ Les inconvénients
◦ Fonctionnalité de codage limitée
◦ Portabilité (migration de technologie)
◦ Coût (matériel , humane… )
02/03/2021
Démonstration
◦ Les interfaces graphiques :
02/03/2021
◦ La base de données:
02/03/2021
02/03/2021
◦ La procedure stockée REGISTRATION_PROC pour insertion:
02/03/2021
◦ La fonction checkUsername pour éviter la duplication des noms d'utilisateurs:
02/03/2021
Lorsque nous cliquons sur le bouton d'enregistrement, la fonction insertIntodb sera appelée et
prend en paramètres le nom d'utilisateur et le mot de passe, et à l'intérieur de cette fonction, la
fonction checkUsername sera appelée en premier à partir de la base de données oracle en utilisant
JDBC pour éviter les noms d'utilisateurs en double
02/03/2021
◦ les étapes que nous avons suivies pour appeler la fonction checkUsername et la procédure stockée
REGISTRATION_PROC:
02/03/2021
02/03/2021
Dans l'interface LOGIN:
02/03/2021
◦ La fonction checkLogin dans la base de donnees :
02/03/2021
dans l'interface de connexion, lorsque l'utilisateur clique sur le bouton de connexion, la
fonction checkLogin sera appelée, elle retournera 1 si le nom d'utilisateur et le mot de passe
correspondant à un utilisateur existant dans la base de données sinon elle retournera 0.
02/03/2021
MERCI POUR VOTRE ATTENTION
02/03/2021