Webアプリケーションでデータベース内の行を削除しようとしていますが、動作していないように見えます。ここに私のDAOクラスです:Java、Hibernate、サーブレットを使用してデータベースから行を削除する
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();
}
}
}
そして、私のサーブレットに私が持っている:
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");
}
}
私は、データベースからユーザーを取得しようとしましたし、私がnullを得たので問題はDAOであると思いますポインタ例外。
警告: log4j:WARN logger(org.hibernate.type.BasicTypeRegistry)のアペンダーは見つかりませんでした。 log4j:WARN log4jシステムを適切に初期化してください。 log4j:WARN詳細については、http://logging.apache.org/log4j/1.2/faq.html#noconfigを参照してください。
エラーメッセージまたは完全なスタックトレースがありますか。それがあれば、それを質問に含めてください。 – msagala25
エラーメッセージは表示されませんが、警告が表示されます。 – user3848412