使用DbUtils执行sql不能带有引号的参数如何解决?

java豆子 发布于 2010/06/14 17:15
阅读 1K+
收藏 1

 

代码: // 带单引号的字符串,插入到数据库中
  String sql = "INSERT INTO Test(testException) VALUES ('0')";

  QueryRunner qr = DBHelper.getQueryRunner();
  try {
   qr.update(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }

异常:

java.sql.SQLException: Duplicate entry '0' for key 'PRIMARY' Query: INSERT INTO Test(testException) VALUES ('0') Parameters: []
 at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:542)
 at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:599)
 at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:655)
 at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:620)
 at com.v512.blog.Test.doGet(Test.java:23)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 at java.lang.Thread.run(Thread.java:619)

 

加载中
0
鉴客
鉴客

报错,到底报什么错呢??把详细的错误信息贴出来。

0
j
java豆子

引用来自#2楼“贱客”的帖子

报错,到底报什么错呢??把详细的错误信息贴出来。

 贴上来了,麻烦大虾在看下。谢谢

0
王小磊

你可以把引号替换成转义符号嘛  嘎嘎    比如用commons lang组件帮你做

0
__zero__
__zero__

使用转义,这里提示错误是重复插入

0
黄平俊
黄平俊

主键重复了~~

0
红薯
红薯

引用来自#6楼“Jimmy”的帖子

主键重复了~~

完全正确。

0
polly
polly

这跟引号没关系。

0
安立国
安立国

你当时肯定有过一条同样的记录了吧,主键是不能重负的

返回顶部
顶部