Содержимое таблицы базы данных не будет отображаться, когда я использую класс гибернации

#hibernate

#спящий режим

Вопрос:

Класс POJO был создан правильно вместе с классом Util.Вот классы controller и model.dao:

 package model.dao;

import java.util.List;
import model.pojo.Device;
import model.util.HibernateUtil;
import org.hibernate.Query;
import org.hibernate.Session;

public class DeviceDAO {
    public static List<Device> layDS(){
        List<Device> lst=null;
        try{
            Session session=HibernateUtil.getSessionFactory().openSession();
            String hql="from device";
            Query query;
            query = session.createQuery(hql);
            lst=query.list();
            session.close();
        }catch(Exception e){
            e.printStackTrace();
        }


    return lst;}
}
//end of deviceDAO
  

Теперь класс DeviceController:

 package controller;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.dao.DeviceDAO;
import model.pojo.Device;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class DeviceController implements Controller{

    @Override
    public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
ModelAndView mv=new ModelAndView("devices");
    try{
        List<Device> lst=DeviceDAO.layDS();
        mv.addObject("devices",lst);
    }catch(Exception e){
        e.printStackTrace();
    }
    return mv;}

}
//end of deviceController class
  

Вот файл devices.jsp:

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Device List!</h1>
        <table>
            <tr>
                <th>ID</th><th>latitude</th><th>longitude</th>
            </tr>
            <c:forEach var="device" items="${devices}">
                <tr>
                    <td>
                        <c:out value="${device.getDevId()}"></c:out>
                    </td>
                    <td>
                    <c:out value="${device.getLatitude()}"></c:out>
                    </td>
                     <td>
                        <c:out value="${device.getLongitude()}"></c:out>
                    </td>
                </tr>
            </c:forEach>
        </table>
    </body>
</html>

//end of device.jsp file
  

Вот два дополнения, которые я сделал в dispatcher-servlet.xml класс:

 <bean class="controller.DeviceController" id="DeviceController" />
 <prop key="devices.jsp">DeviceController</prop>
  

Я протестировал соединение с базой данных, и оно работает нормально, но я не уверен, почему содержимое таблицы в базе данных не отображается.

Пожалуйста, помогите мне выяснить, что я делаю не так!

Комментарии:

1. Ну, для начала, ваш запрос HQL недействителен. Ваша сущность называется Device , а не device . Используйте свой отладчик, не игнорируйте исключения, если вы открываете сеансы, закройте их в блоке finally, как описано в документации.

2. Я изменил имя на Device, данные по-прежнему не отображаются, исключение не возникает, отладчик также не показывает никаких ошибок

3. Отладчик не используется для отображения ошибок. Это позволяет пошагово просматривать код шаг за шагом и, таким образом, видеть, что на самом деле выполняется, что на самом деле возвращает запрос и т.д. Сначала вам нужно выяснить, в чем проблема: это проблема с запросом, с JSP, с контроллером, с настройками базы данных, с данными базы данных?