2013-08-22 3 views
0

Я вставляю данные из файла CSV в базу данных MySql, особенно в одну таблицу.Как решить данные Усеченные?

Я использую CSVRead и формат файла CSV является:

ц, Вэл

2013-03-31T23: 45: 00-04: 00 New_York, 10

И таблица hisdata(ts, val).

Вот мой код:

 try{ 
     try { 
      CSVReader reader = new CSVReader(new FileReader(csvFile)); 

      List<String[]> csvList; 

      csvList = reader.readAll(); 
      System.out.println("Start: size is " + csvList.size()); 

      for(int i = 0; i<csvList.size(); i++){ 

       String[] eachStr = csvList.get(i); 
       int j = 0; 

       //insert(ts, val) into hisdata of sql 
       String sql = "INSERT INTO hisdata" + "(ts, val)" + " VALUES" 
         + "('" + eachStr[j] + "', '" + eachStr[j+1] + "')"; 
       Statement st = (Statement) conn.createStatement(); 
       count = st.executeUpdate(sql); 

       } 

      System.out.println("access table is inserted: " + count 
        + " records"); 

       reader.close(); 

      } catch(IOException e){ 
       System.out.println("Error: " + e.getMessage()); 
      } 

     conn.close(); 
     } catch (SQLException e) { 
     System.out.println("insert is failure " + e.getMessage()); 
     } 

Я думаю, что, вероятно, данные импорта является слишком большим. Когда я сделал size(), размер 8835. В принципе, я устанавливаю разъем. Затем прочитайте CSV-файл и вставьте данные по строкам. Наконец, я закрыл читателя и связь.

Вот консоль распечатывают:

Sql Connection starts 
Driver loaded 
Database connected 
Start: size is 8835 
insert is failure Data truncated for column 'val' at row 1 

ли проблема данных слишком велик.

Просьба помочь решить эту проблему.

ответ

1

Добавить System.out.println (sql); выполнить результат в mysql.

Если данные слишком велики, увеличьте длину столбца или получите длину столбца, тогда уменьшите свои данные подстрокой.

+0

Благодарим вас за советы. Оно работает! – Eric

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