ODBC signifie Open DataBase Connectivity. Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché.
Le gestionnaire ODBC est présent sur les systèmes Windows. Il existe des implémentations sur d'autres plates-formes, notamment des plates-formes UNIX/Linux et Macintosh bien sur.
ODBC est un ensemble API/pilote permettant la communication entre des clients de bases de données et les systèmes de gestion de base de données du marché.
ODBC est une interface procédurale : ce n'est pas un protocole à destination d'un serveur, comme peut l'être par exemple le protocole HTTP. L'API est accessible aux applications clientes sous la forme de bibliothèques à liaison dynamique. Ces bibliothèques, conçues habituellement par le fournisseur de la base, constituent le pilote de la base en question et doivent être installées sur le poste client.
ODBC (ou SQLCLI) ne visent pas spécifiquement des bases de données relationnelles — la plus connue étant certainement Microsoft Access, mais toute base de donnée reconnaissant le langage SQL — et ce n'est pas tout à fait la même chose. Il existe ainsi des pilotes ODBC ou JDBC pour des bases de données qui ne sont pas des bases de données relationnelles.
La technologie ODBC permet d'interfacer de façon standard une application à n'importe quel serveur de bases de données, pour peu que celui-ci possède un driver ODBC (la quasi-totalité des SGBD possède un tel pilote).
Inconvénients de la technologie ODBC
Bien que ODBC permette un interfaçage avec des bases de données indépendamment du SGBD, cette technologie reste une solution propriétaire de Microsoft.
Cela se traduit par une dépendance de la plateforme (ODBC ne fonctionne que sur les plateformes Microsoft Windows). D'autre part, ODBC est fortement lié au langage C (utilisation de pointeurs), et ODBC utilise des paramètres non standards, ce qui le rend difficile à mettre en oeuvre directement dans les programmes.
---------------------- ---------------------- -------------------- ------------------
La technologie JDBC (Java DataBase Connectivity) est une API fournie avec Java (depuis sa version 1.1) permettant de se connecter à des bases de données, c'est-à-dire que JDBC constitue un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD).
L’API JDBC reprend in extenso la spécification ODBC ; ce qui est d'ailleurs clairement revendiqué dans la documentation Java.
L'API JDBC a été développée de telle façon à permettre à un programme de se connecter à n'importe quelle base de données en utilisant la même syntaxe, c'est-à-dire que l'API JDBC est indépendante du SGBD.
De plus, JDBC bénéficie des avantages de Java, dont la portabilité du code, ce qui lui vaut en plus d'être indépendant de la base de données d'être indépendant de la plate-forme sur laquelle elle s'exécute.
Dans un système client/serveur, l'accès aux bases de données avec JDBC peut s'effectuer selon un modèle à deux couches ou bien un modèle à trois couches.
Pour le modèle à deux couches, une application Java est intimement liée avec une base de données. A cet effet, il faut bien évidemment disposer, pour la base de données concernée, d'un pilote JDBC adéquat. Les instructions SQL sont directement envoyées à la base, cette dernière renvoyant les résultats par un biais tout aussi direct. La base de données peut être exécutée sur la machine locale (celle sur laquelle l'application Java fonctionne) ou bien sur tout autre ordinateur du réseau (Intranet ou Internet).
Dans le modèle à 3 couches, une troisième couche (le serveur d'application) vient s'intercaler entre l'application Java et la base de données. Les instructions SQL et les résultats livrés en retour y transitent. Ce modèle présente l'avantage d'intégrer dans cette couche un contrôle d'accès.
JDBC permet aux applications Java d'accéder par le biais d'une interface commune à des sources de données pour lesquelles il existe des pilotes JDBC. Normalement, il s'agit d'une base de données relationnelle, et des pilotes JDBC sont disponibles pour tous les systèmes connus de bases de données relationnelles.
Il existe des pilotes commerciaux et gratuits. Ces pilotes appartiennent à un de ces types :
* Type 1 : Pilotes agissant comme passerelle en permettant l'accès à une base de données grâce à une autre technologie (JDBC-ODBC via ODBC) ;
* Type 2 : Pilotes d'API natifs. C'est un mélange de pilotes natifs et de pilotes Java. Les appels JDBC sont convertis en appels natifs pour le serveur de bases de données (Oracle, Sybase, ou autres) généralement en C ou en C++ ;
* Type 3 : Pilotes convertissant les appels JDBC en un protocole indépendant de la base de données. Un serveur convertit ensuite ceux-ci dans le protocole requis (modèle à 3 couches) ;
* Type 4 : Pilotes convertissant les appels JDBC directement en un protocole réseau exploité par la base de données. Ces pilotes encapsulent directement l'interface cliente de la base de données et sont fournis par les éditeurs de base de données.
------------ ----------- -------------- --------------- --------------
Pour en savoir plus sur ODBC je conseille fortement de lire et utiliser l'excellente documentation MySQL 5.0 Reference Manual consultable sur ce lien :
http://dev.mysql.com/doc/refman/5.0/fr/odbc-connector.html
Et qui decrit principalement :
Introduction to MyODBC
General Information About ODBC and MyODBC
Comment installer MyODBC
Installer MyODBC depuis une distribution binaire sur Windows
Installing MyODBC from a Binary Distribution on Unix
Installer MyODBC depuis la version source sur Windows
Installing MyODBC from a Source Distribution on Unix
MyODBC Configuration
Problèmes avec les connexions MyODBC
MyODBC et Microsoft Access
MyODBC et Microsoft VBA et ASP
MyODBC et les outils tierce partie
Fonctionnalités générales de MyODBC
Instructions de base pour utiliser MyODBC
Table de référence MyODBC
MyODBC Data Types
Codes d'erreurs MyODBC
---------------- ---------------- ---------- ---------
Pour en savoir plus sur JDBC je recommande l'excellente FAQ de java.developpez.com consultable depuis ce lien :
http://java.developpez.com/faq/jdbc/
vous y trouverez entre autres choses :
Qu'est-ce que JDBC ?
Que peut on faire avec JDBC ?
Quels sont les différents types de driver JDBC ?
A quels SGBDR puis-je me connecter avec JDBC ?
Architecture générale de JDBC.
Quelles sont les différences entre JDBC 1.0, 2.0 et 3.0 ?
Ou trouver plus d'informations sur JDBC ?
Ou trouver plus d'informations sur SQL et les SGBDR ?
ainsi que le tres bon Cours Java de Serge Tahé :
bases du langage, classes & interfaces, interfaces graphiques, JDBC, Programmation TCP-IP, RMI, CORBA.
http://tahe.developpez.com/java/cours/