レコードの追加処理


残るは、フォームを送信先であるadd_action.jspの作成です。ここでは、送信されたフォームの内容をもとにレコードの追加を行い、リダイレクトでindex.jspに戻ります。

<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>

<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>

<%
request.setCharacterEncoding("Shift_JIS");
String number = request.getParameter("number");
String name = request.getParameter("name");
String etc = request.getParameter("etc");
Connection conn = null;
Statement state = null;
if (number != null) {
  try {
    Class.forName("org.apache.derby.jdbc.EmbeddedDriver")
        .newInstance();
    Properties prop = new Properties();
    prop.put("user", "tuyano");
    prop.put("password", "tuchan");
    conn = DriverManager.getConnection("jdbc:derby:test",prop);
    conn.setAutoCommit(true);
    state = conn.createStatement();
    String query = "insert into mytable values (" + number
        + ",'" + name + "','" + etc + "')";
    state.execute(query);
    pageContext.forward("index.jsp");
  } catch(Exception ex){
    ex.printStackTrace();
  } finally {
    try {
      state.close();
      conn.close();
    }catch(Exception ex){}
  }
}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Add Record Action</title>
</head>
<body>
※このページは直接開いても無意味です。
</body>
</html>


データベースへの接続まではindex.jspと同じです。request.getParameterで送信されたフォームの内容を変数に取り出し、それをもとにクエリー文を作って送信します。

String query = "insert into mytable values (" + number + ",'"
    + name + "','" + etc + "')";
state.execute(query);


後はリダイレクトして作業終了です。接続の流れがわかれば、応用は簡単ですね。

index.jspにアクセスすると、レコードの一覧が表示される。


完成したら、実際にindex.jspにアクセスして、mytableのレコードが表示されるか確認してみましょう。また、フォームから送信してレコードを追加してみてください。追加したレコードが一覧に表示されたでしょうか。

今回はEmbedded方式でのアクセスを行ないましたが、クライアントとして接続することも可能です。Java DBについてもっと知りたい人は、Java DBよりも「Derby」で検索などしてみると、いろいろと情報が得られますよ。せっかく標準でこんなしっかりしたデータベースが内蔵されたのですから、使わない手はありません。ぜひ一度、試してみてください。


※なお、この記事の執筆後、Eclipse WTPもバージョンアップされ、本記事で説明している内容の多くが変更されています。以下の記事に、Eclipse WTP 2.0によるSQLデータベース接続の設定について解説していますので、そちらも参考にしてください。

「Eclipse EuropaでSQLサーバを利用する」

※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。