sql语句如何拼接Java变量

当数据库字段ID为整型时
select ID from table where ID=1

select ID from table where ID='1'
两条sql都是可以的,但是第一条sql不用进行隐式转换,速度上比第二条sql略快一些。

String sqlString="select * from tb_wf_main where trim(WF_NAME) = '   " + wfName.trim() + "  '    ";


java中的字符串只能双引号(js可以单引号也可以双引号),以上,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量
 
只需要这样记住就行:单引号 括双引号 两个加号 中间变量   ( 0Q0   OMG)

  js 也是可以这样拼接变量的。  单引号  加  双引号  再在双引号中间加  + 变量 +     ,也就是: '  "  +  f +  "   '

cateChildfilterBrand('1', '  ','  ','1',this)

var appendpinpai = "

  •  

    1、插入

     字符串数据是用单引号包在外面的,而+号只是用来连接这些字符串的. 数据库里的字段是整型的时候不要加单引号,是字符串的时候要加,其它类型根据实际情况来,双引号就是用来拼接字符串的,单引号是sql文的固有写法,因为你要动态的来拼接,涉及到变量,所以要用“+”来组合各个字符串片段。最终结果无非就是得出能在数据库查询分析器中执行的sql文。

            String sql = "insert into student values ( " + student.getId() + " ,' "
                    + student.getUsername() + " ',  " + student.getAge() + " ,' "
                    + student.getClassnumber()+" ')";

    因为id和age是int型的所以不用加单引号,

    你的Username在数据库中定义的是一个varchar型的,而对字符型进行条件查询的时候是要加 ' '号的: 
    select   count(*)   from   student   where  username= 'aaa ' 
    因此在后台写查询字符串的时候就必须这样写: 
    string   sql   =   "select   count(*)   from   student   where  username= ' "+userName+ " ' " 
    这样映射成的查询语句就是: 
    select   count(*)   from  student  where  student= 'aaa '   了. 

    *用SQL语句往数据库某字段(字符型)中插入字符串,但是当该字符串中带有单引号(’)时就会出错!因为插入的字符串被从单引号处截断,造成SQL语句的语法错误

    *处理方法:将包含单引号的字符中的(‘)换成(”),就OK了。SQL是用两个单引号来代替一个单引号的 
    str = str.replace(” ’ “, ” ” “);
     

    实现目标语句是这个
    注意,这里的java变量是idd

    int idd;
    String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  '" + idd + "' AND 10" ;
    
    

    java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量。

    拼接步骤

    1. 写出SQL具体语句(无变量都是具体值的),比如上面的sql
    //查询picinfos表中id为2到10的id和piUrl值
    String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  2 AND 10" ;
    
    

    2.此时要将2改为id(int类型变量),只需要在中间修改
    ,先是删掉2,用单引' '代替

    String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  '  ' AND 10" ;
    

    3.接着在单引号中间加上双引" "

    String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  ' "    " ' AND 10" ;
    

    4.接着在双引号中间加上加号+ +

    String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  ' " +  + " ' AND 10" ;
    

    5.最后就是加号中间加上变量idd完事

     String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN  ' " + idd + " ' AND 10" ;
    

    口诀:先SQL原型,替换为单引,中间加双引,中间加双加号,中间加变量。

    先设置一个数据库,其中有张表,名为table,其中包含user和password。

    假设一个login方法,其中需要用户名user和密码pwd,函数为:

    public void login(String usr,String pwd){
        ...
    }
    函数中需要用到sql查询语句,通过传入user和pwd,此时在mysql中语句为:

    select * from table where user ="mike" and password = "123456";
    在java函数中需要将"mike"替换为"usr",将"123456"替换为"pwd"。

    而sql语句在java中是以字符串的形式存在的,所以按照java的语法存在以下方式:

    (1)

    String sql = "select * from tb where uname = \""+user+"\" and upassword = \""+password+"\";";
    这个方法中使用转义符号,将双引号转义为一个单纯的字符,这么理解:斜线\和紧跟着的第一个引号,代表正常sql查询语句中的引号。而第二个引号是与select前面的引号对应的。

    (2)

    String sql = "SELECT * FROM tb WHERE uname ='"+user+"' AND upassword = '"+password+"';";
    这种方式是使用单引号和双引号避免冲突,这样理解:单引号等同于上面例子的斜线和引号组合\" ,然后双引号就是和select前面的双引号对应的。
     

    int uid=1;
    String sql="select * from users where uid="+uid 
    上面这个是整型变量
    String ss=“test”;
    String sql="select * from users where uid="+“‘ss’”就是了,先双引号,后单引号,双引号承接你前面sql语句里的双引号,而单引号表示你的变量,记住只有是变量才有单引号,我给你举个例,如果在mysql中使用函数now(),就应该这样写:

    sql="select * from users where date=”+“now()”;没有单引号,
    上面是三种在sql语句中加入其它符号的方式

    例:如果,string sql="insert into A values (xx,xxx)"像这样的,其中xx,xxx需要用其它函数或是什么动态得到,应该怎样写???

    "insert into A values ('"+var1+"','"+var2+"')"

    里面是双引号, 外面是单引号.
     

  • 你可能感兴趣的:(mysql)