#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() возвращает количество затронутых строк.
Если вы хотите, я могу отправить измененный код.