Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我运行spring启动程序时,是否有任何方法可以作为第一件事来填充数据库_Java_Mysql_Spring - Fatal编程技术网

Java 当我运行spring启动程序时,是否有任何方法可以作为第一件事来填充数据库

Java 当我运行spring启动程序时,是否有任何方法可以作为第一件事来填充数据库,java,mysql,spring,Java,Mysql,Spring,我有一个应用程序,它读取文件夹中的csv文件,然后读取这些csv文件并将它们放入数据库,但我无法在运行spring boot程序后立即找出如何填充数据库 my FlightService.java package com.package.service; @Service public class FlightService{ File dir = new File("C:\\Users\\Akhil\\Desktop\\assignmentFour\\CSV"

我有一个应用程序,它读取文件夹中的csv文件,然后读取这些csv文件并将它们放入数据库,但我无法在运行spring boot程序后立即找出如何填充数据库

my FlightService.java

package com.package.service;



@Service
public class FlightService{
    File dir = new File("C:\\Users\\Akhil\\Desktop\\assignmentFour\\CSV");
    static FlightDao flightDao = (FlightDao) AppContextUtil.context.getBean("flightDao");
    
    public void readCSV() {
        File files[] = dir.listFiles();
        ArrayList<String> listofFileNames = new ArrayList<String>();
        for (File file : files) {
            Airline airline = FlightController.readFile(file);
            flightDao.saveAirline(airline);
        }
        
    }
}

我不知道我在这里做错了什么任何建议都会非常有用

您可以将文件保存在类路径(src/main/resources)中,并按照下面提到的方式加载文件

package.com.package.service

@服务 公共班机服务{

 public void readCSV() {
    InputStream stream = readerFile("CSV.txt");
    try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) {
        String line = br.readLine();
        System.out.println(line);
    } catch (IOException e) {
        //do nothing
    }
}

private InputStream readerFile(String fileName) {
    return getClass().getClassLoader().getResourceAsStream(fileName);
}

}

您可以将文件保存在类路径(src/main/resources)中,并按如下所述加载文件

package.com.package.service

@服务 公共班机服务{

 public void readCSV() {
    InputStream stream = readerFile("CSV.txt");
    try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) {
        String line = br.readLine();
        System.out.println(line);
    } catch (IOException e) {
        //do nothing
    }
}

private InputStream readerFile(String fileName) {
    return getClass().getClassLoader().getResourceAsStream(fileName);
}

}

所谓的“填充”是指创建数据库和所有必需的表吗?是的,但这不是问题所在,因为数据库正在创建,数据也已添加(我运行了测试代码以找到答案),但如何在运行我的程序和Visit m homepage
(FlightDao)AppContextUtil.context.getBean(“FlightDao”)后立即执行此操作
正在尝试在bean存在之前使用它。使用构造函数(首选)或@Autowired依赖项注入。使用static试图绕过Springbean的生命周期,这是行不通的。另请参见@PostConstruct,以便在应用程序启动后运行方法。所谓“填充”是指创建数据库和所有必需的表吗?是的,但这不是问题所在,因为数据库正在创建,数据也已添加(我运行了测试代码来了解),但如何在运行我的程序和Visit m homepage
(FlightDao)后立即执行此操作AppContextUtil.context.getBean(“flightDao”)
试图在bean存在之前使用它。使用构造函数(首选)或@Autowired依赖项注入。使用static试图绕过Springbean的生命周期,这是行不通的。另请参见@PostConstruct,以便在应用程序启动后运行方法。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flightService' defined in file [C:\Users\Akhil\Desktop\project\target\classes\com\package\service\FlightService.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
 public void readCSV() {
    InputStream stream = readerFile("CSV.txt");
    try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) {
        String line = br.readLine();
        System.out.println(line);
    } catch (IOException e) {
        //do nothing
    }
}

private InputStream readerFile(String fileName) {
    return getClass().getClassLoader().getResourceAsStream(fileName);
}