「JDBCってそもそも何?」
「データベースにも種類があるの?オススメは?」
「JDBCを使いたいけど、Eclipseでの具体的なやり方が分からない」
こういった疑問に答えます。
本記事の内容
- JDBCとは?
- オススメデータベース5選
- EclipseでJDBCを使う環境構築の手順
- JDBCドライバの設定方法
- 実際に動くサンプルコード
- Eclipse DTPを使ったGUIでのDB操作
- 接続テストとよくあるエラーの対処法
この記事を書いている私は、大学生の時にプログラミングを始め、現在、プログラミング経験が5年ほどです。現在は、某大手IT企業でシステムエンジニアとして働いています。
JDBCとは?
JDBCとは、Java DataBase Connectivityの略称で、Javaアプリケーションからデータベースを操作するためのAPIのことです。
要するに、Javaでデータベースを使ったシステムを開発したいときに使う仕組みです。JDBCには大きく3つの要素が登場します。
- JDBCドライバ:Javaとデータベースをつなぐための「翻訳機」のようなもの。MySQL用、PostgreSQL用など、データベースの種類ごとに専用のドライバが必要です。
- DriverManager:JDBCドライバを管理し、データベースへの接続(Connection)を取得するためのクラス。
- Connection / Statement / ResultSet:実際に接続を保持し、SQLを実行し、結果を受け取るためのオブジェクト。
この後の章で、実際にEclipse上でこれらを使ったコードを書いていきます。
オススメデータベース5選
データベースにも様々な種類があります。その中から、オススメのデータベースをいくつかご紹介します。
- ①:Oracle Database
- ②:MySQL
- ③:PostgreSQL
- ④:SQLite
- ⑤:FileMaker
まずは特徴を一覧で比較してみましょう。
| データベース | ライセンス・料金 | オープンソースか | 主な特徴 | こんな人におすすめ |
|---|---|---|---|---|
| Oracle Database | 個人利用も含め高額なライセンス料が必要 | いいえ | 堅牢性・移植性が高く大規模システム向け | 大企業の基幹システムを学びたい人 |
| MySQL | 非商用利用は無料(GPLライセンス) | はい | 世界的に利用実績が多く学習情報も豊富 | Web系システム開発を学びたい初心者 |
| PostgreSQL | 商用・非商用問わず無料 | はい | 関数・機能が豊富で拡張性が高い | 複雑なクエリや高度な分析をしたい人 |
| SQLite | 無料(パブリックドメイン) | はい | サーバ不要でアプリに組み込み可能、軽量 | 小規模なアプリ・組み込み用途 |
| FileMaker | 商用ソフトウェア(有償ライセンス) | いいえ | グラフ作成などGUI機能が充実 | 分析レポート作成やiOS連携をしたい人 |
Oracle Database
Oracle社が開発しているデータベースです。特徴として、堅牢性が高く、不測の事態にデータを保護してくれます。また、移植性も高く、他のプラットフォームへの移行が比較的容易です。しかし、Oracle Databaseは高機能である一方、ライセンス料が高額なため、個人での利用は厳しいかもしれません。
MySQL
MySQLは世界中で最も利用されているオープンソース(ソースコードが一般公開されている)のデータベースの1つです。多くのレンタルサーバで利用されているため、市場でのシェアが高いデータベースです。また、非商用目的であれば、無料で利用することができます。本記事では、このMySQLを使ってEclipse上でJDBCを動かす手順を解説します。
PostgreSQL
読み方は「ポストグレスキューエル」です。MySQLとは異なり、商用目的であっても完全に無料で利用することができます。また、MySQLと比べて、関数や機能が豊富なことも特徴として挙げられます。
SQLite
名前の通り、軽量なデータベースで、起動や動作が軽快なことが特徴です。オープンソースのデータベースであり、無料で利用することができます。これまで紹介してきたRDBMSは、自身で動作するサーバ型ソフトウェアであるのに対し、SQLiteは、アプリケーションに組み込むことで動作するという特徴を持っています。
FileMaker
Windows、MacOSのどちらでも動作するデータベースです。グラフ作成機能に特化しており、分析資料の作成などに適しています。また、元々MacOS用のデータベースであったため、iPadやiPhoneとの親和性も高いです。
JDBCを使う前の準備(環境構築)
EclipseでJDBCを使うには、まず以下の環境が必要です。
JDK(Java Development Kit)のインストール確認
JDBCを利用するJavaプログラムを実行するには、JDKが必要です。ターミナル(コマンドプロンプト)で以下のコマンドを実行し、バージョンが表示されればインストール済みです。
java -version
javac -version
表示されない場合は、EclipseのダウンロードページやJDKの配布元(Eclipse Temurinなど)からJDKをインストールし、環境変数PATHの設定を行ってください。
Eclipseのインストールとプロジェクト作成
Eclipseをインストールしたら、起動後に「File」→「New」→「Java Project」を選択し、新規のJavaプロジェクトを作成します。この後の章で、このプロジェクトに対してJDBCドライバを設定していきます。
データベース(MySQL)の構築方法
今回はMySQLデータベースを作成します。また、Eclipse(Javaの統合開発環境)上での動作方法も解説していきます。
MySQLのダウンロード
Step1:MySQLのWebサイトからインストールファイルをダウンロード
[MySQL :: Download MySQL Community Server](https://dev.mysql.com/downloads/mysql/) のページに遷移し、自分のOSを選んで、インストールファイルをダウンロードします。

MySQLのアカウント作成を勧められますが、作らなくても問題ないので、「No thanks, just start my download」をクリックしてダウンロードを続けましょう。

MySQLのインストールと初期設定
ダウンロードしたインストーラを実行し、画面の指示に従ってインストールを進めます。途中でrootユーザーのパスワードを設定する画面が出てくるので、忘れないようにメモしておきましょう(この後、JDBCで接続する際に使用します)。
サンプル用データベース・テーブルの作成
インストール後、MySQL Workbenchやコマンドラインから以下のSQLを実行し、動作確認用のテーブルを作成しておきます。
CREATE DATABASE sampledb;
USE sampledb;
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(100)
);
INSERT INTO users (name, email) VALUES ('Taro Yamada', 'taro@example.com');
EclipseにJDBCドライバを設定する方法
MySQLをインストールしただけでは、EclipseのJavaプログラムからは接続できません。JavaとMySQLをつなぐ「JDBCドライバ」をEclipseのプロジェクトに追加する必要があります。
MySQL Connector/J(JDBCドライバ)のダウンロード
MySQL公式サイトのダウンロードページから「Connector/J」(MySQL用のJDBCドライバ)を選択し、お使いのOSに合ったファイルをダウンロードします。ダウンロードしたファイルを展開すると、「mysql-connector-j-x.x.x.jar」のようなjarファイルが入っています。このjarファイルがJDBCドライバの本体です。
Eclipseのビルドパスへドライバを追加する手順
- Eclipseでプロジェクトを右クリックし、「Build Path」→「Configure Build Path」を選択
- 「Libraries」タブを開く
- 「Add External JARs…」をクリックし、先ほど入手したjarファイルを選択
- 「Apply and Close」で設定を保存
これでプロジェクトからJDBCドライバのクラス(例:com.mysql.cj.jdbc.Driver)を利用できるようになります。Eclipseを使ったJDBCプログラミングの具体的な設定例は、[Eclipse を用いた JDBC プログラミング|金子邦彦研究室](https://www.kkaneko.jp/pro/jdbc/javadb.html) でも詳しく解説されています。
JDBCの基本的な使い方(サンプルコード付き)
ドライバの設定が終わったら、実際にJavaプログラムからデータベースに接続してみましょう。
データベースへ接続する(DriverManager.getConnection)
データベースへの接続には、接続先のURL・ユーザー名・パスワードが必要です。
String url = "jdbc:mysql://localhost:3306/sampledb?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "your_password";
Connection conn = DriverManager.getConnection(url, user, password);
SQLの実行とResultSetの取得(Statement・PreparedStatement)
SQLを実行する際は、SQLインジェクション対策の観点からPreparedStatementを使うのが基本です。実行結果はResultSetとして受け取ります。
取得したデータをJavaの変数に格納する方法
以下は、データベースに接続し、usersテーブルから1件のデータを取得してJavaの変数に格納するサンプルコードです。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcSample {
private static final String URL = "jdbc:mysql://localhost:3306/sampledb?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "your_password";
public static void main(String[] args) {
String sql = "SELECT id, name, email FROM users WHERE id = ?";
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, 1);
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
System.out.println(id + " : " + name + " (" + email + ")");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
rs.getInt("id")やrs.getString("name")のように、カラム名を指定してデータをJavaの変数に取り出しているのがポイントです。
リソースのクローズ処理(try-with-resources)
上記のコードでは、try (...)という構文(try-with-resources)を使っています。この構文を使うと、ConnectionやResultSetなどのリソースが処理終了後に自動でクローズされるため、クローズ漏れによるメモリリークや接続エラーを防ぐことができます。
Eclipse DTP(Data Tools Platform)でGUI操作する方法
Eclipseには、コードを書かずにGUI上でデータベースに接続・操作できる「DTP(Data Tools Platform)」という機能があります。JDBC関連のEclipseプラグインは、[Eclipse Marketplace](https://marketplace.eclipse.org/free-tagging/jdbc) から探すこともできます。
Data Source Explorerでの接続設定
- Eclipseメニューの「Window」→「Show View」→「Other」→「Data Management」→「Data Source Explorer」を開く
- 「Database Connections」を右クリックし、「New」を選択
- 接続タイプとして「MySQL」を選び、「New Driver Definition」で先ほど入手したjarファイルを指定
- データベース名、ユーザー名、パスワードを入力
SQL Scrapbook/Query Builderでのクエリ実行
接続設定が完了すると、SQL Scrapbookを使ってSQLエディタから直接クエリを実行し、結果をGUI上で確認できます。コードを書かずにテーブルの中身を確認したいときに便利な機能です。DTPを使った接続・クエリ実行のより詳しい手順は、[Setting Up and Executing JDBC Activities with Eclipse Using DTP](https://docs.tibco.com/pub/activematrix_businessworks/6.6.1/doc/html/GUID-7EF384BB-3849-4C55-AD42-11F32DFE99B0.html) でも解説されています。
接続テストとよくあるエラーの対処法
Test Connectionでの接続確認方法
Data Source Explorerで接続プロファイルを作成する際、設定画面には「Test Connection」というボタンがあります。これをクリックすると、入力した接続情報(URL・ユーザー名・パスワード)が正しいかどうかをその場で確認できます。「Ping succeeded」のようなメッセージが表示されれば接続成功です。
よくある接続エラーとその対処法
| エラー内容 | 主な原因 | 対処法 |
|---|---|---|
| ClassNotFoundException / NoClassDefFoundError | JDBCドライバのjarがビルドパスに追加されていない | 「Configure Build Path」でjarファイルを再確認・追加する |
| Access denied for user | ユーザー名またはパスワードが誤っている | MySQLインストール時に設定したパスワードを再確認する |
| Unknown database | 接続URLに指定したデータベース名が存在しない | CREATE DATABASE文でデータベースを作成しておく |
| Communications link failure | MySQLサーバーが起動していない、またはポート番号が誤っている | MySQLサービスを起動し、ポート番号(通常3306)を確認する |
まとめ
本記事では、JDBCの基本概念から、オススメのデータベース、そしてEclipseでJDBCを使うための環境構築・ドライバ設定・サンプルコード・DTPを使ったGUI操作・接続エラーの対処法までを解説しました。
JDBCは最初はとっつきにくく感じますが、「ドライバを追加する」「Connectionを取得する」「SQLを実行してResultSetを受け取る」という3ステップの流れを押さえれば、どのデータベースでも同じ考え方で接続できるようになります。まずは本記事のサンプルコードをそのまま動かしてみて、徐々に自分のアプリケーションに組み込んでいきましょう。
参考にしたサイト
- [MySQL :: Download MySQL Community Server](https://dev.mysql.com/downloads/mysql/)
- [Eclipse を用いた JDBC プログラミング|金子邦彦研究室](https://www.kkaneko.jp/pro/jdbc/javadb.html)
- [JDBC | Eclipse Plugins, Bundles and Products – Eclipse Marketplace | Eclipse Foundation](https://marketplace.eclipse.org/free-tagging/jdbc)
- [Setting Up and Executing JDBC Activities with Eclipse Using DTP](https://docs.tibco.com/pub/activematrix_businessworks/6.6.1/doc/html/GUID-7EF384BB-3849-4C55-AD42-11F32DFE99B0.html)


コメント