Connexion base de données

Slides:



Advertisements
Présentations similaires
Réaliser en Java un programme client d’une Base de Données
Advertisements

PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
IChannelIPrivilegedIMultithreadedIServantICacheableIMimeResponse Type custom : les interfaces de programmations IChannel : canal standard, stateful 5 méthodes.
Introduction Fonctionnement PluginsConfigurationLes données Le framework MAG Framework de conception de canaux complexes Implémente IChannel Possède son.
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
Introspection et Réflexion Manipulation dynamique de code Java.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Arbres Un premier exemple Contenu Rendu Ecouteurs Parcours
(Classes prédéfinies – API Java)
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Programmer en JAVA par Tama
JAV - TD 6 Structures de données JAVA
Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
UV JDBC Module Java Expert
Programmation dapplications Bases de données avec Java INT.
Bases de données Objet singleton pour la connexion
JDBC: manipuler une base de données en Java IFT6800 – E 2007 Jian-Yun Nie.
Les entrées /sorties en Java François Bonneville
Chapitre IV Object, interfaces, classes imbriquées.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
HIBERNATE Framework de mapping objet-relationnel
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
JDBC Java Data Base Connectivity. Java DataBase Connectivity (JDBC) Cette API est développée par Sun en collaboration avec les grands éditeurs de SGBD.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
JDBC ou comment manipuler une base de données en Java ?
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
1 Développement des Applications des Bases de Données Chapitre 6, Sections
NSY102 1 Concurrence compléments Notes de cours Cnam Paris jean-michel Douin, douin au cnam point fr 19 Mars 2007.
Programmation par Objets et Java
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Développement des Applications des Bases de Données Chapitre 6, Sections
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
Design Pattern: Decorator
Multi-Thread Jian-Yun Nie
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Juin 2006~ Brigitte Groléas ~ 1 J530 (JBD) Java : Base de Données.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
Architecture n tiers(Java EE)
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Héritage Conception par Objet et programmation Java
JDBC - p. 1 JDBC. JDBC - p. 2 Objectifs Fournir un accès homogène aux SGBDR Abstraction des SGBDR cibles Requêtes SQL Simple à mettre en oeuvre Core API.
Interface Java – Oracle : JDBC. I-2 JDBC (Java DataBase Connectivity) : interface API (Application Programming Interface) qui permet d’exécuter des ordres.
JDBC Présenter par: Mouctar Souleymane Bah Enseignent: Dr Amer Draâ
JDBC (Complément de cours) IFT 3030
Bases de données Singleton pour la connexion
Développement d’applications interactives III Semaine 03 Version Automne 2015.
JDBC - Y. Bekkers1 Java et les SGBDR Librairies JDBC Yves Bekkers.
ISI5 Développement d’interfaces Homme-Machine
Bases de données Singleton pour la connexion
Transcription de la présentation:

Connexion base de données Wael Mallek Imed Amri Mini-projets Java-BD 2011-2012

JDBC API ? API d’interaction avec un SGBD contenant : Permet de: un ensemble de classes et d’interfaces ne fournit pas les classes qui implantent les interfaces Permet de: Établir une connexion avec un SGBD Envoyer des requêtes SQL Récupérer des résultats de requêtes

Drivers ? Drivers chaque SGBD utilise un pilote (driver) qui lui est propre et qui permet de convertir les requêtes JDBC dans le langage natif du SGBD le driver est un ensemble de classes qui implantent les interfaces de JDBC les drivers sont le lien entre le programme Java et le SGBD

Base MySQL Créer une base mysql ‘esprit’

Projet Java Créer un nouveau Projet : Java Application Ajouter la Librairie MySQL JDBC Driver

Méthode Main Les Attribues de la classes : static String url = "jdbc:mysql://localhost/esprit"; static String user = "root"; static String pwd = ""; static Connection conn; static Statement ste;

Méthode Main Charger le Driver Etablir une connexion Class.forName("com.mysql.jdbc.Driver"); Etablir une connexion conn = DriverManager.getConnection(url, user, pwd); Traiter les exceptions ClassNotFoundException SQLException

Méthode Main Les Attribues de la classes : static String url = "jdbc:mysql://localhost/esprit"; static String user = "root"; static String pwd = ""; static Connection conn; static Statement ste;

Méthode Main Créer un STATEMENT Requete SQL d’ajout ste = conn.createStatement(); Requete SQL d’ajout String req = "Insert into personne values("+null+",'A2','3info')"; Executer la Requete ste.executeUpdate(req) (insert, update, delete) ste.executeQuery(req) select

Méthodes CRUD Créer 4 méthodes static : static void Ajouter(String Nom, String Prenom){ } static void UpdatePrenom(int id, String Prenom){ } static void Delete(int id){ } static void AfficherAll(){ } Utiliser le ResultSet pour récupérer le résultat de executeQuery ajouter throws SQLException pour chaque Methode

Correspondance Java / BD Type JDBC/SQL Méthode Java CHAR, VARCHAR getString() BINARY, VARBINARY getBytes() BIT getBoolean() INTEGER getInt() BIGINT getLong() SMALLINT getShort() REAL getFloat() DOUBLE, FLOAT getDouble() DATE getDate() TIME getTime() TIME STAMP getTimeStamp()

Design Pattern Singleton : permet d’instancier l’objet qu’une seule fois.

Design Pattern Singleton : (dans notre cas) un attribut statique private static Connection conn; un constructeur déclaré en privé private MyConnection() { … } une méthode statique servant de pseudo-constructeur public static Connection getInstance() { … }

Design Pattern DAO : Permet de regrouper les accès aux données persistantes dans des classes à part. Séparation entre la couche Métier et les données.

Les Packages Créer 4 packages Entite DAO Metier Test Classe Personne Classe PersonneDAO Metier Classe MyConnection Test Classe Main

Metier private static Connection conn; private MyConnection() { } public static Connection getInstance(){ if(conn==null) { MyConnection aa = new MyConnection(); } return conn;

Entite Créer une classe Personne Générer les constructeurs private int id; private String nom; private String prenom; Générer les constructeurs Générer les Getters et les Setters

DAO Créer une Classe PersonneDAO Méthodes CRUD Connection conn=MyConnection.getInstance(); Statement ste; Méthodes CRUD public int Ajouter (Personne p) public Vector<Personne> readAll() public boolean update (Personne p) public boolean delete (int id) public Personne findById (int id)

Ajouter public int Ajouter(Personne p) throws SQLException { int cle=0; ste=conn.createStatement(); String reqinsert ="INSERT INTO `personne` ( `nom` , `prenom` ) " + "VALUES ('"+p.getNom()+"', '"+p.getPrenom()+"');"; ste.executeUpdate(reqinsert); ResultSet rs=ste.getGeneratedKeys(); while (rs.next()) { cle=rs.getInt(1); } return cle;

DAO Créer une Classe PersonneDAO Méthodes CRUD Connection conn=MyConnection.getInstance(); Statement ste; Méthodes CRUD public int Ajouter (Personne p) public Vector<Personne> readAll() public boolean update (Personne p) public boolean delete (int id) public Personne findById (int id)

readAll() public Vector<Personne> readAll() throws SQLException{ Vector<Personne> v=new Vector<Personne>(); Statement ste=conn.createStatement(); String req="Select * from personne;"; ResultSet rs=ste.executeQuery(req); while (rs.next()) { Personne p=new Personne(rs.getInt(1), rs.getString(2), rs.getString(3)); v.add(p); } return v;

DAO Créer une Classe PersonneDAO Méthodes CRUD Connection conn=MyConnection.getInstance(); Statement ste; Méthodes CRUD public int Ajouter (Personne p) public Vector<Personne> readAll() public boolean update (Personne p) public boolean delete (int id) public Personne findById (int id)

update public boolean update(Personne p) throws SQLException { boolean test=false; Statement ste=conn.createStatement(); String req="UPDATE `j2me`.`personne` SET `nom` ='"+p.getNom()+"' WHERE `personne`.`id` ="+p.getId()+";"; int res=ste.executeUpdate(req); if(res!=0) test=true; return test; }

DAO Créer une Classe PersonneDAO Méthodes CRUD Connection conn=MyConnection.getInstance(); Statement ste; Méthodes CRUD public int Ajouter (Personne p) public Vector<Personne> readAll() public boolean update (Personne p) public boolean delete (int id) public Personne findById (int id)

delete public boolean delete(int id) throws SQLException {boolean test=false; Statement ste=conn.createStatement(); String req="DELETE FROM `j2me`.`personne` WHERE `personne`.`id` ='"+id+"';"; int res=ste.executeUpdate(req); if(res!=0) test=true; return test; }

DAO Créer une Classe PersonneDAO Méthodes CRUD Connection conn=MyConnection.getInstance(); Statement ste; Méthodes CRUD public int Ajouter (Personne p) public Vector<Personne> readAll() public boolean update (Personne p) public boolean delete (int id) public Personne findById (int id)

FindByID public Personne findById(int id){ Personne p = null; try { ste = conn.createStatement(); String req="select * from personne where id="+id; ResultSet rs=ste.executeQuery(req); rs.next(); p=new Personne(rs.getInt(1),rs.getString(2),rs.getString(3)); } catch (SQLException ex) { System.out.println("id n'existe pas"); } return p;

Test Instancier une PersonneDAO Instancier une Personne PersonneDAO per=new PersonneDAO(); Instancier une Personne Personne p=new Personne(1,"esprit", "ecole"); Ajouter une personne Lire toutes les informations des personnes per.Ajouter(p); System.out.println(per.readAll());

Void Main public static void main(String[] args) { PersonneDAO per=new PersonneDAO(); Personne p=new Personne(1,"ffghf", "gfghg"); try { per.Ajouter(p); System.out.println(per.readAll()); } catch (SQLException ex) { }