У меня есть один вопрос относительно создания динамического запроса с помощью 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 tablename (fname, lname) VALUES (?,?); И мой код будет таким: jdbcTemplate.update (insertQueries, value); И значение динамическое генерируется с разделенной запятой. Пожалуйста, совет. –
Hi, Жаль, что он все еще не работает. Он по-прежнему дает ошибку: PreparedStatementCallback; плохая грамматика SQL [INSERT INTO tablename (last_name, first_name) VALUES (?,?)]; Вложенное исключение: java.sql.SQLException: Нет значения, указанного для параметра 2 –
Пожалуйста, жестко скопируйте файл jdbcTemplate.update (insertQueries, value1), чтобы я мог понять внутренний параметр метода обновления –