2016-01-28 3 views
-1

Итак, я пытаюсь импортировать CSV-файл в мою базу данных MySQL через мою программу Java. Программа импортирует все, что находится в файле, как и предполагалось, но первая строка, она отправляется в конец таблицы, и программа видит, что она есть, но если я ищу этот номер, он говорит, что он не существует , И если я перейду непосредственно к таблице базы данных и отредактирую nr (если nr - 137, и я снова и снова редактирую и пишу 137), программа распознает это nr, и если я его найду, он найдет, а таблица базы данных будет организована и отправляет эту запись, где она должна быть. Я просто не вижу в этом никакой логики. Я мог бы помочь мне, я бы оценил.Импорт CSV в MySQL через JAVA

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); 

Заранее спасибо.

+0

Вам нужно показать код, который вы используете, чтобы люди могли вам помочь. –

+0

Проблема не в коде, если бы это было так, первая строка была бы исключена, и это не так, MySQL просто не распознает ее, пока не будет отредактирован –

ответ

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()); 
       } 
      } 
     } 

Надеюсь, это поможет вам в некоторой степени !!

Смежные вопросы