Javaプログラミング/Javaプログラミング関連情報

Java 6のJava DBでデータベース(5ページ目)

Java 6には、標準で「Java DB」というデータベースフレームワークが用意されています。これを使ってみましょう。

執筆者:掌田 津耶乃

データ表示用のJSPを作成する


では、JSPのソースコードを作成しましょう。ここでは、プロジェクトにindex.jspを作成し、これにデータベース利用の処理を用意することにします。

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

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

<%
Connection conn = null;
Statement state = null;
ResultSet rs = 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 = "select * from mytable order by number";
  rs = state.executeQuery(query);
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Java DB Sample</title>
</head>
<body bgcolor="#FFFFAA">
<h3>Java DBのデータベース・サンプル</h3>
<br>

<table width=400 bgcolor="#FFFFFF">
<tr><td colspan=2>※レコードの追加</td></tr>
<form method="post" action="add_action.jsp">
<tr><td>整理番号:</td>
<td><input type="text" name="number" size="10"></td></tr>
<tr><td>名前:</td>
<td><input type="text" name="name" size="60"></td></tr>
<tr><td>その他:</td>
<td><input type="text" name="etc" size="60"></td></tr>
<tr><td></td><td><input type="submit"></td></tr>
</form>
</table>
<br><br>

<table border=1 width=400 bgcolor="#FFFFFF">
  <tr bgcolor="#AAAAFF"><th>整理番号</th>
    <th>名前</th><th>その他</th></tr>
<%
  while(rs.next()){
    int number = rs.getInt("number");
    String name = rs.getString("name");
    String etc = rs.getString("etc");
    out.println("<tr>");
    out.println("<td>" + number + "</td>");
    out.println("<td>" + name + "</td>");
    out.println("<td>" + etc + "</td>");
    out.println("</tr>");
  }
%>
</table>

</body>
</html>

<%
} catch(Exception ex){
  ex.printStackTrace();
} finally {
  try {
    rs.close();
    state.close();
    conn.close();
  }catch(Exception ex){}
}
%>


このページでは、2つの要素が用意されます。1つは、新たにレコードを追加するためのフォーム。もう1つは、現在のレコードを一覧表示するためのテーブルです。フォームについては、postで"add_action.jsp"に送信するようにしてあります。このファイルは、後で作成することにしましょう。

肝心の、データベース利用の部分について見てみましょう。まず、ドライバをロードします。今回は、EmbeddedDriverを利用しますので、以下のようにしてクラスをロードします。

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();


続いて、接続の準備をします。まず、接続に使用する情報(ユーザ名とパスワード)をjava.util.Propertiesインスタンスとして用意します。

Properties prop = new Properties();
prop.put("user", "tuyano");
prop.put("password", "tuchan");


続いて、DriverManager.getConnectionで接続を行ないます。接続先は、"jdbc:derby:データベース名"という形になります。この際、先ほど用意したPropertiesを引数に渡しておきます。

conn = DriverManager.getConnection("jdbc:derby:test", prop);
conn.setAutoCommit(true);


接続までできたら、後は一般的なSQLデータベースへのアクセスとほぼ同じです。Statementを用意し、クエリーを実行します。

state = conn.createStatement();
String query = "select * from mytable order by number";
rs = state.executeQuery(query);


そして、ResultSetのnextを呼び出し、必要な値を取得して処理を行なっていきます。このあたりは、テーブルの設計にあわせて作成していくことになるでしょう。

while(rs.next()){
  int number = rs.getInt("number");
  String name = rs.getString("name");
  String etc = rs.getString("etc");
  ・・・略・・・


SELECTでデータを取得し処理する基本的な流れは、こんな感じになります。接続さえきちんとできれば、後はデータベース利用の基本的な方法がそのまま使えますから悩むところはそれほどないでしょう。


  • 前のページへ
  • 1
  • 4
  • 5
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます