バナー画像

Javaでのシステム開発において、データベースとのやり取りは必須と呼べるほど利用頻度の高い処理です。

本記事では、Javaでのデータベース接続を基本であるJDBCを使った方法で解説していきます。

Javaでデータベースを扱う事前準備


Javaプログラムでデータベースとのやり取りを行う前に、今回サンプルで利用する環境について解説していきます。

様々なデータベースが提供されており、接続方法も複数ありますが今回は無料で利用可能な基本となるパターンについてご紹介していきます。

データベース

データベースには、OracleやMicrosoft SQL Serverをはじめ、様々なデータベースが提供されていますが、今回は無料で利用可能なオープンソースのデータベース「MySQL」を利用していきます。

MySQLのダウンロードページから、ご自身の環境に合わせたダウンロードファイルを取得して、インストールしてください。


画像のようにログイン画面が表示されますが、ダウンロードするだけであれば赤枠の「No thanks, just start my download.」をクリックすればダウンロード可能です。


インストール自体はダブルクリックでdmgファイルを開き、画面の手順に沿って簡単に行うことが出来ます。

ポテパンダの一言メモ

特に理由がなければ「dmg」ファイルを選択して、インストールを進める方法が簡単です。

ドライバ

Javaでデータベース接続を行う際によく利用されるのが「JDBC」と呼ばれるシステムで、データベース毎の違いを吸収しJavaのソースコードを極力変更せずに様々なデータベースに切り替えることが可能となります。

今回はMySQLをデータベースとして利用しますので、MySQL用のJDBCドライバをダウンロードして利用します。


MySQLサイトで、JDBCのダウンロードページにアクセスし、「Connector/J」を選択します。


次の画面で、ご利用環境のOSを選択しダウンロードを行います。

ポテパンダの一言メモ

Mac環境の方は「Platform Independent」を選択しておきましょう。


「TAR」と「ZIP」どちらかの形式で「Download」ボタンをクリックします。

サンプルでは「ZIP」ファイルをダウンロードしました。

ZIPファイルを解凍すると「mysql-connector-java-8.0.27.jar」のようなjarファイルが格納されており、このjarファイルを設定してデータベースとの接続を行います。

データベース接続を行うJavaサンプル


データベース接続を行うためのJavaのサンプルコードと用意したデータベースで実際の使い方を確認していきましょう。

データベース

サンプルではMySQLに「potepan」の名前でデータベースを作成し、「users」テーブルを定義しました。

「users」テーブルにはサンプルデータとして下記データを格納しています。

mysql> select * from users;
+------+-----------------+
| id   | name            |
+------+-----------------+
|    1 | 山田たろう  |
|    2 | 佐藤あきら  |
+------+-----------------+

JDBCドライバをビルドパスに設定

事前準備でダウンロードしたJDBCドライバをEclipseからJavaプログラムが認識出来るようにしてあげる必要があります。


プロジェクトを右クリックして「ビルド・パス」から「外部アーカイブの追加」を選択します。


配置したjarファイルを選択して「Open」ボタンをクリックします。

ポテパンダの一言メモ

サンプルではデスクトップに「mysql」というフォルダを配置して格納しました。


参照ライブラリーとして指定したjarファイルが表示されていることが分かります。

サンプルコード

実際にJavaからMySQLに接続してデータを取得するサンプルコードが下記です。

package sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
	
	public static void main(String[] args) {
	      Connection con = null;
	       try {
	         con = DriverManager.getConnection("jdbc:mysql://localhost/potepan", "root", "パスワード");
	         Statement st = con.createStatement();
	         String sql = "select * from users;";
	         ResultSet result = st.executeQuery(sql);
	 
	         while(result.next()) {
	           int id = result.getInt("id");
	           String name = result.getString("name");
	           System.out.println("id: " + id);
	           System.out.println("name: " + name);
	         }
	         if(con != null) {
		           con.close();
		         }
	       } catch (SQLException ex) {
	         System.out.println("接続に失敗しました。");
	       }
	}
	
}

実行結果が下記です。

id: 1
name: 山田たろう
id: 2
name: 佐藤あきら

コード解説

サンプルコードでデータベース接続に関する抑えておきたい部分を確認しておきましょう。

データベース接続

14行目のコードが実際にデータベースに接続するためのコードになります。

con = DriverManager.getConnection("jdbc:mysql://localhost/potepan", "root", "パスワード");

ローカルの「potepan」データベースに対して、「root」ユーザーで接続を確立しています。

15行目のコードに関しては、SQLを実行するためにStatementオブジェクトを生成する必要があるんだと決まりごととして覚えておきます。

SQL発行

16行目で記述したSQL文を17行目の「executeQuery」メソッドで実行します。

String sql = "select * from users;";
ResultSet result = st.executeQuery(sql);

SQL文に関しては文字列で記述しているだけなので、引数にそのまま書いても構いませんが、長いSQL文になると可読性も悪くなるため一度変数に格納するのが一般的です。

SQLで取得したデータはResultSetのオブジェクトに格納されます。

データ操作

取得したデータを操作しているのが19~24行目の処理です。

取得したデータは複数件存在する可能性があるためwhile文で1レコードずつ抽出し、サンプルでは文字列加工してコンソールに出力しています。

コネクションの切断

25~27行目に記述しているのが、データベースとのコネクションを切断する処理です。

if(con != null) {
  con.close();
}

コネクションのオブジェクトが存在する場合に、明示的にclose処理を呼び出して切断しています。

さいごに: Java開発でのデータベース接続は頻出処理


本記事では、Javaでデータベースへ接続する方法についてサンプルコードを掲載しながらご紹介してきました。

データベース接続は頻出処理ですが、データベースが変わったからといってJavaの記述方法が大きく変わることもないので、一連の流れで接続方法を把握してしまえば応用が効きます。

無料のデータベースを使用すれば、ローカル環境でも気軽に試すことが出来ますので、ぜひこの機会にJavaでデータベースを使ったプログラム開発にチャレンジしてみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。