import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class EmpUpd extends HttpServlet 
{
  Connection conn = null;

  private static final String CONTENT_TYPE = "text/html; charset=windows-1252";

  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }

  public void doGet (
    HttpServletRequest request
  , HttpServletResponse response
  ) throws ServletException, IOException
  {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
    }
    catch (ClassNotFoundException e) {
    out.println(e);
    }
    catch (SQLException se) {
    out.println("ERROR: " + se.toString());
    }

    String t_empno = request.getParameter("p_id");
    String t_ename = request.getParameter("p_ename");
    String t_job = request.getParameter("p_job");
    String t_hiredate = request.getParameter("p_hiredate");

    String t_sql =
      "update emp "
    + "set ename=?, job=?, hiredate=to_date(?, 'dd.mm.yyyy') "
    + "where empno = ?";

    out.println (
      "<html>"
    + "<head><title>Update Employee</title></head>"
    + "<body><h3>Update Employee</h3>"
    );

    try {
      PreparedStatement stmt = conn.prepareStatement(t_sql);

      stmt.setString(1, t_ename);
      stmt.setString(2, t_job);
      stmt.setString(3, t_hiredate);
      stmt.setString(4, t_empno);

      int t_counter = stmt.executeUpdate();

      conn.commit();
      
      out.println (
        "<h3>Number of records updated: " + t_counter + "</h3>"
      + "<a href=\"EmpList\">Back to list</a>"
      );
    }
    catch (SQLException se) {
      se.printStackTrace(out);
    } finally {
      if (conn != null) {
        try {
          conn.close();
        } catch (SQLException ignored) {}
      }
    }

    out.println("</body></html>");
    out.close();
  }
}