データベース連携アプリを作成するためには、以下の準備が必要です。
[1]データベースをインストールする
まずは、接続先のデータベースをインストールしておきましょう。
データベース(DBMS)には、商用製品からオープンソースのものまで、さまざまな製品があります。Javaでは、現在よく利用されているデータベース(DBMS)であれば、ほぼ問題なく利用できますが、本稿では検証環境としてMySQL 9.1.0を利用するものとします。
MySQLは、以下のページからダウンロードできます。
https://dev.mysql.com/downloads/mysql/
ダウンロードしたインストールファイルmysql-9.1.0-winx64.msiをダブルクリックすると、インストーラーが起動しますので、あとはほとんどウィザードに沿って進めていくだけです。なんらかの選択/入力が必要な箇所は2点です。
まず、インストールの種類を訊かれる個所がありますので、[Typical]を選択して先に進んでください。

▲インストールの種類を選択
[2]Connector/Jをインストールする
Connector/Jは、JDBCドライバーと呼ばれるライブラリで、JDBCからMySQLに接続するために必要となります。
以下のページからダウンロードできます。
https://dev.mysql.com/downloads/connector/j/
[Select Operating System:]から[Platform lndependent]を選択して、mysql-connector-j-9.1.0.zipをダウンロードします。
ダウンロードしたファイルを任意のフォルダー(本項では、C:\Program Files\MySQL\mysql-connector-j-9.1.0)に展開します。
インストールを進めていくと、サーバーのインストール後に設定ウィザードが起動します。途中、Rootアカウントのパスワードを訊かれますので、第3者に類推されにくい値を入力しておきましょう。あとからデータベースに接続する際に必要となる情報なので、忘れないようにしてください。
本稿では、便宜的に「12345」と設定したものとして解説を進めます。

▲Rootアカウントのパスワードを設定
[3]環境変数PATHを設定する
「開発環境の準備(JDK単体)」ページの手順に従って、環境変数PATHに「C:\Program Files\MySQL\MySQL Server 9.1\bin」を追加しておきます。[3]以降では、PATHが設定されていることを前提に、コマンドを紹介しています。
[4]データベースを作成する
サンプルを動作するために必要なデータベースを作成しておきましょう。データベースのバックアップファイルsample.sqlは、ダウンロードサンプルに含まれています。適当なフォルダー(たとえば「d:\」)にコピーした上で、以下のコマンドを実行してください。
- > mysqladmin -u root -p CREATE sample
- Enter password: *****(パスワードを入力)
- > mysql -u root -p sample
- Enter password: ***** (パスワードを入力)
- > source d:\sample.sql
これでsampleデータベースができました。sampleデータベースの配下には、以下のようなmembersテーブルが用意されています。
| membersテーブルのフィールドレイアウト | ||
|---|---|---|
| フィールド名 | データ型 | 概要 |
| id | INT | 会員ID(主キー) |
| nam | VARCHAR(255) | 氏名 |
| sex | CHAR(1) | 性別 |
| age | INT | 年齢 |
[5]JDBCドライバーを準備する
先ほどインストールしたConnector/J(JDBCドライバー)をアプリにも組み込んでおきましょう。Eclipseであれば、メニューバーの[プロジェクト]-[プロパティ]からプロパティウィンドウを開きます。左ペインから「Javaのビルドパス」を選択し、右ペインから[ライブラリ]タブを選択してください。

プロジェクトのプロパティウィンドウ
[外部JARの追加…]ボタンをクリックして、先ほどインストール&展開したConnecor/Jの本体を選択します。選択後、[ライブラリ]タブに「mysql-connector-j-9.1.0.jar」が追加されていれば、ドライバーはプロジェクトに組み込まれています。
以上で、Javaアプリからデータベースを利用するための準備は完了です。
[6]モジュール定義ファイルを編集する
java.sqlパッケージは、標準で有効化されるjava.baseモジュールには含まれません。利用にあたっては、モジュール定義ファイルでrequires宣言しておく必要があります。
- module mynavi {
- ...中略...
- requires java.sql;
- }