Java Servlet を使ってデータベースに接続する Part 1
Java
Java でデータベースに接続するには、JDBC というライブラリを使う方法があります。
今回はこのライブラリを使用して、 MySQL に接続する方法を説明します。
作業環境
- Windows 10
- Eclipse 4.4
- Tomcat 8.0
- MySQL 5.7 系
データベースへの接続準備
今回、データベースには MySQL を使用することとします。
JDBC ドライバの導入
JDBC ドライバとは、Java というプログラム言語とデータベースのプログラムの差を吸収し、Java のソースコードを記述するときにあれこれ難しいことを考えなくてもよいようにしてくれるライブラリです。
Java というプログラムとデータベースというプログラムのあいだを仲介してくれる通訳のようなものですね。
JDBC ドライバのダウンロード
今回は MySQL を使うので、JDBC は MySQL のサイトからダウンロードしてきます。
以下のページにアクセス。
Archives をクリックして、過去バージョンを探すページに遷移します。
すると zip ファイルがダウンロードが開始されますので、わかりやすい場所に展開しておきましょう。
クラスパスを通す
展開が終わったら、 Java のプロジェクトフォルダの中をエクスプローラーで開き、適当な名前でフォルダを作成します。今回はわかりやすいように libs というフォルダ名にしました。
先ほど展開した JDBC ドライバの zip の中に、「mysql-connector-java-5.1.48-bin.jar」というファイルがあります。この libs フォルダの中に、その jar ファイルを移動、あるいはコピーしてください。
移動またはコピーが終わったら、Eclipse でプロジェクトを開きます。
次はライブラリを Java プロジェクトで使えるように設定します。
Java で JDBC ドライバを使うには、「クラスパス」というものを通しておく必要があります。
プロジェクト名を右クリックし、現れるメニューの 実行 -> 実行の構成 をクリックします。
クラスパスのタブを開き、外部 Jar の追加 をクリック。
エクスプローラーが開くので、先ほど libs に入れた jar ファイルを選択します。
Jar ファイルが追加されたことを確認したら OK をクリックして閉じます。
これで MySQL につなぐ準備は整いました。
データベースを用意する【MySQL】
つなぐ準備が整っても、つなぐ先が存在しなければ意味がありません。
ということで、今度は MySQL をダウンロードしてローカル環境でデータベースを使えるようにします。
MySQL のダウンロードとインストール
以下のページへアクセス。
MySQL :: Download MySQL Installer
Archives をクリックします。
Product Version のプルダウンメニューから 5.7.29 を選択し、容量の少ないほうの Download ボタンを押します。
Developer Default と Install all products を選択し、 Next ボタンを押します。(必要に応じて変更しても構いませんが、わからない場合はこのままでいいと思います)
そのまま Next を押します。
Execute を押すとダウンロードが始まりますので、少し待ちます。
すべての Status が Complete に変わったら完了 Next を押します。
Next を押します。
Sandalone MySQL Server / Classic MySQL Replication を選択して Next をクリック。
デフォルトのまま Next をクリック。
MySQL の root ユーザのパスワードを設定します。
自分で決めたパスワードを 2 回入力し、Next をクリックします。
Windows でのサービス名を決めます。とくに変更せずともよいのでこのまま Next。
確認画面です。問題がなければ Execute をクリックします。
これが終わればインストール完了です。
データベースの操作・確認
データベースの確認と操作には、 MySQL Workbench と Eclipse の DBViewer の両方をうまい具合に使っていきます。
Java EE のパースペクティブを追加したときのように DBViewer のパースペクティブを追加してパースペクティブを開きます。
DB ツリービューの DBViewerPlugin を右クリックし、登録ボタンを押します。
データベース定義名を servlet にして、「ファイルの追加」から JDBC ドライバを追加します。
接続情報を入力し、完了を押します。
jdbc:mysql://localhost:3306/servlet?characterEncoding=UTF-8&serverTimezone=JST
接続文字列は jdbc:mysql://<ホスト名>:<ポート番号>/<データベース名> といった感じになります。
接続ユーザを root 、パスワードは MySQL インストール時に自分で決めたものを入力してください。
タスクバーにある MySQL Notifier を右クリック、MySQL57 -> Start を選択して MySQL を起動します。
MySQL Server と同時にインストールされている MySQL Workbench を起動します。
起動したら、Query に以下の SQL 文を入力、雷マークをクリックして実行してください。
/* servlet という名前のデータベースを作成 */
create database servlet;
/* servlet データベースに users という名前のテーブルを作成 */
create TABLE servlet.users (
id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
mail varchar(30),
name varchar(30)
)
DEFAULT CHARSET=utf8;
/* 作成した users テーブルにテスト用のデータを挿入 */
INSERT INTO servlet.users (mail,name)
VALUES ("mail01@example.com","ジャバ太郎"), ("mail02@example.com","ジャバ次郎"), ("mail03@example.com","ジャバ三郎");
この SQL を実行することで servlet というデータベースが作成され、データベースの中にテーブルとデータが作られます。
Eclipse に戻り、 DB ツリービュー -> DBViewerPlugin -> servlet を右クリック、現れるメニューから接続を選択。
servlet -> TABLE -> users とたどると、さきほど作成したテーブルの中身を確認することができます。
では今度は DBViewer のほうから SQL を実行してみます。
INSERT INTO
users
( mail, name )
VALUES
( "mail04@example.com", "シーシャープ郎" )
Eclipse の下部にある SQL 実行・ビューに SQL 文を入力、データベースとスキーマが「servlet:servlet」になっていることを確認して再生ボタンをクリックして実行します。
(再生ボタンを使わずに、Shift + Enter を押して実行することもできます)
実行後、users テーブルにシーシャープ郎さんのデータが追加されました。
もし追加が反映されていない場合、 servlet というスキーマ名を右クリックして更新を選んでみてください。
これでようやくデータベースを確認したり操作する準備がととのいました。
長くなったので区切ります。
広告