2016-01-28 3 views
-1

J'essaie donc d'importer un fichier CSV dans ma base de données MySQL via mon programme Java. Le programme importe tout ce qui est dans le fichier, comme il est supposé le faire, mais la première ligne, elle est envoyée au bout de la table, et le programme la voit, mais si je la recherche, elle dit qu'elle n'existe pas . Et si je vais directement à la table de base de données et édite le nr (si le nr est 137, et je modifie et écris 137 à nouveau) le programme reconnaitra nr, et si je le cherche, il trouvera, et la table de base de données organisera lui-même et envoie cette entrée où est supposé être. Je ne vois pas de logique dans tout ça. Quelqu'un pourrait m'aider, j'aurais apprécié.Importation de CSV dans MySQL via 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); 

Merci d'avance.

+0

Vous devez montrer le code que vous utilisez pour que les gens puissent vous aider. –

+0

Le problème n'est pas dans le code, si c'était le cas, la première rangée serait omise, et ce n'est pas le cas, MySQL ne le reconnait pas, jusqu'à ce qu'il soit édité –

Répondre

0

Vous devez faire quelque chose pour vérifier la valeur de la cellule/colonne et former un sql à injecter dans 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()); 
       } 
      } 
     } 

Espérons que cela vous aidera dans une certaine mesure !!