Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2015, 00:46   #1
DavidRealy
Новичок
Джуниор
 
Регистрация: 04.04.2015
Сообщений: 6
По умолчанию Автоинкремент в PreparedStatement

Всем привет! Как понятно из заголовка, использую PreparedStatement для отправки запроса INSERT непосредственно из среды программирования (Intellij Idea). При этом я просто хочу добавить запись таблицу. Допустим в таблице содержатся колонки:id (Primary Key, Auto Incremental); Age; Weight. Я пишу следующее:
String INSERT_NEW = "INSERT INTO botbase VALUES(?,?,?)";
preparedStatement = connection.prepareStatement(INSERT_ NEW);

И дальше по идее надо использовать
preparedStatement.setInt(1, ...)
preparedStatement.setInt(2, ...)
preparedStatement.setInt(3, ...)
Однако за id я никак не слежу, то есть я просто хочу добавить в таблицу запись с Age и Weight, а id добавил вообще только потому что одна колонка должна иметь Primary Key. То есть не понятно, что писать в аргументе preparedStatement.setInt(1, ...). Хелп!
DavidRealy вне форума Ответить с цитированием
Старый 04.04.2015, 02:03   #2
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

ничего, и параметра не надо
lomastr_ вне форума Ответить с цитированием
Старый 04.04.2015, 11:15   #3
DavidRealy
Новичок
Джуниор
 
Регистрация: 04.04.2015
Сообщений: 6
По умолчанию

Если пишу вот так:
preparedStatement.setInt(1,);
То подчеркивает красным, а если вообще его не писать, то выкидывает exception java.sql.SQLException: No value specified for parameter 1
DavidRealy вне форума Ответить с цитированием
Старый 04.04.2015, 13:07   #4
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

откройте для себя sql
Код:
INSERT INTO botbase (Age, Weight) VALUES(?,?)

Последний раз редактировалось Stilet; 04.04.2015 в 16:35.
lomastr_ вне форума Ответить с цитированием
Старый 04.04.2015, 23:46   #5
DavidRealy
Новичок
Джуниор
 
Регистрация: 04.04.2015
Сообщений: 6
По умолчанию

Дело в том, что значения, которые я хочу передать в Age и Weight хранятся в переменных. Других методов, кроме PreparedStatement для такого случая я не нашёл. Буду благодарен, если подкинете идею
DavidRealy вне форума Ответить с цитированием
Старый 05.04.2015, 00:51   #6
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

а что подкинули?
lomastr_ вне форума Ответить с цитированием
Старый 05.04.2015, 09:24   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
DavidRealy
Смысл в том что тебе не нужно в запросе описывать автоинкрементное поле. СУБД и сама в него подставит нужное значение.
Твоя задача описать запрос с двумя полями и дважды вызвать PreparedStatement только для полей Age и Weight. Т.е. следуя твоему коду в топе:
Код:
String INSERT_NEW = "INSERT INTO botbase (Age,Weight) VALUES(?,?)";
preparedStatement = connection.prepareStatement(INSERT_ NEW);

preparedStatement.setInt(1, Age)
preparedStatement.setInt(2, Weight)
И, как видишь, я даже советую однозначно описать список полей, которые вносятся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2015, 16:07   #8
DavidRealy
Новичок
Джуниор
 
Регистрация: 04.04.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Смысл в том что тебе не нужно в запросе описывать автоинкрементное поле. СУБД и сама в него подставит нужное значение.
Твоя задача описать запрос с двумя полями и дважды вызвать PreparedStatement только для полей Age и Weight. Т.е. следуя твоему коду в топе:
Код:
String INSERT_NEW = "INSERT INTO botbase (Age,Weight) VALUES(?,?)";
preparedStatement = connection.prepareStatement(INSERT_ NEW);

preparedStatement.setInt(1, Age)
preparedStatement.setInt(2, Weight)
И, как видишь, я даже советую однозначно описать список полей, которые вносятся.
спасибо, это решило проблему
DavidRealy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоинкремент в FB Dozent БД в Delphi 4 20.12.2012 09:21
Поле с автоинкремент в БД. Делфи Artsiom Помощь студентам 2 08.10.2012 00:03
автоинкремент в запросе ГОСЕАН БД в Delphi 13 01.02.2008 16:12
автоинкремент с нуля azat БД в Delphi 5 18.12.2007 08:26
Автоинкремент Askat БД в Delphi 3 18.06.2007 13:39