我在将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
为什么会这样?
答案 0 :(得分:0)
绑定参数索引在JDBC中基于1,而不是基于0。 换句话说,第一个绑定参数的索引为" 1"而不是" 0"。
更换" 0"用" 1"在以下行中将解决您的问题:
stmt.setBigDecimal(1, new BigDecimal("0.00"));