當數據庫字段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中的字符串只能雙引號,如果字符串中需要拼接變量,該變量用單引號括起來,然後加兩個雙引號再加兩個加號,中間就是變量。
拼接步驟
- 寫出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+"')"
裏面是雙引號, 外面是單引號.