ODBCとJDBCの違い

目次

ODBCとJDBCの違い

項目 ODBC JDBC
正式名称 Open Database Connectivity Java Database Connectivity
主な利用言語 C、C++、Python、Excel、BIツールなど Java
提供元・標準 Microsoftが提唱した汎用規格 Javaの標準API
ドライバ ODBCドライバ JDBCドライバ
主な利用環境 Windowsアプリ、Excel、Access、各種ツール Javaアプリ、Tomcat、Springなど
接続設定 DSN(データソース名)を使う場合がある JDBC URLを使う
OS依存性 ドライバやDSN設定がOSに依存しやすい Java環境で比較的移植しやすい

ODBCとは

ODBCは、さまざまなアプリケーションからデータベースに接続するための共通規格です。

たとえば、ExcelからOracleやSQLServerへ接続する場合などに使われます。

Excel

ODBC

Oracle用ODBCドライバ

Oracle Database

接続時には、Windowsの「ODBCデータソース」で設定したDSNを使用することがあります。

DSN名:SalesDB
接続先:db.example.com
ポート:1521
データベース:ORCL

JDBCとは

JDBCは、Javaプログラムからデータベースへ接続するための標準APIです。

たとえば、Tomcat上で動くJavaのWebアプリケーションがOracleへ接続するときに使います。

Javaアプリ

JDBC API

OracleJDBCドライバ

Oracle Database

 

接続先は、一般的にJDBC URLで指定します。

Oracleの例

jdbc:oracle:thin:@db.example.com:1521/ORCL

PostgreSQLの例

jdbc:postgresql://db.example.com:5432/sampledb

 

Javaコード例

Connection connection = DriverManager.getConnection(
"jdbc:postgresql://db.example.com:5432/sampledb",
"user1",
"password"
);

 

ドライバの違い

ODBCでもJDBCでも、実際の通信にはデータベースごとのドライバが必要です。

たとえばOracleの場合は、次のようになります。

ODBCの場合:Oracle ODBC Driver
JDBCの場合:Oracle JDBC Driver
JDBCドライバのファイル例:ojdbc8.jar、ojdbc11.jar

 

ドライバは、共通のODBC・JDBC命令を、各データベース固有の通信方式へ変換します。

アプリケーション
↓ 共通の命令
ODBCまたはJDBC

データベース専用ドライバ
↓ 固有の通信
データベース

関連の記事

Java PostgreSQLにJDBC接続してselectするサンプル

△上に戻る