我有一個JSON列,我想創建一個準備好的語句,但我不知道如何去做,因爲該語句的參數是在一個文字字符串中。如何在java中爲mysql使用JSON數據類型的準備語句?
例如:
PreparedStatement stmt = myConn.prepareStatement("SELECT JSON_SET(new_friends, '$.?', '[?]') from friend_list where id = ?");
for (int i = 0; i < new_friends.size(); i++) {
String friend = new_friends.get(i);
// not sure what to put here
stmt.set....
stmt.set....
stmt.set(3, i);
}
任何人有什麼建議?
我想你應該把一個字符串作爲參數傳遞給JSON_SET函數 - 畢竟它和其他函數沒有什麼不同:'JSON_SET(new_friends,?,?)'。在這種情況下,對於第一個佔位符,您將傳遞「$ .whatever」的值,對於第二個 - 「[1,2,3,4,5]」。請注意,這些應該是字符串。至少試一試。 –
查看MySQL文檔後,會看到一組與JSON相關的函數可用,也許在您向數組中添加新值的情況下可以使用'JSON_ARRAY_APPEND'。 https://dev.mysql.com/doc/refman/5.7/en/json-modification-functions.html –