通过JAVA将CSV导入MySQL

时间:2016-01-28 11:29:28

标签: java mysql csv

所以我试图通过我的Java程序将CSV文件导入我的MySQL数据库。该程序会导入文件中的所有内容,就像它想要的那样,但是第一行,它会发送到表的末尾,程序会在那里看到它,但如果我搜索那个nr,它说它不存在。如果我直接进入数据库表并编辑nr(如果nr是137,我再次编辑并写入137),程序会识别出nr,如果我搜索它,它会找到,并且数据库表会组织本身并将该条目发送到假设的位置。 我只是没有看到任何逻辑。我有人可以帮助我,我很感激。

LOAD DATA INFILE 'C:\\Users\\carla.DESKTOP-9364K9K\\Desktop\\Alunos_1.csv'
INTO TABLE utentes character set utf8
FIELDS TERMINATED BY ','
(NrProcesso, Nome, @Nome_Resumido, Ano, Turma, @Subsidio, @Nome_EE, @NIF, @email, @Obs)
SET 
Subsidio = IF(@Subsidio='','Nenhum',@Subsidio),
Nome_Resumido = IF(@Nome_Resumido='',NULL,@Nome_Resumido),
Nome_EE = IF(@Nome_EE='',NULL,@Nome_EE),
NIF = IF(@NIF = '', NULL,@NIF), 
email = IF(@email='',NULL,@email),
Obs = IF(@Obs='',NULL,@Obs);

提前致谢。

1 个答案:

答案 0 :(得分:0)

您已经做了一些事情来检查单元格/列值并形成一个sql以在MySQL中注入。

public List<Object> getRecordingsListFromCsv(String csvFileLocation, String mp3FileLocation, String mp3FileLocation2, String saveFileLocation, ChannelSftp sftp) {
        Map<String, File> recordingsFilesMap = null;
        BufferedReader br = null;
        List<String> errorFilesList = new ArrayList<>();
        List<Object> tempList = new LinkedList<>();
        try {
            csvRows = 0;
            recordingsFilesMap = new LinkedHashMap<>();
            br = new BufferedReader(new FileReader(csvFileLocation));
            String line = br.readLine();
            scriptLog.info("\n" + csvFileLocation + " loaded. Parsing File...");

            while ((line = br.readLine()) != null) {

                String[] csvArray = parseCsvLineToArray(line);
//                System.out.println(Arrays.asList(csvArray) + "\n\n");
                if (csvArray[0].trim().isEmpty()) {
                    continue;
                }
                /* Do your stuff here */

                csvRows++;

            }
        } catch (FileNotFoundException e) {
            scriptLog.error("\n---ERROR---\n    FILE NOT FOUND: " + csvFileLocation);
            String errorStr = "Type=" + e.toString();
            errorStr += "StackTrace=" + Arrays.toString(e.getStackTrace());
            scriptLog.error(errorStr);
        } catch (IOException e) {
            String errorStr = "Type=" + e.toString();
            errorStr += "StackTrace=" + Arrays.toString(e.getStackTrace());
            scriptLog.error(errorStr);
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    System.out.println(e.toString());
                }
            }
        }

希望它能在某种程度上帮助你!!