Просто фон, так как я привык использовать JDBC, так как работал над старым проектом.
При сохранении в базу данных я всегда устанавливаю значение -1 для любой неудачной вставки
public class StudentDao{
//This dao method returns -1 if unsuccessful in saving
public int save(Student stud){
Statement st = con.createStatement();
try{
int val = st.executeUpdate("INSERT student VALUES(.......)");
}catch(Exception e){
return -1;
}
}
}
Основываясь на возврате, я мог бы сказать, успешна ли вставка, чтобы я мог выполнить точную логику.
(Сообщите пользователю, что транзакция не завершена ...)
Теперь я использовал EJB в сохраняющейся сущности. Большинство учебников, которые я вижу, имеют только эту конструкцию.
Netbeans генерирует этот код также с пустым возвратом.
@Stateless
public class StudentFacade{
@PersistenceContext(unitName = "MyDBPU")
private EntityManager em;
public void save(Student student){
em.persist(student);
}
}
При сохранении сущности в сервлете он просто вызывает метод, подобный этому коду.
@WebServlet(name = "StudentServlet",
loadOnStartup = 1,
urlPatterns = {
"/addStudent",})
public class StudentServlet extends HttpServlet {
@EJB
private StudentFacade studentFacade;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//extract HTTP form request parameters then set
Student stud = Util.getStudent(request);
studentFacade.save(stud);
}
}
Но как я узнаю, что вставка прошла успешно? (Не ловите исключение, а затем просто дайте ему распространиться.
Я настроил свою страницу с ошибкой, так что, очевидно, это поймает ошибку ???)
Извините, я запутался в интеграции моих компонентов EJB, но вижу преимущества.
Мне просто нужно несколько советов по некоторым вопросам. Спасибо.