0
我將CSV文件中的數據插入到MySql數據庫中,特別是插入到一個表中。如何解決數據截斷?
我使用CSVRead,和CSV文件格式是:
TS,VAL
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
是問題的數據是太大。
請幫忙解決這個問題。
謝謝您的建議。有用! – Eric