JAVA servlet ( insert MySQL) [закрыт]

134
28 октября 2019, 10:50

Я написал код который добавляет имя и фамилию студента в БД. Я все написал но почему то он только NULL выводит

Мой JSP

<%-- 
    Document   : index
    Created on : 26.02.2019, 9:56:07
    Author     : Adil
--%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mysql Database Connection using jsp, servlet and tomcat</title>
</head>
<body>
<h1>Student</h1>

<form action="firstdbserv" method="Post">
            Name : <input type="text" name="name"><br><br>     
            Surname : <input type="text" name="surname"><br><br>
        <input type="submit" value="Submit"><br>
    </form>
</body>
</html> 

Мой сервлет

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 *
 * @author Adil
 */
public class firstdbserv extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet firstdbserv</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet firstdbserv at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        PrintWriter out = response.getWriter();
        String name = request.getParameter("name");
        String surname = request.getParameter("surname");

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT","root","123456");
            Statement st = conn.createStatement();
            String sql = "INSERT INTO student (name, surname) VALUES( name,surname)";
            st.executeUpdate(sql);
            out.println("Data is Successfully Inserted into Student Table");
               }catch (ClassNotFoundException e) {
              e.printStackTrace();
        } catch (SQLException e) {
              e.printStackTrace();
         }
    }
    }
Answer 1

У тебя неверный способ передачи параметров. Их надо передавать через ?.

Замени

Statement st = conn.createStatement();
String sql = "INSERT INTO student (name, surname) VALUES( name,surname)";
st.executeUpdate(sql);

на

String sql = "INSERT INTO student (name, surname) VALUES(?,?)";
try(PreparedStatement st = con.prepareStatement(sql)){
   st.setString(1,name);
   st.setString(2,surname);
   st.executeUpdate();
};

P.S. Обрати внимание на конструкцию try-with-resource. Создание Connection желательно также заключать в такую конструкцию.

READ ALSO
Передача значения переменной из метода

Передача значения переменной из метода

Есть 3 класса: ApiConfig, ApiData и ApiSteps

114
Android: Анимация при отрисовке Bitmap

Android: Анимация при отрисовке Bitmap

Есть SurfaceView с отрисокой изображений onDraw()Все работает отлично, подскажите как выполнить анимацию этого bitmap на канвасе

133
Custom Adapter with EditText проблема с позицией

Custom Adapter with EditText проблема с позицией

Уважаемые специалисты, бьюсь вот уже несколько часовЗадача, генерировать динамически список с помощью кастомного адаптера, проверять чтобы...

109