【发布时间】:2013-06-17 09:38:39
【问题描述】:
我正在制作一个程序,我将从 txt 文件中读取数据并将它们存储在 mysql 的表中。在我的程序中,我使用我想要的字段制作表格,然后使用“Load Data Infile”命令在表格中插入值。
我拥有的文件包含一列(命名为升)
带有浮点数的数据,例如
0,234
12,234
3,004 等
在我的程序开始时,当我创建表时,升字段被描述为 FLOAT。但是当我运行我的程序时,我得到了一个SQLException : Data truncated for column 'litres' at row 1.
创建表格和插入值的代码如下:
private static String getCreateTable1(Connection con, String tablename) {
try {
Class.forName("com.mysql.jdbc.Driver");
Statement stmt = con.createStatement();
String createtable = "CREATE TABLE " + tablename
+ " ( text VARCHAR(255), price INT , day VARCHAR(255), litres FLOAT )";
System.out.println("Create a new table in the database");
stmt.executeUpdate(createtable);
} catch (Exception e) {
System.out.println(((SQLException) e).getSQLState());
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
private static String importData(Connection con, File txtFile,
String tablename) {
try {
Statement stmt;
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String path = txtFile.getAbsolutePath();
String importingdata = "LOAD DATA INFILE '"
+ path.replace('\\', '/')
+ "' INTO TABLE " + tablename
+ " FIELDS TERMINATED BY '\t'";
System.out.println("fill the table");
stmt.executeUpdate(importingdata);
} catch (Exception e) {
System.out.println(((SQLException) e).getSQLState());
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
我该如何解决?有人可以帮我吗?我认为问题是逗号?我怎样才能让它识别它?
【问题讨论】:
-
“litres”列的 MySQL 数据类型是什么?
-
float 是数据类型