sqlStmt="insert into userlogin values('"+username+"','"+password+"','"+nickname+"')";关于上面的('"+username+"','"+password+"','"+nickname+"') 
这括号中那么多双引号,单引号的把我搞糊涂了...把加号去掉好像会报错.. 怎么理解这些单引号,双引号。求解答。谢谢!

解决方案 »

  1.   

    等哥来告诉你把
    首先说这个sqlStmt,这个是String类型,java的String都是以""的字符串
    比如:
    String a = "a";
    然后就是变量啦,像你说的username,password,nickname都是变量
    他也是String类型的
    至于+号是java用于拼接字符串的
    例如:
    String b = "hello";
    a = a+b;
    相当于"a"+"hello" = "ahello"
    嗯嗯,就这样,基本知识就这样把,楼主你还是从基础学起把,这个是表面的意思,还有堆栈的变化你也要了解的
      

  2.   

    谢谢你的解释,我上面是那三个括号里面的是插入到数据库的 你看清楚了吗?比如上面'"+username+"'还有单引号,可不可以去掉单引号?
      

  3.   


    用过你说是拼接的话('"+username+"','"+password+"','"+nickname+"') 那'"+username+"'的前面为什么要加+号它跟谁拼接呢?求解释,谢谢
      

  4.   

    不想使用拼接的话用PreparedStatement
      

  5.   

    在数据库中、执行sql语句
    insert into userlogin values('testName','testPass','test');
    凡是字符串的字段都要用''来括起来!
    如果直接写insert into userlogin values(testName,testPass,test);
    必须要加上''在数据库才表名它是一个字符串、而不是变量!
    假如username="testName",password="testPass",nickname="testNick"
    那么sqlStmt="insert into userlogin values('"+username+"','"+password+"','"+nickname+"')";
    得到的结果就是
    insert into userlogin values('testName','testPass','testNick')
    这样的语句才能在数据库正确的运行!而我们不加单引号的时候
    sqlStmt="insert into userlogin values("+username+","+password+","+nickname+")";
    等到的结果是:
    insert into userlogin values(testName,testPass,testNick)
    这样的语句在数据运行那是肯定会出错的!
    '"+username+"'只是做了一个简单的sql拼接而已!就是变量的前后加上单引号!如果你的字段是Number类型、那就可以不用加单引号直接"+number+"!!!