2012-12-02 51 views
2

我有一個已經用java編寫的SQL select查詢。現在我想選擇更多的列。在這種情況下,我需要在from關鍵字的索引之前編寫列名。 像這樣 初始查詢 -將字符串從一個索引插入另一個字符串到字符串之間的另一個索引

StringBuffer query; 
query = " Select name,age,dob from employee" 

新的查詢應該像這個 -

query = "select name , age , dob,city from employee" 

爲此,我試圖query= query.insert(indexof(dob),"city");

但我認爲這將改寫。 我的問題歸結爲insert是否創建了足夠的空間來插入字符串或覆蓋較早的字符串? 請幫忙。

+0

什麼是你想在這裏做索引值?你想插入查詢結果到'stringbuffer'或查詢字符串嗎?你是指存儲一些「準備好的」陳述? – bonCodigo

+0

我想使用字符串緩衝區來建立一個查詢。 –

+1

@Abhishekkumar,這是一個壞主意。你應該使用準備好的語句和一個庫來爲你建立它們。閱讀有關SQL注入的所有信息,以瞭解爲什麼使用未準備好的未經過清理的查詢很難編寫出好的代碼。 – tucuxi

回答

2

不是得到的dob索引值,得到的from

query= query.insert(original.indexOf("from"),"city "); 
+0

不是從這之後插入城市嗎? –

+0

否 - indexOf返回它搜索的字符串的起始索引 – tucuxi

1

試試這個: -

StringBuffer query = new StringBuffer("Select name,age,dob from employee"); 
query.insert(query.indexOf("from"), "city "); 
相關問題