吐槽 MySQL数据库jdbc操作,varchar类型占位符问题——单引号造孽
2016-04-04 18:56
555 查看
很长时间不写代码动手能力明显下降很多常见的错误还是经常发生,今天吐血了一次。
简单的坑总是要多跳几次才能甘心。很清晰的记得大学的时候在此坑差点闷死,现在又跳进这个坑了,搞了半天终于知道错在哪里。
这样操作可以的。因此占位符应该也没问题,前提占位符使用正确。代码如下(错误的):
此时怎么调试都报错,然后进行调试,报错如下:
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 = "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 5.7 Distrib 5.7.8-rc 主从复制的简单配置,备忘
- 学习二:MySql数据库的基本操作
- 《MySQL必知必会学习笔记》组合查询
- MySQL数据库的CRUD操作
- MySQL数据库的连接
- MySQL数据库的连接
- mysql函数编写和存储过程
- mysql索引总结----mysql 索引类型以及创建
- mySQL
- mybatis对mysql进行分页
- MySQL 使用方法简单教程
- MySQL 警告WARN: Establishing SSL connection without server's identity verification is not recommended.解决办法
- mysql安装
- 安装MySQL时停在start server解决办法
- mysql存储过程详解
- mysql自定义函数
- MySQL系列:mysqldump备份具
- mysql小笔记
- MySQL中MySQL Information_Schema表
- mysql常用命令