无法从EmployeeDAO类型对非静态方法list()进行静态引用

时间:2017-06-19 05:26:24

标签: hibernate spring-mvc

我正在eclipse中开发一个应用程序,使用Spring和hibernate在网页中显示数据库表。以下是我的DAO文件。

package net.codejava.spring.dao;
import java.util.List;
import net.codejava.spring.model.Employee;
public interface EmployeeDAO {
public List<Employee> list();
}

我创建的控制器是

package net.codejava.spring.controller;

import java.io.IOException;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import antlr.collections.List;
import net.codejava.spring.dao.EmployeeDAO;
import net.codejava.spring.dao.*;
public class HomeController {
private EmployeeDAO employeeDAO;

@RequestMapping(value="/")
public ModelAndView listEmployee(ModelAndView model) throws IOException{
    List<Employee> listEmployee = EmployeeDAO.list();
    model.addObject("listEmployee",listEmployee);
    model.setViewName("ome");
    return model;
}

}

现在它在我的控制器中显示一条错误消息,如&#34;无法对类型为EmployeeDAO&#34;的非静态方法列表()进行静态引用。

如何解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:0)

您应该在控制器中注入EmployeeDAO @Autowired注释。

最好定义服务层并在控制器中使用它。我想你应该有更多关于图层的信息。见this

@Autowired
private EmployeeDAO employeeDAO;

 @RequestMapping(value="/")
 public ModelAndView listEmployee(ModelAndView model) throws IOException{
   List<Employee> listEmployee = employeeDAO.list();
    model.addObject("listEmployee",listEmployee);
    model.setViewName("ome");
   return model;
}

答案 1 :(得分:0)

您可以在自动连接参考中使用2路方式使用Dao类来在控制器中创建对象。

@Autowired
private EmployeeDAO employeeDAO;

否则在dao类中使用静态方法。