码迷,mamicode.com
首页 > 数据库 > 详细

吐槽 MySQL数据库jdbc操作,varchar类型占位符问题——单引号造孽

时间:2016-04-04 19:36:15      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:

  很长时间不写代码动手能力明显下降很多常见的错误还是经常发生,今天吐血了一次。

  简单的坑总是要多跳几次才能甘心。很清晰的记得大学的时候在此坑差点闷死,现在又跳进这个坑了,搞了半天终于知道错在哪里。

String sqlString = "insert into cryptcontent(content,assistentContent) value(asf,asfd)";
DBHelper.insertQuery(sqlString);

 

  这样操作可以的。因此占位符应该也没问题,前提占位符使用正确。代码如下(错误的):

String sqlString = String.format(
                "insert into cryptcontent(content,assistentContent) value(%s,%s)",
                assistantEncryptResultString, valueString);        
DBHelper.insertQuery(sqlString);

 

此时怎么调试都报错,然后进行调试,报错如下:
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘afsdf‘ in ‘field list‘

Debug 调试出现:insert into cryptcontent(content,assistentContent) value(afsdf,asfasfd )

技术分享

错误找到:注意后面value中的varchar类型的列的字段值没有单引号。故修正:

String sqlString = String.format(
                "insert into cryptcontent(content,assistentContent) value(%s,%s)",
                assistantEncryptResultString, valueString);        
DBHelper.insertQuery(sqlString);

 然后执行成功。

JAVA字符串格式化-String.format()的使用

吐槽 MySQL数据库jdbc操作,varchar类型占位符问题——单引号造孽

标签:

原文地址:http://www.cnblogs.com/xiangyangzhu/p/5352585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!