0
我有關於使用JdbcTemplate進行動態查詢的一個問題。使用JdbcTemplate進行動態查詢
我的代碼如下:
String insertQueries = "INSERT INTO " + tablename;
StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",");
StringJoiner joiner2 = new StringJoiner(",");
while (mapIterator.hasNext()) {
Map.Entry mapEntry = (Map.Entry) mapIterator.next();
key = joiner.add((String) mapEntry.getKey()).toString();
// value = joiner1.add("\"" + (String) mapEntry.getValue() + "\"").toString();
value = joiner1.add("\"" + (String) mapEntry.getValue() + "\"").toString();
value1 = joiner2.add("?").toString();
}
insertQueries += " (" + key + ")";
insertQueries += " VALUES ("+value1+")" ;
int row = jdbcTemplate.update(insertQueries, value);
現在我的問題是,我想同樣數量的「價值」按自動生成插入查詢問號。
眼下,變量的值,認爲作爲一個字符串,所以如果我有2個或更多的問號,然後在變量值只有一個完整的字符串逗號分隔,所以它不能正常工作。
見下面我的查詢:
INSERT INTO tablename (fname, lname) VALUES ("abc, xyz") ;
而且我想如下:
INSERT INTO tablename (fname, lname) VALUES ("abc", "xyz") ;
謝謝你的答覆。 但我想代碼等作爲下面: insertQueries = INSERT INTO表名(FNAME,L-NAME)VALUES;(?,?) 我的代碼會像: jdbcTemplate.update(insertQueries,值); 以逗號分隔的值動態生成。 請指教。 –
嗨, 對不起,它仍然無法正常工作。 它仍然給出錯誤,如: PreparedStatementCallback;錯誤的SQL語法[INSERT INTO tablename(last_name,first_name)VALUES(?,?)];嵌套的異常是java.sql.SQLException中:沒有爲參數2 –
請硬編碼jdbcTemplate.update(insertQueries,值1)指定的,這樣我可以理解更新方法 –