Всегда ли 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, рекомендованный для того же?

0 ответов

Другие вопросы по тегам