xiaoduc 2015-08-26 08:15 采纳率: 0%
浏览 1222

hibernateutils中get方法查询的对象为空

/**

  • 根据id查询
  • @param clazz
  • @param id
  • @return */

public static Object get(Class clazz,Serializable id){
Session s=null;
try{
s=HibernateUtil.getSession();
Object obj=s.get(clazz, id);
return obj;
}finally{
if(s!=null){
s.close();
}
}
}

servlet 如下

public class CollectDelete extends HttpServlet {
private static final long serialVersionUID = 1L;
Class clazz=Collect.class;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//String username = request.getParameter("username");
int shopid = Integer.parseInt(request.getParameter("shopid"));
Collect collect=new Collect();
//Object obj=HibernateUtil.get(clazz, shopid);
collect=(Collect) HibernateUtil.get(clazz, shopid);
response.setContentType("text/html;charset=UTF-8");
if(collect!= null){
    System.out.println(collect.getUsername());
    HibernateUtil.delete(collect);
    response.getWriter().println("删除成功");
}else{
    response.getWriter().println("卧槽失败了");
}
}

}

为啥shopid传进去了,查到的collect为空呢


  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 07:12
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在你的Servlet代码中,你尝试使用get()方法获取Collect对象。但是,你需要确保在调用get()之前已经正确地初始化session。此外,在doPost方法中,你没有处理可能抛出的异常。

    首先,检查是否正确创建了Session,并且它已经被打开:

    try {
        s=HibernateUtil.getSession();
    } catch (HibernateException e) {
        // Handle exception
    }
    

    其次,确保你在请求处理结束时关闭会话:

    if(s!=null){
        s.close();
    }
    

    最后,检查collect变量是否存在:

    if(collect != null){
    

    如果你仍然遇到问题,请提供更多的错误信息或日志记录,以便我能够帮助你找到具体原因。

    评论

报告相同问题?