今天在做商城项目的【提交订单】功能的时候,向数据库插入数据报错:Incorrect datetime value: ‘‘ for column ‘ordertime‘ at row 1
public void addOrders(Order order) throws SQLException { QueryRunner runner = new QueryRunner(); String sql = "insert into orders values(?,?,?,?,?,?,?,?)"; Connection conn = DataSourceUtils.getConnection(); runner.update(conn,sql, order.getOid(),order.getOrdertime(),order.getTotal(),order.getState(), order.getAddress(),order.getName(),order.getTelephone(),order.getUser().getUid()); }
检查了sql语句,问号与value个数相同,没问题。
value的依次顺序与数据库也一样,没问题。
看到报错信息里有datetime,个人感觉是插入的数据与数据库类型产生了冲突,
然后就百度了下,看到一篇文章https://blog.csdn.net/qq_34734520/article/details/51882925
里面有这么一句:对ordertime使用SimpleDateFormat进行转换,转换成和数据库一致的格式:yyyy-MM-dd hh:mm:ss
接着检查我的Servlet里面有一句代码是:
order.setOrdertime(new Date);
这里的日期没有进行格式化,想着是不是要格式化一下日期才行
最后利用SimpleDateFormat格式化日期后
运行不报错了,数据也插进去了,完美解决问题!!!
PS:给自己提个醒,这里的insert into语法是insert into 表名(字段1,字段2,字段3........) values(value1,value2 value3.....) ; 一定要一一对应,
如果前面不加字段名,value个数最好跟数据库里面字段个数一样,顺序对应,否则会报空指针异常。
网上商城 Incorrect datetime value: '' for column 'ordertime' at row 1
原文地址:https://www.cnblogs.com/y-song/p/10827401.html
时间: 2024-10-11 23:48:35