zoukankan      html  css  js  c++  java
  • 吐槽 MySQL数据库jdbc操作,varchar类型占位符问题——单引号造孽

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

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

    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()的使用

  • 相关阅读:
    机器学习入门-相关性分析
    R语言-记号体系
    R语言基础
    职位画像分析(pandas/ matplotlib)
    python 可视化工具-matplotlib
    pandas-缺失值处理
    k-means实战-RFM客户价值分群
    药店商品销量分析(python)
    Jike_Time-决策树
    3.7 嵌入式SQL
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/5352585.html
Copyright © 2011-2022 走看看