Я начал использовать подготовленный оператор для своих обновлений sql, но, похоже, у меня появляется ошибка при обновлении. Логика кажется звуковой, но я получаю сообщение об ошибке, когда он входит в сегмент обновления. Я могу удалить или вставить штраф. Anywho ...Проблема с обновленной версией выписки
Connection con = getDBConnection();
PreparedStatement pstmt = null;
String query = "update table set int = ?, String= ? where int= ? and date= ?";
pstmt = con.prepareStatement(query);
pstmt.setInt(1, var);
pstmt.setDate(2, sqlDate);
pstmt.setInt(3, intVar);
pstmt.setString(4, stringVar);
pstmt.executeUpdate();
Я делаю что-то неправильно здесь? Я выполнил все возможные меры по устранению неполадок, и все кажется прекрасным, за исключением этого, потенциально.
Error = "A non-numeric character was found where a numeric was expected"
так, в «pstmt.setWhatever» это значение параметра Я (например, 1,2,3 , 4) в зависимости от оператора запроса или расположения столбца базы данных? Уточнение: база данных имеет 4 столбца, abcd Ведомость установлена в переменную ac, где bd , то операторы набора a = 1, c = 2, b = 3 и d = 4 , где обычно при настройке информации в базе данных это было бы a = 1 b = 2 c = 3 d = 4 ... Если это имеет смысл. – cphilpot
@cphilpot: он соотносится с SQL - указатель, который вы указываете как первый аргумент 'setDate' и т. Д., Является позицией * в вашем SQL *. Порядок столбцов базы данных здесь не имеет значения. (Было бы уместно, если бы вы только что выполнили «INSERT INTO X VALUES (?,?,?,?)», Но лично я думаю, что это плохая идея.) –
Возможно, я смутился. Потому что у меня есть оператор insert, который коррелирует с номерами столбцов. собираюсь попробовать ваше предложение и посмотреть, исправляет ли он это. Просто начал использовать подготовленные заявления сегодня (учил неправильно). – cphilpot