Я создаю проект с использованием сервлета и jsp

#jsp #servlets #jstl

#jsp #сервлеты #jstl

Вопрос:

Я написал это, и оно работает должным образом, и данные сохраняются в базе данных, но ни один оператор не выполняется после инструкции execute(). Пожалуйста, помогите мне…

общедоступная статическая строка addNewMember(MemberRegister member){ Строковое сообщение= null; попробуйте {

         if(!(IsUserValid(member.getEmail()))){
            conn=getConnection();
            System.out.println("user not exist");
            callStmt = conn.prepareCall("{call insertMember(?,?,?)}");
            callStmt.setString(1, member.getCompanyName());
            callStmt.setString(2, member.getEmail());
            callStmt.setString(3, member.getPassword());

            //register the OUT parameter before calling the stored procedure
            System.out.println(callStmt.execute());

            //read the OUT parameter now
            message="Record added successfully";
         }
        else{
            message="Record already exists";
        }
}
    catch(SQLException e)
    {
        e.printStackTrace();
    }
    finally
    {
        try {
            if(callStmt != null)
                callStmt.close();
            if(conn != null)
                conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    System.out.println("Hello " message);
    return message;
}
  

Ответ №1:

попробуйте использовать метод executeUpdate() (потому что INSERT — это DML), который унаследован от PreparedStatement . Он вернет значение int и проверит возвращаемое значение int, чтобы увидеть, выполнено ли оно или нет.

executeUpdate() возвращает количество затронутых строк.

Если вы хотите, я могу отправить измененный код.