135
第
第
1
1
0
0
章
章
.
.
My
M
yS
SQ
QL
L
の
の
イ
イ
ン
ン
ス
ス
ト
ト
ー
ー
ル
ル
と
と
Ja
J
av
va
a
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
か
か
ら
ら
の
の
接
接
続
続
【学習のねらい】
① データベース管理ソフトである MySQL をインストールする。 ② MySQL 上のデータベースに Java プログラムから接続できることを確認する。<先週の復習>
講義で示された【基礎課題10-1】に解答して下さい。10-1.MySQL のインストール
第1 章(p.1)で説明したように Web アプリケーションの構成は次の通りです。 これまで、サーブレットとJSP を用いた、サーバとクライアント間のリクエストおよび レスポンスの基礎について学習しました。残りは(右端の)データベースの利用です。そ のために、本節ではデータベース管理ソフト MySQL をインストールします。以下のⅠお よびⅡの手順に従ってインストールを完了して下さい。 Ⅰ.インストーラーのダウンロード ① 右のサイトに接続してくだ さい。これは、MySQL のホ ームページです(2015 年 11 月27 日現在)。 クライアント サーバ データベース リクエスト レスポンス ブラウザ IE、Firefox など アプリケーションサーバ Tomcat など データベース管理ソフト MySQL など JDBC Java サーブレット、 JSPhttp://www.mysql.com/
136
② このページから「Downloads」タブを選び、その画面を下方にスクロールさせ、「MySQL Community Edition(GPL)」にある「Community(GPL) Downloads」を選択(クリッ ク)してください。
③ 次の画面で「MySQL Community Server」を選択(クリック)します。
④ 次の画面で下方にスクールし、次ページのように[Download]ボタンをクリックしま す。
137
⑤ 現れた画面で、次のように「Windows(x86,32-bit),MSI Installer」(上の方)欄の [Download]ボタンをクリックしてください。
⑥ その際、MySQL のユーザ登録を求められますが、ここでは、次ページのように「No thanks, just start my download.」をクリックし、ユーザ登録をせずにダウンロードだ け行うことにします。
138 ⑦ すると、[実行]か[保存]か、を尋ねられますので[保存]を選択します。これでダ ウンロードが開始します。 ⑧ ダウンロードした次のファイルをダブルクリックすると、インストールのための設定 が開始します。次のインストール作業へ進んでください。 Ⅱ.MySQL のインストール ① 最初に、コンピュータに変更を行うことの許可を求められますが、[はい]を選んで許 可します。 ② すると、次ページのようにライセンス確認画面が現れます。今の場合、商用ではなく 教育のために使用するので、問題なく使用できます。承認欄をチェックした上で[Next] ボタンをクリックしてください。 こちらを選択する
139
140 ④ すると、次のような画面が現れます。これは、ある特殊なツールを利用する際に必要 となるシステムのインストールを促すものです。しかし、今は必要ないので、そのま ま[Next]ボタンをクリックします(PC 環境によってはこの画面が出ない場合があり ます)。 その際、次のように(システムインストール未完で良いか)確認する画面が現れるの で、[Yes]を選択します。 ⑤ 続いて次ページのインストール項目リストが現れるので、[Execute]ボタンをクリッ クします。そして、処理が完了するまでしばらく待ちます。
141
そして、次のように全てのインストールが完了したら[Next]ボタンをクリックしま す。
142
⑥ 次の画面ではそのまま[Next]ボタンをクリックします。
143
⑧ 次の画面で MySQL の管理者用アカウントである「root」のパスワードを指定します。 適当なパスワードを指定して結構ですが、これは忘れないようにしておいてください。
⑨ 次の画面では、「Start the MySQL Server System Startup」欄のチェックを外し、[Next] ボタンをクリックしてください。
パスワードを指定する。 下の欄は確認用
144
⑩ 次の画面ではそのまま[Execute]ボタンをクリックし、一連の処理が終了するまでし ばらく待ちます。
145
⑫ 続いて、「Samples and Examples 5.7.9」の処理に進みますが、今の場合これは必要な いので、[Cancel]ボタンをクリックしてインストール作業を終了します。 <補足> アンインストールの仕方 上のインストールがうまく行かず、再インストールする場合は、すでにインストールし たMySQL をアンインストールする必要があります。ただし、「プログラムのアンインスト ール」だけでは完全にアンインストールできません。手動で削除しなければならないデー タもありますので、以下に手順を示しておきます。 ① コントロールパネルから「プログラムのアンインストール」を選択します。そして現 れたリストから「MySQL・・・」と名のつく項目を全てアンインストールします。 ② 次に「C:¥Program Files(s13・・・の学生の場合 C:¥Program Files (x86))」内にある
「MySQL」フォルダを削除してください。 ③ 続いて、MySQL に付随していたデータベースを削除します。「C:¥ProgramData」内 にあるフォルダ「MySQL」を削除してください。もし、「ProgramData」が表示され ていない場合は、エクスプローラの「ツール」→「フォルダオプション」と選択して 「表示」タブを開き、「すべてのファイルとフォルダを表示する」を選択してください。 ④ 最後に MySQL をサービス から削除します。「コマンド プロンプト」を「管理者と して実行」します。
146 そして、右のように「sc delete mysql57」を入力し[Enter] キ ー を 押 し ま す 。 こ れ で 、 MySQL のアンインストール完 了です。
10-2.MySQL の動作確認
インストールが正常に終了したかどうかを確かめましょう。【基礎課題
10-2】 MySQL の起動と停止
以下の要領で、MySQL が正常に起動するかどうか確認します。 ① Windows 7 の場合は「スタート」→「すべてのプログラム」→「MySQL」→「MySQL Server 5.7」→「MySQL 5.7 Command Line Client(unicode ではない方)」を選択し てください。Windows 8 の場合は、アプリケーションメニューを表示させ、「MySQL」にある 「MySQL 5.7 Command Line Client(unicode ではない方)」を選択してください。 ② すると、MySQL の起動画面が現れます。ここで、上で設定したパスワードを入力し
[Enter]キーを押してください(以降も入力後必ず[Enter]キーを押します)。
③ すると、MySQL の起動メッセージが現れます。次ページのメッセージが現れれば、 MySQL は正常に起動しています。
147 ④ ここで、「exit」と入力し[Enter]キーを押すと、画面が閉じ MySQL は停止します。 上の動作を確認できたら、「MySQL の起動と停止が正常に行えることを確認しました。」 と記述して提出してください。
【基礎課題
10-3】 MySQL の状態の確認
次の手順にしたがって、MySQL の設定状態を確認しましょう。 ① 上の①、②でやった様にして MySQL を起動してください。 ② 次のように、「status」と入力してください。 ③ すると、次のように現在の MySQL の設定状態が表示されます。148 ④ MySQL を停止してください。 上の動作を確認できたら、「MySQL の状態を確認しました。」と記述して提出してくださ い。
【基礎課題
10-4】 MySQL 内のデータベースの確認
MySQL に登録されているデータベースを確認することができます。次の手順にしたがっ て確認してください。 ① MySQL を起動してください。 ② 次のように「show databases;」と入力して[Enter]キーを押します。 ③ すると、右のように現時点で MySQL に登録されてい るデータベースが表示されます。これらは、MySQL に最初から登録されているデータベースです。 ④ この中から「mysql」というデータベースの中身を見てみましょう。そのために、「use mysql;」と入力して[Enter]キーを押してください。 ⑤ すると、下の様に表示され「mysql」というデー タベースに接続されます。 ⑥ ここで「show tables;」と入力し[Enter]キ ーを入力すると、右のようにデータベース「mysql」 にあるtable(表)が表示されます。 ⑦ MySQL を停止してください。149 このように、一般にデータベースの中に表(table)が幾つか存在するという構造になっ ています。 上の動作を確認したら、「MySQL に登録されているデータベースを確認しました。」と記 述して提出してください。
10-3.Java プログラムからデータベース(MySQL)への接続
この節では、Java プログラムから、MySQL へ接続する方法を学習します。p.135 の図 で示したように、そのためにはJDBC(Java DataBase Connectivity)ドライバというソ フトウェアが必要です。JDBC ドライバはデータベース管理システム(MySQL もその一種) 毎に用意されています。実は、上で行ったMySQL のインストールですでに JDBC ドライ バはダウンロードされています。それを確認しましょう。<JDBC ドライバの確認>
「C:¥Program Files¥MySQL¥Connector.J 5.1」を開いてください((S13・・・の学生の 場 合 は C:¥Program Files (x86)¥MySQL¥Connector.J 5.1 )。 こ の 中 に あ る 「mysql-connector-java-5.1.37-bin.jar」が MySQL の JDBC ドライバです。これがあるこ とを確認してください。
【基礎課題
10-5】
上のJDBC ドライバの中身を確認したら、「MySQL 用の JDBC ドライバがダウンロード されていることを確認しました。」と記述して提出してください。 これが、JDBC ドライバ150 <Java プログラムから MySQL への接続> 次の手順にしたがって、MySQL 上のデータベース「mysql」(p.148 で確認)への接続を 確認するJava プログラムを作成しましょう。 ① Eclipse を起動し、Tomcat プロジェク トを「DBWeb」という名前で作成して ください。そしてその中に、新規クラ スを、クラス名「DBManager.java」、 パッケージ名「dbsample」として作成 してください。この時点でパッケージ エクスプローラは次のようになります。 ② 次に JDBC ドライバを所定の場所 にコピーします。所定の場所とは、 「WEB-INF」の中の「lib」ディレ クトリです。上でダウンロードした 「mysql-connector-java-5.1.37-bin .jar」をコピーし、パッケージエク スプローラの「lib」をクリックし、 そこに貼り付けます。すると、次の ように「lib」内に JDBC ドライバ がコピーされます。 ③ 次にこの JDBC ドライバを、Eclipse が認識できるようにするためにプロジェクトのク ラスパスに追加します。上の JDBC ドライバ「mysql-connector-java-5.1.33-bin.jar」 を右ボタンクリックし、「ビルド・パス」→「ビルド・パスに追加」を選択してくださ い。
151 ④ 「DBManager.java」を次のように記述してください。 【解説】 ① Class.forName("クラス名")の形で、当該クラス名のクラスをメモリにロードする、 つ ま り プ ロ グ ラ ム で 使 用 可 能 な 状 態 に し ま す 。 今 の 場 合 、 ク ラ ス 名 は 「com.mysql.jdbc.Driver」であり、これは、MySQL 用 JDBC ドライバのクラス名 です。つまり、これにより JDBC ドライバ・クラスが使用可能になります。 ② DriverManager クラスは JDBC ドライバを管理するためのクラスです。これに属する getConnection()メソッドを用いることにより、データベースとの接続が可能にな ります。このメソッドは次の形で使用します。
getConnection(URL,user,password);
★ URL:データベースのある場所。 MySQL を用いた場合、”jdbc:mysql://ホスト名/データベース名”となる。 今の場合、ホスト名は「localhost」、データベース名は「mysql」(p.148 の④~⑥で確認したデータベース) ★ user:データベースに接続できるユーザー名(今の場合 root) package dbsample; import java.sql.Connection; import java.sql.DriverManager; public class DBManager {public static Connection getConnection() { try{ Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection( "jdbc:mysql://localhost/mysql","root","*****" ); return con; } catch (Exception e) {
throw new IllegalStateException(e); }
}
public static void main(String[] args) throws Exception { Connection con=getConnection(); System.out.println("con="+con); con.close(); } } <DBManager.java> ① ② MySQL のパスワード(p.143 で指定) を記入すること ③
152
★ password:上のユーザ名に対応するパスワード(p.143 で指定)
③ close()メソッドにより、データベースへの接続を切断しています。データベースに 接続した場合は、終了時に必ず切断しなければならない。
作成したら、プログラムを実行してください。このプログラムは、サーブレットではな く、main()メソッドを持った通常の Java アプリケーションですので、Eclipse から実行で きます。実行後、Eclipse ワークベンチ下方のコンソールに次のような出力が表示されます。 これは、Connection オブジェクトを表示したもので、実行結果に意味はありません。ただ、 上の様な結果が出たら、MySQL 上のデータベースに正常に接続できたことを意味するので、 その確認のために行ったものです。これがうまく実行できないと次週以降の学習に進めま せん。
【基礎課題
10-6】
上の結果を確認したら、「MySQL 上のデータベース「mysql」に Java プログラムから接 続できることを確認しました。」と記述して提出してください。