Использую preparedStatement, вот код:
query = "INSERT INTO instdb (" +
"id," +
"name," +
"username," +
"descr," +
"tel," +
"vk," +
"ownerId," +
"query," +
"postId," +
"parametr) VALUES" +
"(?,?,?,?,?,?,?,?,?,?)";
stmt.setInt(1, maxid);
stmt.setString(2,user.getFull_name());
stmt.setString(3,username);
stmt.setString(4,caption);
stmt.setString(5,longestTel);
stmt.setString(6,vk);
stmt.setString(7,ownerId);
stmt.setString(8,addons.get(j));
stmt.setString(9,postId);
stmt.setString(10,param);
На строке stmt.setInt(1, maxid);
появляется ошибка:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0)
Вы получите эту ошибку при вызове любого из setXxx()методов PreparedStatement, в то время как строка запроса SQL не имеет никаких заполнителей ?для этого.
Например, это неправильно :
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";
// ...
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1); // Fail.
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Вам необходимо исправить строку SQL-запроса соответствующим образом, чтобы указать заполнители.
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
// ...
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Обратите внимание, что индекс параметра начинается с того, что вам не нужно заключать в кавычки эти заполнители следующим образом:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES ('?', '?', '?')";
В противном случае вы все равно получите то же исключение, потому что анализатор SQL будет интерпретировать их как фактические строковые значения и, следовательно, больше не сможет найти заполнители.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь запустить пример кода из Google Quickstart для Java на Android - эмуляторе, но код падает на строчке
У меня есть два активитиВ одном находится ListView, а в другом поля, где я выбираю параметры
Пожалуйста, подскажите, как быть с такой проблемой: TabLayout находится ниже Toolbar (AppBar)И текст, размещенный на странице приложения, начинает идти...
Как переводится (обрезается) int до размера byte? Где-то вычитал, что от int отнимается 128 пока число не войдет в диапазон -128