Добавление данных в базу данных не работает, когда выполняется со страницы JSP, но работает, когда выполняется из класса java - PullRequest
0 голосов
/ 11 марта 2020

так что это, вероятно, проблема новичка, но я новичок во всем этом и очень растерялся.

У меня есть класс Java, называемый User (), который должен добавлять данные в базу данных Java, и моя цель - получить это из пользовательского ввода на странице JSP. Когда я пытаюсь вызвать метод addUser () из основного класса java, он работает, и данные успешно добавляются в таблицу DB Java. Но проблема возникает, когда я вызываю точно такой же метод со своей страницы JSP, он не работает.

Я использовал отладчик Netbeans, и я обнаружил, что в методе addUser () происходит сбой метода "pstmt.executeUpdate ()", но почему? Чем отличается страница JSP от класса Java? Спасибо за любую помощь, спасибо.

Просто чтобы вы знали, что вызов других методов со страницы JSP прекрасно работает, а также что строки "SQLCon.Connect ()" и "pstmt = SQLCon.getConn (). PrepareStatement (SQL) работает отлично ", ниже мой код.

Внутри JSP Page.

<%
User u = new User();
out.println(u.addUser());
%>

Код в addUser () Метод:

 public static boolean addUser() throws SQLException {
    try {
        SQLCon.Connect();

        String SQL = "INSERT INTO USERS"
                + " (id, FirstName, LastName, Email, Username)"
                + " values (?,?,?,?,?)";

        pstmt = SQLCon.getConn().prepareStatement(SQL);

        pstmt.setInt(1, 1); //This is temporary, will make this into pk, not null, and auto increment
        pstmt.setString(2, "first name");
        pstmt.setString(3, "last name");
        pstmt.setString(4, "email");
        pstmt.setString(5, "username");

        pstmt.executeUpdate(); //JUMPS TO THE CATCH HERE

        return true;
    } catch (Exception exc) {
        exc.printStackTrace();
        return false;
    }
}
...