当前位置: 首页 > 知识库问答 >
问题:

java.sql.BatchUpdate异常:设置值为null时,第1行的整数值不正确:"for列"

南门洋
2023-03-14

我试图使用java JDBC驱动程序将空值插入整数Mysql列。

        Connection con;
        con = MySqlConnect.getConnection(accountName);
        con.setAutoCommit(false);
        PreparedStatement stmt = con.prepareStatement("INSERT INTO TABLE_NAME (COLUMN_NAME) VALUES (?)");
        stmt.setNull(1, Types.INTEGER);
        stmt.addBatch();
        stmt.executeBatch();

但是我得到了这个错误:

JAVAsql。BatchUpdateException:第1行“column_NAME”列的整数值“”不正确

我不明白为什么我不能插入这个值(也不明白为什么它写为“”而不是null)。表的模式包括

COLUMN_NAMEint(10)默认为空,

如果使用浮点数据类型复制替代方案:

FLOAT_COLUMN浮点数(10)DEFAULT NULL,

并将setNull行切换到:

stmt.setNull(1, Types.FLOAT);

它可以工作(所以对于浮点数据类型不是int)。

共有1个答案

司马宏茂
2023-03-14

您是否尝试:stmt.setNull(参数索引,类型。BIGINT);

 类似资料:
  • 问题内容: 我正在尝试插入我的MySQL数据库。第一列是“ id”列,因为它是一个auto_increment字段,所以我将其留为空白。由于某些原因,我无法插入,并且出现了下面提到的错误。我对此表示感谢。 尝试插入时出现以下错误: 我的查询 问题答案: 这可能意味着您是一个整数,并且您正在尝试发送字符串。您应该指定一个列列表,并从中删除它。

  • 我目前正在做一个Airflow项目,其中一个DAG正在触发这个SQL查询: 该查询应该将数据从Mssql数据库传输到Mysql数据库。但当它运行时,我会得到以下错误: 我想我理解错误的含义,值'Lager4'应该写入列typ中,但被写入列fertig中。但我似乎无法在查询中找到导致错误的问题。

  • 但我还是有例外 由:java.sql.sqlException引起:com.mysql.jdbc.sql第1行的列“rins”的字符串值不正确:“\xf0\x9f\x92\xbc”

  • 我希望在数据库中找不到该项时出现异常

  • 我在所有实体属性上都有注释,需要在我的审计表中捕获这些属性。除了值删除之外,它在所有情况下都能很好地工作。也就是说,如果我的列的值从NULL/INT设置为某个非NULL值,则相应的值设置为1,但是如果该值从任何INT值设置为NULL,则设置为0(表示未修改)。我不知道为什么会这样。我已经检查了Envers的文档和Envers的开放问题列表,但没有找到任何关于它的东西。 顺便说一下,我使用的是Hib

  • 问题内容: 我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为null,如何将其设置为“字符串”? 就像是 它将在sql server 2005上运行 谢谢 问题答案: 使用以下内容: 或@Lieven指出: COALESCE的动态之处在于您可以定义更多的参数,因此,如果第一个为null,则获取第二个参数,如果第二个为null,则获取第三个,依此类推…