Rechercher : dans
Par :

ODBC et JDBC

Dernière réponse le 19 sep 2003 à 18:15:11 Sylvain, le 18 sep 2003 à 01:11:44 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais entendre votre avis a propos des differences entre JDBC et ODBC.


D'apres mes recherches les differences entre JDBC et ODBC sont :

1- ODBC n'est pas portable (ne tourne que sur Windows) alors que JDBC peut tourner quelque soit le systeme d'exploitation

2- On ne peut utiliser JDBC que'avec JAVA alors que ODBC est multi-langage (C++, VB, Delphi ...)

3- ODBC necessite une installation sur chaque poste d'excecution, JDBC non

4- Avec ODBC ,pour ecrire un programme qui puisse tourner sur n'importe quel type de bases de donnees (Oracle, Access, Db2, Informix ...), il faut ecrire toutes les requetes SQL en prenant soin d'utiliser le standard commun a tous ces SGBD.

- Avec JDBC, il suffit d'ecrire les requetes SQL en respectant les syntaxe SQL propres a JAVA afin d'etre certain que les requetes SQL seront comprises par l'ensemble des SGBD (a condition d'avoir le driver correspondant).

5- JDBC est plutot utilise pour les applications WEB.

Et j'ai egalement deux questions:

6- Est il possible avec JDBC et ODBC de creer la base de donnees (par exemple au moment de l'installation d'une application) en fonction du SGBD.


7- JDBC est plus long en terme de temps d'acces a la base de donnees qu'ODBC


Merci de me corriger si ce que j'ai ecrit n'est pas correct ou de le completer si il y a d'autres differences importantes que je n'ai pas mentionnee.

Merci d'avance

Meilleures réponses pour « ODBC et JDBC » dans :
Java - L'API JDBC Voir Introduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Télécharger DTM ODBC Manager VoirSi vous êtes développeur ou administrateur de base de données et que vous deviez transférer des définitions de sources de données entre les ordinateurs, il vous faut rapidement un outil puissant. DTM ODBC Manager est un gestionnaire de données ODBC....
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
Introduction à JDBC VoirIntroduction à JDBC 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...
ODBC (Open DataBase Connectivity) VoirQu'appelle-t-on ODBC? 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...

1

darkhorkeu, le 18 sep 2003 à 09:06:19

Salut

Je ne m'y connais pas très bien sur ce domaine, mais je crois que JDBC est un complément à l'ODBC pour pouvoir programmer en Java en utilisant le système ODBC.

JDBC n'est pas un équivalent ou en remplaçant de l'ODBC comme je le comprend dans ton message.

Ses 2 mécanismes sont plutôt faits pour fonctionner ensemble.

Attendons les renseignements d'une tierce prsonne...

++

Répondre à darkhorkeu

2

g, le 18 sep 2003 à 09:13:13

Dark a raison

JDBC est une API de programmation java permettant d'attaquer une bdd. ODBC est un driver permettant d'attaquer les bases microsoft (principalement Access)
Si tu veux créer un eappli en Java qui attaque access; il te faut JDBC puis un "bridge" JDBC/ODBC puis une couche ODBC sur la base Access !!! ouf
Si en plus tu veux faire ca a distance il te faut les RMI/JDBC permettant a java de faire du JDBC comme si il etait en local..
A+

Répondre à g

3

Sylvain, le 18 sep 2003 à 15:51:32

Merci pour ces informations.

A votre avis, sachant qu'il existe des drivers ODBC pour pratiquement tous les SGBD (pas seulement pour Microsoft), n'est il pas possible de developper une application (en VB par exemple et utilisant ODBC) qui a l'installation creerait la base de donnees en fonction du SGBD present ?

En gros, est ce que grace aux differents drivers ODBC on peut connecter une meme application a differents types de SGBD sans changer le code (uniquement en choisissant le driver ODCB correspondant au SGBD) ?

Répondre à Sylvain

4

darkhorkeu, le 18 sep 2003 à 16:10:07

Oui, normalement, c'est la tout l'intérêt de l'ODBC.

Cependant dans ce cas, il faut faire attention aux types des données vu qu'elles peuvent être différentes d'une base à l'autre.
C'est pourquoi il faut programmer en fonction d'un standard SQL. La norme ANSI SQL-92 (SQL2) est le standard respecté par la plupart des SGBDR actuels.
SQL-99 (SQL3) est le nouveau standard.

Je suis actuellement sur un projet de ce genre mais je n'y connais pas encore grand chose.
Si j'ai plus de détail, je t'en fais part.

a+

Darkhorkeu

Répondre à darkhorkeu

5

Sylvain, le 18 sep 2003 à 18:30:15

En effet, ca m'interesse si tu as plus de details!

D'ailleurs est ce que tu sais si il est possible de creer une base de donnees ODBC lors de l'installation d'une application par exemple ?

Sylvain

Répondre à Sylvain

6

darkhorkeu, le 19 sep 2003 à 08:43:01

Pour le moment, je n'en est aucune idée.

C'est peut-être possible en utilisant les fonctions présentées aux pages suivantes :
http://msdn.microsoft.com/library/en-us/odbc/htm/odch22pr.as­p
http://msdn.microsoft.com/library/en-us/odbc/htm/odch23pr.as­p

Certaines de ses fonctions permettent de configurer les drivers et les DSN, mais également de créer des sources de données.

ex : ConfigDriver, ConfigDSN, SQLConfigDataSource, SQLCreateDataSource

Darkhorkeu

Répondre à darkhorkeu

7

darkhorkeu, le 19 sep 2003 à 16:03:43

C'est juste pour faire une remarque.

Pour utiliser la Java avec une base de données, on n'est pas forcé d'utiliser un bridge JDBC/ODBC.
En fait, on peut se connecter directement à une base de données grâce au driver JDBC, sans avoir besoin de l'ODBC. Il existe un driver JDBC différent pour chaque bdd existante.

Si tu ne veux pas développer en Java, c'est sûr que JDBC te sera inutil.

Au fait Sylvain, suite à ta question <5>, ODBC n'est pas une bdd, c'est un driver qui te permet de t'y connecter. ODBC est une "source de données" que tu peut apparement créer et modifier par l'intermédiaire des fonctions que j'ai citées précèdement.

Darkhorkeu

Répondre à darkhorkeu

8

darkhorkeu, le 19 sep 2003 à 16:25:28

Un autre système pourrait t'intéresser Sylvain le C-JDBC (si le Java ne te dérange pas).

Selon ce que j'ai compris, il doit permettre d'utiliser un même programme sur différente bdd. C'estbien ce que tu veux?

En plus, il gère apparement le RMI/JDBC.

plus d'infos sur le site :
http://c-jdbc.objectweb.org
et va voir la documentation

Darkhorkeu

Répondre à darkhorkeu

9

Sylvain, le 19 sep 2003 à 16:40:04

Merci pour ces infos, je vais aller voir ca de plus pres.

Par ailleurs, est ce que tu connais un peu le X/Open SQL CAE specification.

D'apres l'article ci-dessous :

http://msdn.microsoft.com/library/default.asp?url=/library/e­n-us/odbc/htm/odch02pr_16.asp

Ce serait une grammaire SQL pour ODBC qui permettrait de compenser les differences de syntaxes SQL entre les differents SGBDs.

Répondre à Sylvain

10

 darkhorkeu, le 19 sep 2003 à 18:15:11

Non, je ne connais pas du tout le X/Open SQL CAE.

Répondre à darkhorkeu