0
У меня проблема с автоматически увеличивающимися значениями в readyStatement. Вот моя база данныхMySql Java auto increment
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`isbn` varchar(10) NOT NULL,
`title` varchar(20) NOT NULL,
`pages` int(11) NOT NULL,
`price` decimal(5,2) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `isbn` (`isbn`)
и вот мой PreparedStatement:
String title = fieldTitle.getText();
String isbn = fieldISBN.getText();
double price = Double.parseDouble(fieldPrice.getText());
int pages = Integer.parseInt(fieldPages.getText());
conn = DBUtil.connect();
try {
prepState = conn.prepareStatement("insert into book values(?,?,?,?)");
prepState.setString(1, isbn);
prepState.setString(2, title);
prepState.setInt(3, pages);
prepState.setDouble(4, price);
prepState.execute();
Однако, когда я заполнить поля я получаю следующее сообщение об ошибке:
java.sql.SQLException: Количество столбцов не соответствует количеству значений в строке 1. Я знаю, что, когда поле в базе данных автообновлено, мне не нужно его помещать в запрос ...
Любые идеи?
Вы должны явно назвать столбцы, которые вы хотите написать, если вы не используете все из них: 'INSERT INTO книги (ISBN, название, страницы, цена) VALUES (?,?,?,?) ' – user432
Или необязательный способ - передать значение null для столбца increment. 'INSERT INTO значения книги (null,?,?,?,?)' – Payam