目次
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 ↓ データベース専用ドライバ ↓ 固有の通信 データベース |
関連の記事
