黑马程序员技术交流社区

标题: JDBC中的sql语句 单引号和双引号 [打印本页]

作者: 马亚冲    时间: 2011-8-26 21:37
标题: JDBC中的sql语句 单引号和双引号
在JDBC中经常会有这样的查询语句字符串,其中的单引号和双引号用于连接普通字符创和参数,例如:
     (1)String sql="select * from user where username='"+usernam+"'";
    (2)String sql="insert into user(username,password,email)values('"+username+"','"+password"','"+email"')";

   这里面的单引号和双引号,我觉得好混乱啊,谁能简明说一下,这里面的哪是单引号,哪是双引号吗,在写的时候怎么方便记忆呢??????

作者: 匿名    时间: 2011-8-26 21:47
如果你使用的是 字符串拼装手法 例如
可以分成 三个部分看
部分一:String begin = "select * from userInfo where userName= '  "  ---->等号后面跟着一个单引号
部分二:String value=姚明
部分三:String end=" ' "; ------>一个单引号

拼装后就是:select * from userInfo where userName= ' "+姚明+" ' ";
作者: 匿名    时间: 2011-8-26 22:53
单引用号,就是作条件的值时,需要。。。
双引号民,,,就当它不存在,,,它只是String 所必须有的。。。跟sql没关系
作者: 匿名    时间: 2011-8-26 23:31
本帖最后由 匿名 于 2015-3-27 16:29 编辑

这种是字符串拼接sql语句的方式,在向数据库中插入数据时,值为字符串时需要用一对‘’(单引号)括起来,整型不用,而这种拼接的方式最主要的目的就是将单引号中的值替换为变量,在sql语句被执行时将解析这些变量再将其替换为需要的数据,这样就比固定值更加灵活。
    String sql = "insert into user(username,password,email) values('" + username
                        + "','" + password + "','" + email + "')" ;
        每个红色的部分就是一个单独的字符串,而username,password,email也是字符串,通过+号将这些字符串拼接成一个完整的字符串。
      回答完毕,不知你是否明白。

作者: 匿名    时间: 2011-8-27 00:28
标题: 回复 楼主 的帖子
JDBC中的sql语句单引号和双引号,双引号是为了表示字符串,这个很容易懂。
出现单引号一般是需要对数据库执行更新操作(更新字段或者插入数据)或者查询操作时,出现了字符串。
在数据库中,字符串是用一对单引号括起来的。
如何明白了上面的内容,那么我们可以像下面这样做,就很容易区分开单引号和双引号了。
以楼主的例子来说,我们可以这样做,先不管需要更新的是否是字符串,先将SQL语句写出来。
String sql="insert into user(username,password,email)values("+username+","+password","+email")";
然后我们找出其中的字符串,添加上单引号,
String sql="insert into user(username,password,email)values('"+username+"','"+password"','"+email"')";
这样做,就把两个区分开了
作者: 匿名    时间: 2011-8-27 18:59
既然觉得混乱就不要用字符串拼了,用preparedstatement ? 再set进去多好
作者: 匿名    时间: 2011-8-29 15:30
参数用?来传,看起来是挺乱的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2