■JDBC 接続、問い合わせ、レコード参照(Servlet)

  ・JDBC 接続では、Oracle や PostgreSQL アクセスが同等にコードできる。

// test.java
package jp.ojima.eclipse;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class jdbcserv extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {

//    String drv = "oracle.jdbc.OracleDriver";
    //String dsn = "jdbc:oracle:thin:@localhost:1521:sid";
//    String drv = "oracle.jdbc.OracleDriver";
//    String dsn = "jdbc:oracle:thin:@150.29.50.95:1521:rakkyo";

    // Web.xmlからcontextを取得
    ServletContext w_SrvCont = getServletContext();
    String jdbcdriver = w_SrvCont.getInitParameter("jdbcDriver");
    String dbURI      = w_SrvCont.getInitParameter("jdbcUri");
    String dbUserID   = w_SrvCont.getInitParameter("dbUser");
    String dbPassword = w_SrvCont.getInitParameter("dbPassword");

    String sql = "select * from テストm";
    Connection cn = null;
    Statement st = null;
    ResultSet rs = null;

    // コンテンツタイプ指定
    res.setContentType("text/html; charset=SJIS");

    // HTML ヘッダ出力
    PrintWriter rw = res.getWriter();
    rw.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">");
    rw.println("<HTML>");
    rw.println("<HEAD>");
    rw.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">");
    rw.println("<TITLE>JAVA Servlet - Oracle9i JDBC Test</TITLE>");
    rw.println("</HEAD>");
    rw.println("<BODY>");
    rw.println("<P>JAVA Servlet - Oracle9i JDBC Test</P>");

    // Oracle9i JDBC ドライバロード
    try {
//    Class.forName(drv);
      Class.forName(jdbcdriver);
    } catch (Exception e) {
      rw.println("<P>JDBC ドライバロードエラー<BR>" + e.toString() + "</P>");
    }

    // Oracle9i JDBC 接続
    try {
//    cn = DriverManager.getConnection(dsn, "ojigon", "angel");
      cn = DriverManager.getConnection(dbURI, dbUserID, dbPassword);
    } catch (Exception e) {
      rw.println("<P>JDBC 接続エラー<BR>" + e.toString() + "</P>");
    }

    // Oracle9i JDBC 問い合わせ SQL 作成
    try {
      st = cn.createStatement();
    } catch (Exception e) {
      rw.println("<P>JDBC 問い合わせ SQL 作成エラー<BR>" + e.toString() + "</P>");
    }

    // Oracle9i JDBC レコードセットオープン
    try {
      rs = st.executeQuery(sql);
    } catch (Exception e) {
      rw.println("<P>JDBC レコードセットオープンエラー<BR>" + e.toString() + "</P>");
    }

    // Oracle9i JDBC レコードセットリード
    try {
      while (rs.next()) {
        rw.println("<P>" + rs.getString(1) + "</P>");
      }
    } catch (Exception e) {
      rw.println("<P>JDBC レコードセットリードエラー<BR>" + e.toString() + "</P>");
    }

    // Oracle9i JDBC レコードセットクローズ
    try {
      rs.close();
    } catch (Exception e) {}

    // Oracle9i JDBC ステートメントクローズ
    try {
      st.close();
    } catch (Exception e) {}

    // Oracle9i JDBC 接続クローズ
    try {
      cn.close();
    } catch (Exception e) {}

    // HTML テイル出力
    rw.println("</BODY>");
    rw.println("</HTML>");

  }

}

■JDBC 接続、問い合わせ、レコード参照(JSP)

<%@ page import="java.util.*,java.sql.*;" contentType="text/html; charset=Shift_JIS"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>JAVA Server Page(JSP) - Oracle9i JDBC Test</TITLE>
</HEAD>
<BODY>
<P>JAVA Server Page(JSP) - Oracle9i JDBC Test</P>
<%
  String drv = "oracle.jdbc.OracleDriver";
  String dsn = "jdbc:oracle:thin:@localhost:1521:sid";
  String sql = "select * from テストm";
  Connection cn = null;
  Statement st = null;
  ResultSet rs = null;

  // Oracle9i JDBC ドライバロード
  try {
    Class.forName(drv);
  } catch (Exception e) {
    out.println("<P>JDBC ドライバロードエラー<BR>" + e.toString() + "</P>");
  }

  // Oracle9i JDBC 接続
  try {
    cn = DriverManager.getConnection(dsn, "user", "passwd");
  } catch (Exception e) {
    out.println("<P>JDBC 接続エラー<BR>" + e.toString() + "</P>");
  }

  // Oracle9i JDBC 問い合わせ SQL 作成
  try {
    st = cn.createStatement();
  } catch (Exception e) {
    out.println("<P>JDBC 問い合わせ SQL 作成エラー<BR>" + e.toString() + "</P>");
  }

  // Oracle9i JDBC レコードセットオープン
  try {
    rs = st.executeQuery(sql);
  } catch (Exception e) {
    out.println("<P>JDBC レコードセットオープンエラー<BR>" + e.toString() + "</P>");
  }

  // Oracle9i JDBC レコードセットリード
  try {
    while (rs.next()) {
      out.println("<P>" + rs.getString(1) + "</P>");
    }
  } catch (Exception e) {
    out.println("<P>JDBC レコードセットリードエラー<BR>" + e.toString() + "</P>");
  }

  // Oracle9i JDBC レコードセットクローズ
  try {
    rs.close();
  } catch (Exception e) {}

  // Oracle9i JDBC ステートメントクローズ
  try {
    st.close();
  } catch (Exception e) {}

  // Oracle9i JDBC 接続クローズ
  try {
    cn.close();
  } catch (Exception e) {}
%>
</BODY>
</HTML>