开发者社区> 问答> 正文

SrpingJdbc问题?报错

今天碰到了一个蛋疼的事情,对于我这个自学刚接触SpringJdbc的时候遇到了一个问题很是棘手,就是在用SpringJdbc的时候插入语句一直报错。看报错信息Exception in thread "main" org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [insert into X_upfile(fileInfo,fileName,upFileDate,fileType,user_id)values(?,?,?,?,?,?)]; Invalid argument value: java.sql.SQLException; nested exception is java.sql.SQLException: Invalid argument value: java.sql.SQLException。原因是因为我这张表的这个Id是主键自增的,而在我的save方法里没有Id这个字段,是这样的“insert into X_upfile(fileInfo,fileName,upFileDate,fileType,user_id)values(?,?,?,?,?)”一直都保存不了数据。最后我把这条insert语句改为这样的就可以了String sql = "insert into X_upfile(id,fileInfo,fileName,upFileDate,fileType,user_id)" + "values(?,?,?,?,?,?)";
jdbcTemplate.update(sql, new Object[] { 
entity.getFileInfo(),
entity.getFileName(),entity.getUpFileDate(), 
entity.getFileType(),entity.getUser_id(),new int[]{
java.sql.Types.VARCHAR,
java.sql.Types.VARCHAR,java.sql.Types.VARCHAR,
java.sql.Types.VARCHAR,java.sql.Types.VARCHAR
}});”。实在是太坑了

展开
收起
爱吃鱼的程序员 2020-06-22 21:34:24 514 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    今天碰到了一个蛋疼的事情,对于我这个自学刚接触SpringJdbc的时候遇到了一个问题很是棘手,就是在用SpringJdbc的时候插入语句一直报错。看报错信息<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#F9F9F9;">Exceptioninthread"main"org.springframework.dao.TransientDataAccessResourceException:PreparedStatementCallback;SQL[insertintoX_upfile(fileInfo,fileName,upFileDate,fileType,user_id)values(?,?,?,?,?,?)];Invalidargumentvalue:java.sql.SQLException;nestedexceptionisjava.sql.SQLException:Invalidargumentvalue:java.sql.SQLException。原因是因为我这张表的这个Id是主键自增的,而在我的save方法里没有Id这个字段,是这样的“insertintoX_upfile(fileInfo,fileName,upFileDate,fileType,user_id)values(?,?,?,?,?)”一直都保存不了数据。最后我把这条insert语句改为这样的就可以了Stringsql="insertintoX_upfile(id,fileInfo,fileName,upFileDate,fileType,user_id)" +"values(?,?,?,?,?,?)";
    jdbcTemplate.update(sql,newObject[]{ 
    entity.getFileInfo(),
    entity.getFileName(),entity.getUpFileDate(), 
    entity.getFileType(),entity.getUser_id(),newint[]{
    java.sql.Types.VARCHAR,
    java.sql.Types.VARCHAR,java.sql.Types.VARCHAR,
    java.sql.Types.VARCHAR,java.sql.Types.VARCHAR
    }});”。实在是太坑了自增长id可以不用写在insert里啊。我一直都不写也没事啊你写了要插入5个字段,却给6个参数,不出错才怪,上面和下面的sql都不一样,下面的多了一个id。插入的字段和参数要对应起来。5个字段?不加Id吗?开始我试了试把Id拿掉就报错,后来给加上就好了。但是发生了一个问题插入的数据的位置不对。。。<divclass="ref">

    引用来自“huan”的答案

    <divclass=ref_body>你写了要插入5个字段,却给6个参数,不出错才怪,上面和下面的sql都不一样,下面的多了一个id。

    2020-06-22 21:34:41
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载