2017-09-06 5 views
0

Ich versuche, csv in meine MySQL-Datenbank mit jOOQ zu laden, wie immer ich erhalte folgende error.I versucht, verschiedene Lösungen auf Netz vorgeschlagen, aber kann nicht fix itFalsche String-Wert - jOOQ - Java

Error: org.jooq.exception.DataAccessException: SQL [insert into `Test`.`testtable` <mydata> Incorrect string value: '\xEF\xBF\xBD15 ...' for column 'colum_Name' at row 1 

Wie ich ist das Hochladen von csv

create.loadInto(Tables.TableName) 
               .onErrorIgnore() 
               .loadCSV(new File("/tmp/uploaded-files/" + fileName), "UTF-8").<fields>.execute(); 

ich stelle sicher, Datei in utf-8 ist jOOQ jedoch, wann immer UTF-8-Zeichen Rekord in DB versagt wird zu speichern und über error.I werfen gewährleistete

file -i <filename> 
mit

Front ajax Ende:

$.ajax({ 
    type: "POST", 
    enctype: 'multipart/form-data', 
    url: fileUploadUrl, 
    data: dataforFileUpload, 
    processData: false, 
    contentType: false, 
    cache: false, 
    timeout: 600000, 
    success: function (message) { 
     console.log(message); 
     alert(message); 
     console.log("upload done "+ new Date()); 

    }, 
    error: function (e) { 
     console.log("ERROR : ", e.responseText); 
     alert("ERROR : "+ e.responseText); 

    } 
}); 

Ich erhalte Datei von meinem Frontend es über java ruhen

InputStream inputStream = listingFilePart.getBody(InputStream.class, null); 

und Schreiben von Dateien rekursiv in lokalen System zu lesen, bevor

PrintWriter fop = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file, true), StandardCharsets.UTF_8)); 
jOOQ vorbei

Ich setze meine DB, um utf-8 zu akzeptieren, und ich verifizierte das

Antwort

0

Ich habe das Problem gefunden.Ausgabe ist auf Ajax Anruf. Ich muss Zeichensatz mit enctype wie

$.ajax({ 
    type: "POST", 
    enctype: 'multipart/form-data;charset=UTF-8', 
    url: fileUploadUrl, 
    data: dataforFileUpload, 
    processData: false, 
    contentType: false, 
    cache: false, 
    timeout: 600000, 
    success: function (message) { 
     console.log(message); 
     alert(message); 
     console.log("upload done "+ new Date()); 

    }, 
    error: function (e) { 
     console.log("ERROR : ", e.responseText); 
     alert("ERROR : "+ e.responseText); 

    } 
}); 
senden