PostgreSQL
環境
- Windows Vista
- jre 1.6
- Eclipse 3.4.2
- Tomcat 6.0
- PostgreSQL 8.4.701
- JDBC: postgresql-8.4-701.jdbc4.jar
手順
- PostgreSQLをダウンロード&インストール
- PostgreSQLにDBを作成
- 作成したDBにテーブルと列を作成
- 作成したテーブルにレコードを作成
- PostgreSQL用JDBCをダウンロード
- %CATALINA_HOME%\lib にJDBCのjarをセット
- CLASSPATHにJDBCのjarを登録
- Eclipseに新規に動的Webプロジェクトを生成
- Servletクラスを生成
- コーディング(下記参照)
Servletのソース
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.*;
import java.sql.*;
/**
* Servlet implementation class TestServlet
*/
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String drv = "org.postgresql.Driver";
String dsn = "jdbc:postgresql://localhost:5432/testdb";
String usr = "postgres";
String pwd = "hoge";
String sql = "select * from staff";
Connection cn = null;
Statement st = null;
ResultSet rs = null;
// コンテンツタイプ指定
response.setContentType("text/html; charset=SJIS");
// HTML ヘッダ出力
PrintWriter rw = response.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 - PostgreSQL JDBC Test</TITLE>");
rw.println("</HEAD>");
rw.println("<BODY>");
rw.println("<P>JAVA Servlet - PostgreSQL JDBC Test</P>");
// PostgreSQL JDBC ドライバロード
try {
Class.forName(drv);
} catch (Exception e) {
rw.println("<P>JDBC ドライバロードエラー<BR>" + e.toString() + "</P>");
}
// PostgreSQL JDBC 接続
try {
cn = DriverManager.getConnection(dsn,usr,pwd);
} catch (Exception e) {
rw.println("<P>JDBC 接続エラー<BR>" + e.toString() + "</P>");
}
// PostgreSQL JDBC 問い合わせ SQL 作成
try {
st = cn.createStatement();
} catch (Exception e) {
rw.println("<P>JDBC 問い合わせ SQL 作成エラー<BR>" + e.toString() + "</P>");
}
// PostgreSQL JDBC レコードセットオープン
try {
rs = st.executeQuery(sql);
} catch (Exception e) {
rw.println("<P>JDBC レコードセットオープンエラー<BR>" + e.toString() + "</P>");
}
// PostgreSQL JDBC レコードセットリード
try {
while (rs.next()) {
// 検索された行数分ループ
// idを取得
int id = rs.getInt("id");
// nameを取得
String name = rs.getString("name");
// 表示
rw.println("<P>" + id + " " + name + "</P>");
//rw.println("<P>" + rs.getString(1) + "</P>");
}
} catch (Exception e) {
rw.println("<P>JDBC レコードセットリードエラー<BR>" + e.toString() + "</P>");
}
// PostgreSQL JDBC レコードセットクローズ
try {
rs.close();
} catch (Exception e) {}
// PostgreSQL JDBC ステートメントクローズ
try {
st.close();
} catch (Exception e) {}
// PostgreSQL JDBC 接続クローズ
try {
cn.close();
} catch (Exception e) {}
// HTML テイル出力
rw.println("</BODY>");
rw.println("</HTML>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
最終更新:2010年05月09日 00:24