Principes d'utilisation des systèmes de gestion de bases de données

Documents pareils
Introduction à JDBC. Accès aux bases de données en Java

Java DataBaseConnectivity

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Application web de gestion de comptes en banques

TP Programmation Java / JDBC / Oracle

Java et les bases de données

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Accès aux bases de données

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

OpenPaaS Le réseau social d'entreprise

Notes de cours : bases de données distribuées et repliquées

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Test de HSQLDB et Comparatif avec Sqlite

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

et Groupe Eyrolles, 2006, ISBN :

Cours: Administration d'une Base de Données

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Architectures web/bases de données

Mysql. Les requêtes préparées Prepared statements

FileMaker 13. Guide ODBC et JDBC

III. Contexte. Objectifs. Philippe HOUE, Ecole des Mines de Nantes

CHAPITRE 1 ARCHITECTURE

SQL Historique

La base de données XML exist. A. Belaïd

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Logiciel de gestion de caisse et d ardoises

CATALOGUE FORMATIONS DOMAINE Bases de données

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Bases de données cours 1

LES ACCES ODBC AVEC LE SYSTEME SAS

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Module BD et sites WEB

Programmation d application Bases de données avec Java

CREATION WEB DYNAMIQUE

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

FileMaker Server 14. Guide de démarrage

Bases de données avancées Introduction

PROJET 1 : BASE DE DONNÉES REPARTIES

TP Contraintes - Triggers

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Tutoriel d installation de Hibernate avec Eclipse

JDBC le langage Java XVI-1 JMF

RMI le langage Java XII-1 JMF

Cours Bases de données 2ème année IUT

Simple Database Monitoring - SDBM Guide de l'usager

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de données et sites WEB Licence d informatique LI345

Plan du cours. Historique du langage Nouveautés de Java 7

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Remote Method Invocation (RMI)

APIs de table pour SQL Server

1. Base de données SQLite

Notion de base de données

Dialogue avec la base de données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

PHP. PHP et bases de données

1. Langage de programmation Java

PDO : PHP Data Object 1/13

Gestion de stock pour un magasin

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Devoir Data WareHouse

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Plateforme PAYZEN. Définition de Web-services

//////////////////////////////////////////////////////////////////// Administration bases de données

Introduction aux Bases de Données Relationnelles Conclusion - 1

FileMaker 10. Guide ODBC et JDBC

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

FileMaker Server 14. Aide FileMaker Server

I. MySQL : Serveur et SGBD

Web Tier : déploiement de servlets

IFT3030 Base de données. Chapitre 1 Introduction

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Mini-projet systèmes & réseau serveur de «tchatche»

PHP 4 PARTIE : BASE DE DONNEES

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Bases de données avancées

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Tutorial sur SQL Server 2000

Compte Rendu d intégration d application

PHP 5. La base de données MySql. A. Belaïd 1

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Corrigé de l'atelier pratique du module 5 : Analyse de SQL Server

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Attaques applicatives

BTS/CGO P10 SYSTEME INFORMATION Année

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Transcription:

Principes d'utilisation des systèmes de gestion de bases de données JDBC L3 Informatique Emmanuel Waller, LRI, Orsay Université Paris Sud

le mode programme JDBC JDBC : qu'est ce que c'est? Avantages? devant les machines interface, portabilité, connexion exécution d'ordres BD : principe, sans paramètres

le mode programme : cas général qu'est ce que c'est? pour faire quoi? pour qui? comment? Java et les problèmes du mode programme : JDBC

qu'est ce que c'est? lors écriture application : Mêmes ordres SQL qu'en interactif + programme autour comme PL/SQL

pour faire quoi? pour qui? connu : gérer problèmes BD : ok avec SQL code : dédié à la gestion BD local à la base : ok avec PL/SQL but : accès BD par application généraliste qui doit faire : calculs, conversationnel, interface, réseau, etc. pour : informaticiens (comme PL/SQL)

comment? programme normal (Java, PHP, C, Cobol, etc.) + connexion rappel : Interactif : commande Unix PL/SQL : déjà connecté Transformation du processus prog. en client SGBD + n'importe quels ordres SQL avec gestion des problèmes du mode programme

Les problèmes du mode programme Il faut lancer des ordres BD depuis un programme (Java, PHP, Ocaml, etc.) La gestion d'ordre BD dans un programme pose les problèmes suivants

Interface : concrètement, comment placer «insert into t values (7, 'ok')» dans un programme? Connexion : comment indiquer qu'on démarre une connexion BD (+login, base, etc.)?

Java et les pbs MP : JDBC un programme Java souhaitant accéder à BD doit gérer ces problèmes le package JDBC fournit les outils nécessaires pour gérer les problèmes du mode programme

JDBC : qu'est ce que c'est? avantages? API = ensemble de classes et interfaces (package) Java Java DataBase Connectivity permet d'accéder à des SGBD par SQL application JDBC = programme Java utilisant JDBC indépendant d'un SGBD particulier (grâce drivers) d'une architecture matérielle (grâce Java)

situation : exemple c'est l'anniversaire de Jeanne on veut exécuter : update personne set age = age + 1 where nom = 'Jeanne' regardons intuitivement premier programme Java/JDBC complet qui tourne (voir ci joint) puis nous reviendrons systématiquement sur tous les points

devant les machines compilation standard (cause import package) + fournir les classes du driver choisi concrètement : indiquer au compilateur Java où se trouve le driver utilisé : CLASSPATH Unix javac java

démonstration

pbs MP : interface comment exécuter un ordre BD depuis Java? Java appelle des fonctions d'une bibliothèque (JDBC) ces fonctions encapsulent les accès au serveur BD les ordres BD sont : certaines fonctions de la bibliothèque chaînes de caractères paramètres de fonctions de la bibliothèque

pbs MP : connexion Connection x = DriverManager.getConnection(url) fonction getconnection : récupère driver indiqué par url (=> déjà chargé) l'utilise pour établir connexion avec le serveur renvoie objet correspondant (classe Connection) : nécessaire toutes interactions avec le serveur

url : String = jdbc:oracle:drivertype:user/password@database drivertype : oci7, oci8, thin (applet : thin) @database : optionnel, sinon defaut oci : ligne de tnsnames.ora, thin : host:port:sid, SQL*Net

l'objet de la classe Connection «session» = 1. connexion à un serveur donné 2. séquence d'ordres SQL 3. déconnexion possible : une application JDBC a plusieurs sessions avec un ou plusieurs serveurs (chaque session est alors un client)

un objet Connection définit une session utilisé via ses méthodes pour envoi ordres BD au serveur gestion transactions fournit informations sur tables, procédures stockées, etc. créable que par getconnection (Connection: interface)

déconnexion méthode de Connection : void close() throws SQLException effectue déconnexion normale du serveur qui termine la session utile si on veut déconnexion immédiate au lieu attendre que automatique déconnexion implicite automatique lorsque objet Connection libéré par garbage collector

Vue d'ensemble et architecture Interactifs Progammes Client Client... Client Client... Serveur BD

pbs MP : exécution d'ordres BD principe et déroulement ordres sans paramètre

Principe et déroulement création d'un «objet ordre» générique (ordre SQL non fixé) envoi de l'ordre au serveur par méthode de cet objet si select : récupération du résultat (curseur) gestion erreurs 3 catégories : ordres BD sans ou avec paramètres paramètre : valeur d'une colonne appel procédure stockée PL/SQL

ordres SQL sans paramètre = tout ordre SQL copié collable sous SQL*Plus 2 catégories : select tous les autres objet classe Statement créé par méthode de Connection : Statement createstatement() throws SQLException ne pas utiliser si ordre exécuté plusieurs fois avec paramètres différents, car moins efficace

un seul objet Statement en général (plusieurs possible : hors module) envoyer l'ordre au serveur par la méthode de Statement (si ordre non requête) : int executeupdate(string sql) throws SQLException renvoie nombre de lignes traitées pour insert, update, delete 0 sinon String sql : sans le point virgule de SQL*Plus

démonstration