Java Database Connectivity

Java Database Connectivity (JDBC)は、 と関係データベースの接続のためのAPI。ODBCをベースにサン・マイクロシステムズおよび が共同で開発していると言われている。そのためドライバのデフォルトの自動コミットの有効化など似ている点も多々ある。
 においてSQLを使用して、関係データベース管理システム (RDBMS) などと接続する機能を標準化（抽象化）している。
元はJDK 1.0の拡張APIという位置付けであったが、JDK 1.1で正式にJavaの基本SDKに同梱されるようになった。標準的な機能 (API) は に含まれている。JDBCの規格は とは独立して行われており、APIのアップデートは随時行われている。
ドライバ.
JDBCを利用する為には、100% 製の が同梱されている 以降のSDKを除き、各DBMS用のJDBCドライバを用意する必要がある。現在開発が行われているほとんどのデータベースではJDBCドライバが用意されている。
これらのドライバを管理するのが JDBC ドライバ・マネージャーである。JDBC ドライバ・マネージャーを用いると、複数のJDBCドライバを同時に利用することができる。JDBCを使うユーザーは、JDBCドライバをロードし（多くはメソッドを利用して呼び出される。また、JDBC4.0以降であればドライバの自動解決が機能するため、メソッドを使うことができる。これらのメソッドを利用した場合コンパイラによるそのドライバの依存チェックが行われない為、コンパイル時にドライバをあらかじめ参照できる様に設定しなくて良いなどの利点がある）、JDBC ドライバ・マネージャーを使ってデータベースドライバを取得し、データベースと接続を行って、データベースアプリケーションを記述する事になる。
また、 のオブジェクト指向言語の特性を生かして、各ドライバはJDBCの基本APIに無い機能を同梱する事もできる。この場合、JDBC APIのスーパーセットのクラスを呼び出すことでこれらの機能を利用可能にすることができる。
たとえば、初期のオラクルの () 用JDBCドライバは、当時の JDBC API が BLOB、CLOBに対応していなかったため、独自に機能拡張をしてBLOBとCLOBに対応していた。
JDBCドライバのタイプ.
JDBCドライバは4つのタイプに分類されている。
タイプ1、タイプ2はDBMSのDLLファイルやライブラリファイルを呼び出す形となるため、JVMのメモリー管理外となる。タイプ3、タイプ4についてはJVM上で のクラスとして実装されているためJVM上のガベージコレクションの対象となり管理が行いやすく、流れとしてはTYPE4が主流となっている。
とデータベース.
後に大規模システム開発において、 によるアプリケーションソフトウェア開発が一般的になるきっかけとなったのは、関係データベースアクセスを から行う JDBC が発表されてからである。
さらに で大規模エンタープライズシステムを開発するための仕様「」には、関係データベースの表（テーブル）の行データを、 のオブジェクトに1対1に対応させ、オブジェクト内容の永続化＝行データの保存というデータのリンクと、オブジェクトのメソッド呼び出し＝データベースへのトランザクション処理を同期させる特殊な を動作・管理する機構である「エンタープライズ ビーンズ｣ の「エンティティ・ビーン」が導入された。
EJB 2.1までは、オブジェクト-関係の間にあるインピーダンスミスマッチにより関係データベースの機能を十分に生かせないことや性能面の問題があったが、EJB 3.0以後の仕様により改善されてきている。
EJB 3.2で「エンティティ・ビーン」が廃止され、Java SE および Java EE（現・Jakarta EE）共通向けの、独立した永続化フレームワークJava Persistence API (JPA) に進化した。