- Home ›
- サーブレット/JSP入門 ›
- データベース接続
データの削除(DELETE)
広告
次はデータの削除です。
データの削除の場合も、更新の時と同じく「Statement」インターフェースで用意されている"executeUpdate"メソッドを使います。データベースに送信する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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。