我在preparedStatement中遇到自动递增值的问题。这是我的数据库
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`)
这是我的预备声明:
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行的值计数不匹配。我知道当数据库中的字段是自动增量时,我不必将它放在查询中......
有什么想法吗?
答案 0 :(得分:0)
修改查询以包含列名: -
INSERT INTO book (isbn, title, pages, price) VALUES (?,?,?,?)