2012-06-04 26 views
0

我想弄清楚這是如何工作的,但我失去了綁定是如何發生的?有什麼需要得到valueOf()?是不是字符串數組中的參數假設只是字符串?SqLiteDatabase數據庫的rawQuery()方法是如何工作的?

private final String MY_QUERY = "SELECT * FROM table_a a INNER JOIN table_b b "+ 
"ON a.id=b.other_id WHERE b.property_id=?"; 

db.rawQuery(MY_QUERY, new String[]{String.valueOf(propertyId)}); 

我也想連接表,但不知道如何正確設置它,至少是字符串數組的參數。

回答

1

我認爲這兩行代碼是你找到某個地方的例子嗎? String.valueOf是一個標準的java函數。如果propertyId是一個int,它將int轉換爲一個String。 您可以省略參數String [],並在SQL字符串中硬編碼您的參數,但那不是很好的編程習慣。我不確定我是否理解你關於「綁定」的問題,但會發生什麼情況是,peropertyId的值(通過valueOf轉換爲String)插入查詢中的問號。

+0

當有兩個問號時會發生什麼。他們必須匹配嗎? (2,2或3,3)? – Andy

+0

參考文檔中提到「您可能在查詢中的where子句中包含?s」,因此您只包含一些?s,並且參數將按照您指定的順序插入。請閱讀android api文檔。 – Christine

+0

我做到了。但它不清楚它是如何做到的。但是,謝謝。 – Andy

相關問題