关于我被一个空格困扰了一个小时这件事。。

在学jdbc。。

一个很简单的update 语句

String sql = "update users set username = '"+username+"',userage="+userage+"where userid =" +userid ;

这么看没什么问题对吧,然后我就去测试 嗯?报错了?为什么,我不理解

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'userid =5' at line 1

我看了很久,都没看明白,然后我就去控制端里面敲了一遍,对的呀,没错呀

mysql> update users set username = 'liudehua',userage = 28 where userid = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

那么到底是哪里出了问题,我在自己的idea和教材里面找不同找了好久,我看了好久都没有解决,最后我受不了了,我把老师敲的拿过来直接粘贴运行,然后,通过了。。

这我就忍不住了,这不是闹着玩吗?凭什么啊

然后我就逐字逐段分析,终于,我看到了,少一个空格!!!

知道真相的我简直就要崩溃了,一个小时啊,就因为一个空格。。然后我把这两段拿去单独打印分析,果然。。。

public class tsliejg {
    public void updateUsers(int userid, String username, int userage) {
        String sql = "update users set username = '" + username + "',userage=" + userage + " where userid =" + userid;
        String sqi = "update users set username = '" + username + "',userage=" + userage + "where userid =" + userid;
        System.out.println(sql);
        System.out.println(sqi);


    }
    public static void main (String[]args){
        new tsliejg().updateUsers(2,"wuyanzu",33);
    }
}
输出结果:
update users set username = 'wuyanzu',userage=33 where userid =2
update users set username = 'wuyanzu',userage=33where userid =2

可能在代码块中看不出来,但是在输出结果里面就非常清楚的能看到,我滴龟龟,这对sql子句来说,是致命的,没有这个空格就以为这没有where条件了。。

好吧,我屈服了,我决定以后每次在执行前都要去好好看看我的sql语句有没有敲对。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值