- Home ›
- サーブレット/JSP入門 ›
- データベース接続 ›
- HERE
データの削除(DELETE)
広告
次はデータの削除です。
データの削除の場合も、更新の時と同じく「Statement」インターフェースで用意されている"executeUpdate"メソッドを使います。データベースに送信するSQL文が異なるだけです。
※データの更新/追加/削除のSQL文の記述方法は『データの追加/更新/削除』を参照して下さい。
実際の使い方は次のようになります。
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "delete from kabukatable where id = 4755";
int num = stmt.executeUpdate(sql);
}catch (SQLException e){
out.println("SQLException:" + e.getMessage());
}
サンプルプログラム
では簡単なサンプルプログラムで試してみましょう。
web.xmlファイルは下記のようにしました。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>databasetest</servlet-name>
<servlet-class>DatabaseTest5</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>databasetest</servlet-name>
<url-pattern>/databasetest</url-pattern>
</servlet-mapping>
</web-app>
プログラムは下記の通りです。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DatabaseTest5 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>データベーステスト</title>");
out.println("</head>");
out.println("<body>");
Connection conn = null;
String url = "jdbc:mysql://localhost/jdbctestdb";
String user = "testuser";
String password = "testpass";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "delete from kabukatable where code = 4755";
int num = stmt.executeUpdate(sql);
sql = "select * from kabukatable";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int code = rs.getInt("code");
String company = rs.getString("company");
out.println("<p>");
out.println("コード:" + code + ", 会社名:" + company);
out.println("</p>");
}
rs.close();
stmt.close();
}catch (ClassNotFoundException e){
out.println("ClassNotFoundException:" + e.getMessage());
}catch (SQLException e){
out.println("SQLException:" + e.getMessage());
}catch (Exception e){
out.println("Exception:" + e.getMessage());
}finally{
try{
if (conn != null){
conn.close();
}
}catch (SQLException e){
out.println("SQLException:" + e.getMessage());
}
}
out.println("</body>");
out.println("</html>");
}
}
上記をコンパイル後に「d:¥servlet-sample¥database¥WEB-INF¥classes¥」ディレクトリにクラスファイルを移動した後で、ブラウザで「http://localhost:8080/database/databasetest」へアクセスしてみます。
今回は行を1行削除し、その後全データを取り出して表示しました。
( Written by Tatsuo Ikura )
JavaDrive