使用href link,使用Javaservlet和hibernate从数据库中删除一行
我在互联网上寻找答案,但我不了解提供的解决方案,所以这是我最后的选择:基本上我有一个表,我想添加、删除和编辑记录。在jsp中,我的代码是:
<c:forEach items="${All}" var="p">
<tr>
<td>${p.id}</td>
<td>${p.firstName}</td>
<td>${p.middleName}</td>
<td>${p.lastName}</td>
<td>${p.email}</td>
<td><a href="edit?id=${p.id}">Edit</a>
<a href="delete?id=${p.id}">Delete</a></td>
</tr>
</c:forEach>
但当我点击delete时,它会将我重定向到404状态码和一个带有delete的链接?id=1。那么,如何使链接转到我的DeletePost servlet,在那里删除行,然后重定向到显示表的页面
编辑:在我的web应用程序中,我试图删除数据库中的一行,但它似乎不起作用,我试图找出原因,但我不能。下面是我的dao类:
public class userDao {
private SessionFactory factory, session;
public userDao(SessionFactory factory) {
this.factory = factory;
}
public void delete(long id){
Session session1 = factory.openSession();
Transaction tx = null;
List<User> u = null;
try {
tx = session1.beginTransaction();
Query query = session1.createQuery("SELECT * FROM user_table WHERE id = :id");
query.setParameter("id", id);
System.out.println("aaaaa" + id);
u = query.list();
session1.delete(u.get(0));
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
} finally {
session1.close();
}
}
}
在我的servlet中,我有:
public class DeleteServlet extends HttpServlet{
userDao u = new userDao(new Configuration().configure().buildSessionFactory());
User a = new User();
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
System.out.println("asa");
response.sendRedirect("/A1.2/home.jsp");
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String s = request.getParameter("id");
long id = Long.parseLong(s);
u.delete(id);
response.sendRedirect("/A1.2/home.jsp");
}
}
我认为问题出在dao中,因为我试图从数据库中获取一个用户,但得到了空指针异常
共 (0) 个答案