在我的Web應用程序中,我試圖刪除數據庫中的一行,但它似乎不起作用,我試圖找出原因,但我不能。這裏是我的DAO類:使用Java,Hibernate和servlet從數據庫中刪除行
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,因爲我試圖從數據庫中獲取一個用戶,我得到了空指針異常。
警告我得到: 的log4j:警告沒有附加目的地可以爲記錄器(org.hibernate.type.BasicTypeRegistry)中找到。 log4j:WARN請正確初始化log4j系統。 log4j:WARN有關更多信息,請參閱http://logging.apache.org/log4j/1.2/faq.html#noconfig。
是否有錯誤消息或完整的堆棧跟蹤?如果有,請將其包含在問題中。 – msagala25
沒有錯誤信息,但有一些警告。 – user3848412