Java MySQL BigDecimal Column不能为null

时间:2016-10-08 22:45:16

标签: java mysql

我在将BigDecimal插入MySQL表时遇到问题。 MySQL列的类型为decimal(10,2) NOT NULL DEFAULT 0.00

MYSQL查询

UPDATE `table` SET `Cost` = ? WHERE `Id` = 1

JAVA代码:

stmt.setBigDecimal(0, BigDecimal.valueOf("0.00"));
stmt.executeUpdate();

我收到com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'Cost' cannot be null

的错误消息

为什么会这样?

1 个答案:

答案 0 :(得分:0)

绑定参数索引在JDBC中基于1,而不是基于0。 换句话说,第一个绑定参数的索引为" 1"而不是" 0"。

更换" 0"用" 1"在以下行中将解决您的问题:

stmt.setBigDecimal(1, new BigDecimal("0.00"));