[Web] サーブレットで検索
- 2011-01-13 Thu 13:04:46
- JDBC
サーブレットでデータベースの更新作業をしたからには、検索もやらねばなりますまい(?)。
[dbweb]フォルダの下に「DBWebSelect1.java」および「DBWebSelect2.java」を作成し、前者はStatement、後者はPreparedStatementを利用します。
web.xmlは、
<servlet>
<servlet-name>DBWebSelect1</servlet-name>
<servlet-class>dbweb.DBWebSelect1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DBWebSelect1</servlet-name>
<url-pattern>/DBWebSelect1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DBWebSelect2</servlet-name>
<servlet-class>dbweb.DBWebSelect2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DBWebSelect2</servlet-name>
<url-pattern>/DBWebSelect2</url-pattern>
</servlet-mapping>
上のソースを追加します。
Statementを利用したソース
package dbweb;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dbjava.DBManager;
public class DBWebSelect1 extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/plain; charset=Windows-31J");
PrintWriter out=response.getWriter();
Connection con=null;
Statement smt=null;
ResultSet rs=null;
try{
String name="'太郎'";
String sql="select * from account where name="+name;
con=DBManager.testConnection();
smt=con.createStatement();
rs=smt.executeQuery(sql);
while(rs.next()){
out.println(
"ID="+rs.getInt("ID")
+", NAME="+rs.getString("NAME")
+", MONEY="+rs.getString("MONEY")
);
}
smt.close();
con.close();
}catch(SQLException e){
out.println("検索できませんでした。");
}finally{
if(smt !=null){
try{
smt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(con !=null){
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}
PreparedStatementを利用したソース
package dbweb;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dbjava.DBManager;
public class DBWebSelect2 extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/plain; charset=Windows-31J");
PrintWriter out=response.getWriter();
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
String name="太郎";
String sql="select * from account where name=?";
con=DBManager.testConnection();
ps=con.prepareStatement(sql);
ps.setString(1, name);
rs=ps.executeQuery();
while(rs.next()){
out.println(
"ID="+rs.getInt("ID")
+", NAME="+rs.getString("NAME")
+", MONEY="+rs.getString("MONEY")
);
}
ps.close();
con.close();
}catch(SQLException e){
out.println("検索できませんでした。");
}finally{
if(ps !=null){
try{
ps.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(con !=null){
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}
今回も特にコメントはありません。
スポンサーサイト
タグ :
Comments: