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 = "<li class='li' οnclick='cateChildfilterBrand('1',' " + facetFieldList[i].name + " ',' "+ this.name +" ','1',this)'" ;
 

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+"')"

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章