我试图将 ArrayLists 中的数据插入到 Java 中的 mysql 表中,但是我不断收到以下错误:java.sql.SQLException:第 1 行的“AAL”列数据被截断。
部分代码如下:
stmt = conn.createStatement();
sql = "CREATE TABLE IF NOT EXISTS stocks "
+ "(id INTEGER not NULL AUTO_INCREMENT, date LONGBLOB , " + "time LONGBLOB, "
+ " PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
for (int i = 0; i < stockList.size(); i++) {
System.out.println(stockList.get(i).getName() + i);
sql = "ALTER TABLE stocks ADD " + stockList.get(i).getName() + " DOUBLE";
stmt.executeUpdate(sql);
}
for (int i = 0; i < stockList.size(); i++) {
System.out.println(i);
sql = "INSERT INTO stocks (id, date, time, " + stockList.get(i).getName() + ") VALUES (NULL, '" + stockList.get(i).getDate() +
"', '" + stockList.get(i).getTime() + "', '" + stockList.get(i).getPrice() + "')";
stmt.executeUpdate(sql);
}
非常感谢任何帮助。
最佳答案
您指出 stockList.get(i).getPrice()
是一个字符串,并且您在插入的值周围加上了引号。因此,您实际上是在尝试将字符串值插入到 DOUBLE 列中。通常 MySQL 会自动将字符串转换为 double ,但是,我怀疑至少您的某些 getPrice() 值不是有效的 double 。您可以试试这个:
... "', " + Double.parseDouble(stockList.get(i).getPrice()) + ")";
..但是如果一些价格不是有效的双倍价格,这也会失败。
关于java - Java中的Mysql : Data truncated for column 'AAL' at row 1 error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45084044/