Java.lang.nullpoInterException即使该方法将在春季带来一些回报



我有一个控制器,我可以从数据库中验证用户并检索文件列表(是文件名)。数据库有两个表,一个是用户,另一个是文件。它可以正确验证用户,但甚至都不适用于被归档的方法。我知道变量filedao是空的,但是是否应该像Userdao Whis一样执行它吗?

在" user person"行中,= userdao.findbyName(用户名); "变量userdao也为null,不是吗?但是,这个方法正确调用了该方法,并使用用户名的存在并带回用户验证用户。但是,以相同的方式,我试图创建一个变量文件,并发送fileDao将属于矩阵/ID的文件发送给给定的文件。我不明白的是,为什么它在Userdao中不显示任何错误,而是在filedao中?
它向我显示了java.lang.NullPointerException错误。有人可以帮我吗?

private UserDAO userDAO;
private FileDAO fileDAO;
@RequestMapping("/home") 
public String validate(@RequestParam("username") String username, 
@RequestParam("password") String password, Model model) {
    User person = userDAO.findByname(username);
    File userfiles = null;
    if(person.getPassword().toString().equals(password)) {
        String PersonName = person.getPersonname();
        model.addAttribute("personname", PersonName);
        //
        System.out.println("Here the file will be printed and the matricula is");
        Long matricula = Long.parseLong(username);
        //Userfiles = (List<File>) FileDAO.findByMatricula(matricula);
        userfiles = fileDAO.findByMatricula(matricula);
        //System.out.println(FileDAO.findByMatricula(matricula));
        model.addAttribute("Userfiles", userfiles);
        return "Home_e65";
    } else {
            return "e45_login";
            }
}

我的filedao类是这样的:

 package com.anjan.udharan.repository;
import java.util.List;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import com.anjan.udharan.model.File;
@Repository
public class FileDAO {
private class FileMapper implements RowMapper<File> {
    public File mapRow(ResultSet row, int rowNum) throws SQLException {
     File file = new File();
     file.setID(row.getLong("file_id"));
     file.setFile_name(row.getString("file_name"));
     file.setMatricula(row.getLong("id"));
     file.setFile_initial_date(row.getString("file_initial_date"));
     file.setFile_final_date(row.getString("file_final_date"));
     return file;
     }
    }
@Autowired
private JdbcTemplate jdbcTemplate;
public File findByMatricula(Long id) {
     String sql = "select * from files where id=?";
     File file = jdbcTemplate.queryForObject(sql, new
     Object[]{id}, new FileMapper());
     return file;
    }
public List<File> findAll() {
     String sql = "select * from files";
     List<File> userList = jdbcTemplate.query(sql,
    ParameterizedBeanPropertyRowMapper.newInstance(File.class));
     return userList;
    }
}

和我的file.java就是这样:

package com.anjan.udharan.model;
 public class File {
     private Long file_id=null;
     private Long id=null;
     private String file_name=null;
     private String file_initial_date=null;
     private String file_final_date=null;
 public File(){
 }
public File(String file_name, Long id, String file_initial_date, String file_final_date){
    this.id = id ;
    this.file_name = file_name;
    this.file_initial_date = file_initial_date;
    this.file_final_date = file_final_date;
 }
public Long getID() {
    return file_id;
}
public void setID(Long matricula) {
    this.file_id = matricula;
}
public Long getMatricula() {
    return id;
}
public void setMatricula(Long matricula) {
    this.id = matricula;
}
public String getFile_name() {
    return file_name;
}
public void setFile_name(String file_name) {
    this.file_name = file_name;
}
public String getFile_initial_date() {
    return file_initial_date;
}
public void setFile_initial_date(String file_initial_date) {
    this.file_initial_date = file_initial_date;
}
public String getFile_final_date() {
    return file_final_date;
}
public void setFile_final_date(String file_final_date) {
    this.file_final_date = file_final_date;
}
}

我的配置类是:

package com.anjan.udharan.config;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
@Configuration
@EnableWebMvc
@ComponentScan 
(basePackages = {"com.anjan.udharan.*"})
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver jspViewResolver(){
InternalResourceViewResolver resolver = new
InternalResourceViewResolver();
resolver.setViewClass(JstlView.class);
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/css/**").addResourceLocations("/resources/css/");
    registry.addResourceHandler("/img/**").addResourceLocations("/resources/img/");   // equivale al dir src/main/webapp/resources/img en la vista de files
    registry.addResourceHandler("/js/**").addResourceLocations("/resources/js/");
    registry.addResourceHandler("/fonts/**").addResourceLocations("/resources/fonts/");
}
@Bean
public DataSource dataSource() {
 DriverManagerDataSource dataSource = new DriverManagerDataSource();
 dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 dataSource.setUrl("jdbc:mysql://localhost:3306/alumnos");
 dataSource.setUsername("root");
 dataSource.setPassword("");
 return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
 return new JdbcTemplate(dataSource);
}

}

,而不是@Autowired让我们尝试一下继承的JDBCTEMPLATE@repository公共类FILEDAO扩展了jdbctemplate缺少@AutowiewD for dao

最新更新