Всегда ли csv jdbc требует, чтобы строка заголовка была в той же последовательности, что и в реальном файле csv?
У меня есть файл CSV 1.csv в определенном месте, определенном как
идентификатор,applicationdate,joiningdate, заработная плата, премии
1,2000-01-01,,100200
Я читаю набор результатов, используя пример, определенный в http://csvjdbc.sourceforge.net/doc.html
и вот мой пример программы.
try {
Class.forName("org.relique.jdbc.csv.CsvDriver");
Properties props = new Properties();
/*props.put("headerline", "applicationdate,id,joiningdate,salary,bonus");
props.put("columnTypes", "date,int,date,int,int");*/
props.put("headerline", "id,applicationdate,joiningdate,salary,bonus");
props.put("columnTypes", "int,date,date,int,int");
Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + "D:\\New",props);
Statement stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("SELECT applicationdate,id,joiningdate,salary,bonus FROM 1");
while(results.next()) {
int id = results.getInt("id");
Date applicationdate = results.getDate("applicationdate");
int salary = results.getInt("salary");
int bonus = results.getInt("bonus");
Date joiningdate = results.getDate("joiningdate");
System.out.println(id+":"+applicationdate+":"+joiningdate+":"+salary+":"+bonus);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
Текущая программа работает просто отлично. Но если я изменю последовательность headerline и columnTypes, раскомментировав часть кода с оператором props.put, программа не будет правильно читать id и дату приложения?
Поскольку генерация csv не контролируется, есть ли лучший выход для обработки этой программы или есть какой-либо другой драйвер jdbc, рекомендованный для того же?