因为你在数据库中的查询语句为 select coin from user where id='xx' 是要引号的
ID代表的是变量,要拼成sql语句所以这样写了
String condition="select coin from user where id='"+ID"'"; 这个的意思是字符串的拼装。 这里的ID是个字符型的所以你的SQL语句是:select coin from user where id='xx' 这里一个字符串是”select coin from user where id='”下一个是ID,但是是因为是一个变量,所以就不能用“”用了就是固定字符串了再下一个是"'"字符串连在一起你的sql语句就出来了。
String condition="select coin from user where id=?;用占位符吧.这个看起来简单.
+号起到字符串过载的作用.可以把sql语句和字符串常量连接起来.再连接上'号
你少写了一个加号,应该是"select coin from user where id='"+ID+"'"; 其实很单单,你把它看成是三个字符串就行了,第一个是 "select coin from user where id='"第二个是ID变量,第三个是"'",它们组合起来就是一个完整的SQL语句,你看第一个字符串的末尾和第三个字符串有一个单引号是因为id这一列你设的是字符型如果是数字型就不用单引号了,如果是数字型你的第三个字符串就可以不要用。
最好不要采用这种方式来拼SQL.。。应该采用"select coin from user where id= :id"; 然后在程序中给他set一个值可以防范SQL注入攻击~
楼主【Polarshift】截止到2008-07-02 14:42:18的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:20
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
select coin from user where id='xx'
是要引号的
这个的意思是字符串的拼装。
这里的ID是个字符型的所以你的SQL语句是:select coin from user where id='xx' 这里一个字符串是”select coin from user where id='”下一个是ID,但是是因为是一个变量,所以就不能用“”用了就是固定字符串了再下一个是"'"字符串连在一起你的sql语句就出来了。
其实很单单,你把它看成是三个字符串就行了,第一个是
"select coin from user where id='"第二个是ID变量,第三个是"'",它们组合起来就是一个完整的SQL语句,你看第一个字符串的末尾和第三个字符串有一个单引号是因为id这一列你设的是字符型如果是数字型就不用单引号了,如果是数字型你的第三个字符串就可以不要用。