Peut-on utiliser odbc uniquement avec java pour se connecter à des bases de données?


Devons-nous toujours utiliser jdbc avec des programmes Java pour établir une connectivité avec la base de données ou pouvons-nous utiliser uniquement odbc pour nous connecter à des bases de données avec des programmes Java?

Author: Boris Pavlović, 2010-12-07

6 answers

Sun JRE contient un pilote JDBC/ODBC intégré (sun.jdbc.ODBC.JdbcOdbcDriver). Voici un exemple de comment l'utiliser: http://www.javacoffeebreak.com/articles/jdbc/

Le pilote a été supprimé dans Oracle JRE 8, utilisez donc Java version 7 ou antérieure.

 4
Author: rustyx, 2015-03-12 13:13:00

Vous ne pouvez pas utiliser ODBCdirectement car votre programme JAVA doit utiliser le pilote JDBC pour interagir avec la base de données.

 1
Author: systempuntoout, 2010-12-07 15:55:15

Comme d'autres l'ont mentionné, vous pouvez utiliser le pilote de pont JDBC/ODBC. (Répéter le lien de @Rustam ici: http://www.javacoffeebreak.com/articles/jdbc/).

Il y a quelques choses à garder à l'esprit lors de l'utilisation du pont JDBC-ODBC. Premièrement: son utilisation n'a pas été recommandée par Sun pour diverses raisons. Les trois principales implications de l'utilisation du bridge au lieu d'un pilote JDBC approprié sont:

  • Toutes les fonctionnalités de JDBC ne sont pas prises en charge. ODBC est une API plus restrictive, donc certains les fonctionnalités (comme les points de sauvegarde dans les transactions) ne sont pas prises en charge. Cependant, les caractéristiques les plus courantes telles que les instructions préparées sont.
  • La traduction du code natif vers Java runtime est beaucoup plus lente que si vous faisiez tout en Java.
  • Le pilote JDBC / ODBC est plus fragile que le pilote JDBC approprié. Essentiellement, si les implémenteurs du pilote ODBC ne font pas les choses d'une certaine manière, le pilote JDBC échouera et lancera des exceptions supplémentaires que vous ne pourrez peut-être pas attraper. Dans en particulier, vous serez plus sensible aux fuites de mémoire. Si vous ne construisez pas un service de longue durée, vous pourriez être OK.

Cela dit, le pilote JDBC/ODBC fonctionnera pour une base de données qui n'a pas de support JDBC direct (la plupart des bases de données majeures le font). Parfois, vous n'avez pas besoin de toutes ces fonctionnalités de fantaisie et vous voulez juste jeter quelque chose ensemble rapidement. Le pilote JDBC / ODBC est conçu pour cela.

 1
Author: Berin Loritsch, 2010-12-07 15:59:41

Réponse courte: NON.

ODBC ( Open Database Connectivity ) masque les détails de la base de données à laquelle vous parlez. Cela n'a rien à voir avec Java. Si les programmes java doivent parler à la base de données, ils doivent interagir avec les pilotes ODBC. Pour interagir avec les pilotes ODBC, vous avez besoin de pilotes JDBC-ODBC qui masquent les détails de la façon dont la communication se produit. Vous pouvez à peu près faire quelques appels de méthode et tout est prêt. Le pouvoir de l'abstraction.

 1
Author: Vanchinathan Chandrasekaran, 2010-12-07 16:01:03

Vous pouvez utiliser Pilotes JDBC-ODBC

 0
Author: Boris Pavlović, 2010-12-07 15:45:57

Ma compréhension est que vous ne voudriez pas - cela deviendrait fastidieux et sujet aux erreurs lorsque les choses ne vont pas parfaitement.

C'est-à-dire que vous ne pouvez pas attraper une exception lorsque/si vous invoquez une DLL non java à partir de java.

 0
Author: Dave, 2010-12-07 16:05:52