【发布时间】:2011-10-03 06:57:48
【问题描述】:
我只是一个背景,因为我在一个旧项目上工作以来习惯使用 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);
}
}
在 servlet 上保存实体时,它只是调用此代码中的方法。
@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 组件感到困惑,但我看到了它的好处。 我只是需要一些关于某些项目的建议。谢谢。
【问题讨论】: