この記事の例では、Servelt を使用して Oracle データベースに接続するために Java が JSP を実装する方法について説明します。サーブレットでデータベースに接続するには、サーブレット クラス プログラムを作成する必要があります。サーブレット クラス プログラムを WEB サーバーのサーブレットまたはクラス ディレクトリに配置します。サーブレットを呼び出すには、サーブレット リクエストを送信する HTML ドキュメントを作成する必要があります。この例では、(Driver)Class.forName(driverName).newInstance() メソッドを使用してドライバーを読み込み、データベースとの接続を確立します。
具体的なプログラムコードは次のとおりです。
1. Database クラスは HttpServlet クラスを継承し、doGet() と displayResult() という 2 つのメソッドを持ちます。コードは次のとおりです。
public class Database extends HttpServlet{public void doGet(); public void displayResult(ResultSet results,PrintWriter out);}
2.データベースへの接続を確立し、 doGet() メソッドでクエリを実行します。
public void doGet(){HttpServletRequest request,HttpServletResponse response}throws ServletException, IOException{PrintWriter out;String title = "Oracle DB に接続する単純なサーブレット";response.setContentType("text/html;charset=GB2312");out = response.getWriter();out.println("<HTML><HEAD><TITLE>");out.println(title);out.println("</TITLE></HEAD><BODY>");out .println("<H1>" + title + "</H1>");out.println("<P>これは SimpleServlet からの出力です。");String driverName = "oracle.jdbc.driver.OracleDriver";ドライバー d;接続 con;ステートメント stmt;ResultSet 結果;try{d = (Driver)Class.forName(driverName).newInstance();con = DiverManager.getConnection("jdbc:oracle:thin:ndb/[email protected]:1521:PC6");stmt = con.createStatement();String sqlstr = "データから * を選択";results = stmt.executeQuery(sqlstr);displayResult(results,out);stmt.close();con.close();}catch (Exception e){out.println("error: " + e.toString());} out.println("</BODY></HTML>");out.close();}
3. DisplayResult() メソッドはクエリ結果を表示します。
public void displayResult(ResultSet results,PrintWriter out){StringBuffer buf = new StringBuffer();String temp;try{ResultSetMetaData rsmd = results.getMetaData();int numCols = rsmd.getColumnCount();int i, rowcount = 0;for (i=1; i <= numCols; i++){if (i > 1) buf.append(",");buf.append(rsmd.getColumnLabel(i));}buf.append("");while (results.next() && rowcount < 100){for (i= 1; i <= numCols; i++){if (i > 1) buf.append(",");buf.append((results.getString(i)));}buf.append("<br>");rowcount++;}out.println("<br>");out .println(buf.toString());results.close();}catch (Exception e){out.println("error: " + e.toString());return;}}
4.このプログラムは JDBC クラス、サーブレット クラスを使用し、コンソール出力を使用するため、次のパッケージを導入する必要があります。
インポート java.sql.*;インポート java.io.*;インポート javax.servlet.*;インポート javax.servlet.http.*;
5. Database.java をコンパイルし、Database.class ファイルを生成し、WEB サーバーの servlets ディレクトリに Database.class を配置します。この例では、WEB サーバーとして Java Web Server が使用されます。 WEBサーバーを設定し、database.classを追加し、名前をdatabaseとして指定します。
6.サーブレットを呼び出すdatabase.htmlファイルを作成します。コードは次のとおりです。
<html><head><title>Jsp はサーブレットを使用してデータベースに接続します</title></head><body><center><form action="/servlet/database" method="get"><入力名="action " type="submit" value="データベースに接続"></form></center></body></html>