データベース接続
この節では、ServletやJSPからデータベースに接続する方法を学習します。今回はデータベース連携編で準備したデータベースを利用します。Javaからデータベースに接続するには、接続するための部品を使用するので、準備をする必要があります。今回はMySQLを活用しますので、次のファイルを用意します。(データベース連携編で使用したファイル)
mysql-connector-java-5.1.40-bin.jar
上記のファイルをWebサイト内のWEB-INFフォルダー内のlibフォルダーに配置します。パッケージ・エクスプローラーよりWebサイト内の「WEB-INF」―「lib」フォルダを右クリックして、表示されるメニューより「インポート(I)...」を選択してください。
インポートを選択
次の図のように「一般」―「ファイル・システム」を選択し、「次へ(N)>」をクリックします。
ファイル・システムを選択
次の図のように、「次のディレクトリーから(Y)」に用意したJARファイルが格納されているフォルダーを指定します。すると、下に一覧が表示されるので、「mysql-connector-java-5.1.40-bin.jar」にチェックを入れて「完了(F)」ボタンをクリックします。
JARファイルを選択
すると、ファイルが追加されます。
ファイルが追加された
○ ファイル
プロジェクトに次のようなServletを追加してください。
パッケージ名 |
test.servlet |
クラス名 |
ConnectionTest |
スーパークラス名 |
javax.servlet.http.HttpServlet |
サンプルダウンロード
○ プログラム
doGetメソッドを追加して、次のようにプログラムを入力してください。
- package test.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class ConnectionTest extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //クライアントに出力する準備
- resp.setContentType("text/html; charset=utf-8");
- PrintWriter pw = resp.getWriter();
- String message = null;
- Connection con = null;
- try{
- //JDBCドライバクラスの指定
- String drivername = "com.mysql.jdbc.Driver";
- //データベースを指定
- String url = "jdbc:mysql://localhost:3306/books";
- //ユーザー名
- String username = "root";
- //パスワード
- String password = "";
- //指定したドライバクラスを読み込み
- Class.forName(drivername);
- //データベースに接続
- con = DriverManager.getConnection(url, username, password);
- message = "データベースに接続できました。";
- }catch(Exception e){
- //エラーメッセージをセット
- message = "データベースに接続できませんでした。";
- }finally{
- try{
- //データベースに接続されていれば切断する
- if(con != null){
- con.close();
- }
- }catch(Exception e){
- message = "エラーが発生しました。";
- }
- }
- //クライアントにHtmlタグを書き出し
- pw.println("<html>");
- pw.println("<head>");
- pw.println("<title>データベースに接続する</title>");
- pw.println("</head>");
- pw.println("<body>");
- pw.println(message);
- pw.println("</body>");
- pw.println("</html>");
- }
- }
〇 Webアプリケーション設定ファイルの編集
web.xmlに次の内容を追加してください。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
(そのほかの記述…)
- <servlet>
- <servlet-name>ConnectionTest</servlet-name>
- <servlet-class>test.servlet.ConnectionTest</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>ConnectionTest</servlet-name>
- <url-pattern>/connectiontest</url-pattern>
- </servlet-mapping>
○ 実行結果
http://localhost:8080/WebApp/connectiontest
実行結果
○ 解説
データベースに接続するための準備として、データベース用のドライバをJavaの実行環境に読み込みます。37行目で、設定したJarファイルの中から、ドライバにあたるクラスをClassクラスのforNameメソッドで実行環境に読み込んでおきます。次に40行目で、データベースに接続するためにDriverManagerクラスのgetConnectionメソッドを使用します。このメソッドの引数で、接続するデータベース、接続ユーザー名、パスワードを指定します。これによりデータベースに接続できるので、データベースに対する処理を記述します(今回はなし)。その後、49行目でデータベースを閉じます。
前へ 次へ