MySQLのWeb出力
|
MySQLの動作及びACCESSとの連携はひとまず完了しているので、プログラムでの基本となる、Web上でのデータベース操作をしたいと思います。
まずは、現在登録されているデータをWebで表示させてみたいと思います。 |
Web上でデータベースの内容を扱うには、JDBCドライバーが必要になります。JDBCドライバーはMySQLのページにあるので、そこからダウンロードします。
私は本に付属のCDから、コピーをします。
エクスプローラーなどで、コピーすればよいのですが、コピーしただけでは、Eclipseには表示が出ませんので、メニューの「ファイル」−「最新表示」をクリックすると、下のようにJDBCドライバーが表示されます。

|
JDBCドライバーが登録できたら、実際にソースを書いて、実際に動作を確認してみます。
package te;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class DbListServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html><head><title>テーブル内容の一覧表示</title></head>");
// データベースドライバをロードする
Class.forName("com.mysql.jdbc.Driver");
// データベースと接続する
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/ltss?useUnicode=
true&characterEncoding=SJIS",
"mysql", "mysql");
// Statementオブジェクトを生成し、検索を実行する
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_tbl");
// 検索結果のメタデータを取得する
ResultSetMetaData rsmd = rs.getMetaData();
// 検索結果を表示する
// まず、表の各列の見出しから
out.println("<body><table border=1><tr>");
for (int i = 1; i <= rsmd.getColumnCount(); i++)
out.println("<th>" + rsmd.getColumnLabel(i));
// 検索結果の全レコードを対象とする
while (rs.next()) {
// 各レコードについて、全フィールドを表示する
out.println("<tr>");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
out.println("<td>");
try {
out.println(rs.getObject(i).toString());
} catch (Exception e) {}
}
}
out.println("</table>");
out.println("</body></html>");
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
|
ソースが出来たら、次はweb.xmlに今回のサーブレットの設定を追加します。
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>te.HelloSrv</servlet-class>
</servlet>
<servlet>
<servlet-name>list</servlet-name>
<servlet-class>te.DbListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>list</servlet-name>
<url-pattern>/list</url-pattern>
</servlet-mapping>
</web-app> |
|
設定が出来たら、Tomcatを実行させて、実際にテーブルの内容が表示されるかどうか確認します。
今回は1件しかデータを登録していないので、このような内容になりました。 |
これで、サーブレットからのデータベースの操作も確認が取れました。ただ、今回のサーブレットはデータベース接続をサーブレットの中で確立していますが、これは時間がかかるため、実際の開発ではあらかじめデータベースの接続を確立しておいて、それを利用すると言う方法がとられています。
今回は、とりあえずデータベースへの接続が出来るかどうかをチェックするために、サーブレットの中にデータベースの接続処理をいれました。 |
MySQLの基礎へ UP データベースの登録 |
  |