Présentation Etapes dans le traitement d une requête d accès aux. Exemple. Contact: nadiri@najasoft.com (Décembre 2005)



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

Java DataBaseConnectivity

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

TP Programmation Java / JDBC / Oracle

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

JDBC JDBC. Java DataBase Connectivity

JDBC le langage Java XVI-1 JMF

Programmation d application Bases de données avec Java

Accès aux bases de données

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

Dialogue avec la base de données

1. Langage de programmation Java

OpenPaaS Le réseau social d'entreprise

Connectivité aux bases de données Java (JDBC)

Java et les bases de données

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)

Paradox 9. Guide de l utilisateur jpdox Web Utilities

Java Database Connectivity (JDBC) - Langage SQL

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

Java - MySQL. Code: java-mysql

Développement d applications avec les bases de données

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Applet pour visualiser les variables «automate» notifiées

Le langage SQL (première partie) c Olivier Caron

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Plan. Accès aux données dans le framework.net. ADO.NET Entity Framework LINQ ADO.NET ADO.NET. 1. ADO.NET Mode connecté Mode non connecté

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Remote Method Invocation (RMI)

FileMaker 10. Guide ODBC et JDBC

Application web de gestion de comptes en banques

PHP. PHP et bases de données

Flux de données Lecture/Ecriture Fichiers

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

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

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Un ordonnanceur stupide

Corrigé des exercices sur les références

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

PDO : PHP Data Object 1/13

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation Objet Java Correction

PROGRAMMATION PAR OBJETS

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

Programmer en JAVA. par Tama

Architecture Orientée Service, JSON et API REST

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Exploitation de bases de données relationnelles et orientées objet IFT287

TP1 : Initiation à Java et Eclipse

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Construire une base de donnée pour bibliothèque

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Création d une application JEE

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

Tutoriel d installation de Hibernate avec Eclipse

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

Module BD et sites WEB

Gestion distribuée (par sockets) de banque en Java

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Compte Rendu d intégration d application

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

Utiliser Java sans BlueJ

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Thierry Déléris. BMC Mainview Data Server Synthèse & Mise en œuvre

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Cours 1: Java et les objets

Auto-évaluation Aperçu de l architecture Java EE

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Auto-évaluation Programmation en Java

Développement Logiciel

Bases de données et fournisseurs de contenu

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Modélisation et Gestion des bases de données avec mysql workbench

MySQL avec Mac OS X. Quelques manipulations avec le terminal sont nécessaires si une version de MySQL est déjà lancée:

Gestion de stock pour un magasin

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Panorama des Bases de Données

Synchro et Threads Java TM

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

Plateforme PAYZEN. Définition de Web-services

RMI le langage Java XII-1 JMF

JOnAS 5. Serveur d application d

1. Base de données SQLite

Premiers Pas en Programmation Objet : les Classes et les Objets

INITIATION AU LANGAGE JAVA

Langage Java. Classe de première SI

TD/TP PAC - Programmation n 3

Java Licence Professionnelle CISII,

Programmation Par Objets

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

Compte-rendu de projet de Système de gestion de base de données

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

1 Définition d une classe en Java

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

FileMaker 13. Guide ODBC et JDBC

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Transcription:

JDBC API Présentation Etapes dans le traitement d une requête d accès aux données JDBC. Exemple Contact: nadiri@najasoft.com (Décembre 2005)

Présentation L API JDBC est composée de deux Packages java.sql et javax.sql java.sql: Package de base de l API. javax.sql : package optionnel étend les fonctionnalités de java.sql et permet le développement 3-tiers (l API fonctionne côté serveur) JDBC 1.0 (1997: java.sql) JDBC 4.0 (2005: Draft)

Etapes dans une transaction d accès aux données JDBC 1. Chargement du pilote JDBC 2. Connexion 3. Création d une instruction 4. Eé Exécution de la requête 5. Traitement des résultats 6. Fermeture de la connexion

Pilotes JDBC: Présentation Types de pilotes: Type 1: passerelle JDBC-ODBC ("sun.jdbc.odbc.jdbcodbcdriver") Type 2: Pilote JDBC partiellement écrit en Java et repose sur une API propriétaire i pour accéder aux données. Type 3: Pilote JDBC 100% écrit en JAVA et utilise des protocoles réseau standards pour accéder aux données. Type 4: similaire au type 3 sauf que les protocoles utilisés sont spécifiques au SGBD Pour Télécharger un pilote JDBC: http://developers.sun.com/product/jdbc/drivers / d /jdb /d (Critères de recherche: Version JDBC, Version JDK, Editeur SGBD )

Pilotes JDBC: Chargement Chargement du pilote: Class.forName(«NomduPilote») La méthode forname crée une instance de la classe du pilote JDBC et l enregistre auprès du gestionnaire de pilotes JDBC. Pour un pilote de type 1: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Pour les autres types il faut utiliser le nom fourni avec le pilote, exemple: Class.forName("com.atinav.access.jdbc2.Driver");. Remarque: pour les pilotes JDBC version 4.0 Le chargement est automatique, donc il n est pas nécessaire de faire appel à la méthode Class.forName()

Connexion La classe Gestionnaire de pilotes JDBC DriverManager contient la méthode getconnection(url,login,pass). Exemple: Accès ODBC à une base de données. Connection con=drivermanager.getconnection("jdbc:odbc:galerie");

Création de l instruction L interface Statement permet la définition et l exécution d une instruction SQL Définition de l instruction: Statement inst=con.createstatement(); Remarque: L objet ResultSet créé par défaut est de type Forward only createstatement Déclenche les exeception suivantes SQLException et SQLFeatureNotSupportedException createstatement(int type, int modif[, int maintien]) :Type de ResultSet : ResultSet.TYPE_FORWARD_ONLY: déplacement en avant uniquement t( (par défaut) ResultSet.TYPE_SCROLL_INSENSITIVE : déplacement arbitraire, le ResultSet présente une vue statique de la base de données (insesible aux modifications) ResultSet.TYPE_SCROLL_SENSITIVE SCROLL SENSITIVE Modif: ResultSet.CONCUR_READ_ONLY: Le resultset et fermé après une validation ResultSet.CONCUR_UPDATABLE: UPDATABLE: : les données de la base peuvent être modifiées via le resultset Maintien du curseur: ResultSet.HOLD_CURSORS_OVER_COMMIT : Le ResultSet restent ouverts après une validation implicite ou explicite. ResultSet.CLOSE_CURSORS_AT_COMMIT : Les objets ResultSet sont fermés lorsqu'une validation est effectuée implicitement ou explicitement.

Exécution de la requête La méthode executequery d un objet de type Statement exécute une requête SQL est retourne un tableau de données de type ResultSet, Exemple: String sql="select * from articles"; ResultSet rec=inst.executequery(sql); L éth d t U d t E é t i t ti SQLd La méthode executeupdate: Exécute une instruction SQL de type INSERT, UPDATE ou DELETE et retourne le nombre d enregistrements affectés: int executeupdate(string sql)

Traitement des résultats Les enregisrements de ResultSet t sont numérotés à partir de 1, Un objet de type ResultSet posséde aussi un pointeur sur la ligne en cours. Méthodes de l interface ResultSet: boolean first(),next(), previous(), last() boolean absolute(int ligne) Array getarray(int i) : retourne une colonne dans un tableau Array ygetarray(string g colname) void afterlast() void beforefirst() cancelrowupdates() void deleterow() int findcolumn(string NomColonne) : renvoie le numéro de la colonne. double getdouble(int col) : retourne le champ de la colonne col dans une variable ibl de type Double. void updatedouble(string columnname, double x)

Fermeture de la connexion Con.close()

Exemple(1) /*Exemple de connexion à une base de données en utilisant un *pilote ODBC * * */ import java.sql. *; public class Db1 { Db1(){ try{ //1- Chargement du pilote. Class.forName ("sun.jdbc.odbc.jdbcodbcdriver" ); //2- Connexion Connection con =DriverManager.getConnection ("jdbc:odbc:galerie" ); //3- Création de l'instruction Statement inst =con. createstatement (); //4- Exécution de la requête SQL String sql ="select * from articles" ; ResultSet rec =inst. executequery (sql);

Exemple(2) // 5- Traitement des résultats while (rec. next ()){ System.out. println (rec. getstring (1) + " " + rec. getstring (2)); } // 6- Fermeture de la connexion rec. close (); } // Gestion des exceptions catch (ClassNotFoundException e ){ System.out. println ("Pilote introuvable:" + e.getmessage g () ); } catch (SQLException e){ System.out. println ("Erreur de données:" + e.getmessage () ); } } public static void main (String [] args ){ //Création d'une instance de la classe. new Db1();}}

Exemple(1) /*Exemple de connexion à une base de données en utilisant un *pilote JDBC pour les bases de données de type MS ACCESS *Lien de téléchargement: http://www.aveconnect.com/downloads.htm#1022 * * */ import java.sql. *; public class Db2 { Db1(){ try{ //1- Chargement du pilote. Class.forName( forname("com.atinav.access.jdbc2.driver access Driver"); //2- Connexion Connection con =DriverManager.getConnection ("jdbc:atinav:localhost:7227:h:\\atelier2\\galerie jdbc:atinav:localhost:7227:h:\\atelier2\\galerie.mdb mdb"); //3- Création de l'instruction Statement inst =con. createstatement (); //4- Exécution de la requête SQL String sql ="select * from articles" ; ResultSet rec =inst. executequery (sql);