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

裏面是雙引號, 外面是單引號.
 

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