MySql Java自动增量

时间:2014-10-25 08:27:19

标签: java mysql

我在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行的值计数不匹配。我知道当数据库中的字段是自动增量时,我不必将它放在查询中......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

修改查询以包含列名: -

INSERT INTO  book (isbn, title, pages, price) VALUES (?,?,?,?)