■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>