JDBCの基礎知識 |
|
JDBCとはJava Database Connectivityの略で、Javaアプリケーションからデータベースを操作するAPIのことです。JDKのコアAPIとしてjava.sqlパッケージに実装されています。JDBCは以下のような特徴を持っています。
●DBMSに非依存である
JDBCは、Javaアプリケーションから使用するJDBCドライバマネージャと、DBMSに依存するJDBCドライバを分けることにより、DBMSに依存しない環境を提供しています。
●高機能で洗練されたメソッド
JDBCは比較的低レベルのAPIといわれていますが、高機能で洗練されたメソッドが提供されているので、容易にプログラムを記述することができます。また、標準的なSQLを実行するメソッドを持っているのでDBMSに依存しない開発が可能になります。
●既存のデータ資産を利用可能
主要なDBMSベンダからJDBCドライバが提供されているので、すでにあるデータ資産を加工することなく利用できます。
JDBCの基本構成図は以下のようになります。
![]() |
それでは、各構成要素について説明していきましょう。
■JDBC API
JDBC APIはアプリケーションとJDBCドライバマネージャとの接続インターフェイスです。
- JavaプログラムからDBサーバへ接続する
- SQL文を組み立て、DBサーバで実行させる
- DBサーバが処理した結果を取り出す
- DBの情報、処理結果に関する情報などを取り出す
などの機能を実行するためのインタ ーフェイスが提供されています。
■JDBCドライバマネージャ
JDBCドライバマネージャはJDBCアーキテクチャの中核をなすモジュールで、JavaアプリケーションとJDBCドライバの接続を供給します。
■JDBCドライバAPI
JDBCドライバAPIはJDBCドライバマネージャと、各DBMSベンダから提供されるJDBCドライバとの接続インターフェイスです。
■JDBCドライバ
JDBCドライバとDBMSの接続を提供するモジュールです。通常、JDBCドライバは各DBMSベンダから提供され、DBMSとの接続形態により4種類に大別できます。詳しくは「JDBCドライバの種類と使い分けを教えてください」を参照してください。
このようにJDBCは、Javaアプリケーションから使用するJDBCドライバマネージャと、DBMSに依存するJDBCドライバを分けることにより、DBMSベンダに依存しない環境を提供しています。
Java言語でJDBCを使用すれば、プラットフォームにも、DBMSベンダにも依存しない、システム開発が可能になるのです。
![]() |
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
||
|
||
![]() |
Java Agile 記事ランキング
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- 2024年6月現在、本稼働環境のアプリで最も利用されているのは「Java 17」 New Relicがレポートを発表
- AWS、OpenJDKディストリビューション最新版「Amazon Corretto 22」をリリース
- Spring Bootユーザーなら知っておきたい「Spring Boot Actuator」 本番環境での運用時にどう役立つ?
- Springにおける「RestController」と「Controller」の違いとは
- PlayStation Network開発チームは「増え続けるスクラムチームの管理問題」をどう解決したのか
- Spring BootアプリをAWSにデプロイするには?
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- Oracle、「Java 23」を提供開始 機能強化と変更点をおさらい
- PlayStation Network開発チームは「増え続けるスクラムチームの管理問題」をどう解決したのか
- Springにおける「RestController」と「Controller」の違いとは
- Spring Bootプロジェクトを素早く作成できる「Spring Initializr」の使い方
- 今こそ「Java」を学びたくなる10個の理由