fc2ブログ

[Web] サーブレットで検索

  • Posted by: servletmania
  • 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();
}
}
}
}
}


今回も特にコメントはありません。
スポンサーサイト



タグ :

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://servletmania.blog137.fc2.com/tb.php/42-027b406d
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
QRコード
QR