演習課題「jobsテーブルのデータを更新する」
右の環境には、ServletでMySQLからjobsテーブルのデータを表示するプログラムが作成してあります。
追加で、以下のデータを更新するプログラムを作成してください。クラス名は「ExecuteSqlServlet」とします。
- idが3のレコードのvitalityを10にする
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#06:データを更新、削除してみよう
ここでは、先ほどの続きとして、データベースの更新・削除について学習します。この機能を使うことで、RPGのプレイヤーの名前を変更したり、プレイヤーを削除したりできます。
(tomcat/webapps/mydatabase/ExecuteSqlServlet.java)// JDBCで、データーベース追加・更新・削除
// Servlet単独
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExecuteSqlServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String url = "jdbc:mysql://localhost/mydb";
String user = "root";
String password = "";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try (Connection connection = DriverManager.getConnection(url, user, password);
PreparedStatement statment = connection.prepareStatement("UPDATE players SET level = level + 1 WHERE id = 11")) {
int number = statment.executeUpdate();
} catch (Exception e) {
request.setAttribute("exception", "Execute exception:" + e.getMessage());
}
String forward = "/show";
RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
dispatcher.forward(request, response);
}
}
(tomcat/webapps/mydatabase/ExecuteSqlServlet.java)// JDBCで、データーベース追加・更新・削除
// Servlet単独
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ExecuteSqlServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String url = "jdbc:mysql://localhost/mydb";
String user = "root";
String password = "";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try (Connection connection = DriverManager.getConnection(url, user, password);
PreparedStatement statment = connection.prepareStatement("DELETE FROM players WHERE id = 11")) {
int number = statment.executeUpdate();
} catch (Exception e) {
request.setAttribute("exception", "Execute exception:" + e.getMessage());
}
String forward = "/show";
RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
dispatcher.forward(request, response);
}
}
- Javaの道>Servlet・JSP
https://www.javaroad.jp/servletjsp/index.html
- Servletアプリ開発:目次 - Web系開発メモ
http://web-dev.hatenablog.com/entry/java/servlet/dev-restful-app/table-of-contents
- JSP(formデータ)とJava Servletプログラムの連携 - はしくれエンジニアもどきのメモ
http://cartman0.hatenablog.com/entry/2015/12/08/181657
- データベース接続 - サーブレット入門
https://www.javadrive.jp/servlet/database/