开源中国社区
找到您想要的开源软件,分享和交流 开源软件 新闻 讨论 博客

上一话题 | 下一话题 使用DbUtils执行sql不能带有引号的参数如何解决?

作 者话 题 正 文
java豆子

湖南 长沙

加入时间:2010-06-14
最近登录:2个月前

1人关注此话题, 我要关注(收藏)(?) 回复此话题 1楼 发表于 2010-06-14 17:15 (2个月前), 8回 /230阅, 最后回复: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)

 

相关话题
返回顶部 回复此话题 |
贱客

吉林 长春

加入时间:2010-01-24
最近登录:昨天

2楼: 回复: 使用DbUtils执行不能带有单引号或双引号的参数内容如何解决?     发表时间: 2010-06-14 17:21

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

返回顶部 此回帖顶部 | 回复此话题
java豆子

湖南 长沙

加入时间:2010-06-14
最近登录:2个月前

3楼: 回复#2楼: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 17:35

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

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

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

返回顶部 此回帖顶部 | 回复此话题
王小磊

辽宁 沈阳

加入时间:2010-06-14
最近登录:2个月前

4楼: 回复: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 18:08

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

返回顶部 此回帖顶部 | 回复此话题
李文军

湖北 武汉

加入时间:2009-04-02
最近登录:1个月前

5楼: 回复: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 18:10

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

返回顶部 此回帖顶部 | 回复此话题
Jimmy

广东 广州

加入时间:2008-12-07
最近登录:51分钟前

6楼: 回复: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 18:21

主键重复了~~

返回顶部 此回帖顶部 | 回复此话题
红薯

广东 广州

加入时间:2008-08-31
最近登录:43分钟前

7楼: 回复#6楼: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 18:39

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

主键重复了~~

完全正确。

返回顶部 此回帖顶部 | 回复此话题
polly

北京 海淀

加入时间:2009-03-12
最近登录:2小时前

8楼: 回复: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-06-14 19:27

这跟引号没关系。

返回顶部 此回帖顶部 | 回复此话题
安立国

北京 海淀

加入时间:2010-08-04
最近登录:9天前

9楼: 回复: 使用DbUtils执行sql不能带有引号的参数如何解决?     发表时间: 2010-08-07 09:21

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

返回顶部 此回帖顶部 | 回复此话题
     爱护开源中国,请您和谐评论,谢谢!