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