java - Java中的Mysql : Data truncated for column 'AAL' at row 1 error

标签 java mysql database arraylist insert-into

我试图将 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/

相关文章:

java - 将文本文件的内容添加到哈希集

java - eclipse中maven多模块项目的重构

java - 使用 Hibernate Validator 在错误消息中包含字段名称

php - MySQL join across 3 tables running very slowly

php - INSERT INTO 在来自不同行的不同列的 CONCAT 数据之后

java - 使用 JPA 的关系和参照完整性约束

database - 如何在 PLSQL Developer 中测试包含 DML 的 Oracle 函数?

Java BigDecimal 舍入

mysql - 为什么 mysql 在子查询的组连接上返回错误?

php - 如何通过php向多个mysql数据库插入数据?