java - JDBC——没有足够的值

标签 java mysql jdbc

我有一个 MySQL 表 EMPLOYEES,其形式如下:

CREATE TABLE EMPLOYEES
(
        FNAME           VARCHAR(15)             NOT NULL,
        LNAME           VARCHAR(15)             NOT NULL,
        PHONE           CHAR(10),
        HOURS           INT                     NOT NULL,
        EMPLOYEE_NUM    CHAR(5)                 NOT NULL,
        PRIMARY KEY(EMPLOYEE_NUM)
);

我正在尝试编写一个程序来操作该表。我有以下方法来尝试执行此操作。

void addEmployee(Connection conn) throws SQLException, IOException {

    Statement stmt = conn.createStatement(); 

    String fName = readEntry("First name: ");
    String lName = readEntry("Last name: ");
    String phoneNumber = readEntry("Phone number: ");
    String hours = readEntry("Number of hours worked: ");
    String employeeNum = readEntry("Employee Number: ");
    String query = "INSERT INTO EMPLOYEES VALUES ('" +
            fName + "','" + lName + "','" + phoneNumber + "'," + hours + ",'" + employeeNum + "')";
    try {
      int nrows = stmt.executeUpdate(query);
    } catch (SQLException e) {
        System.out.println("Error Adding Catalog Entry");
        while (e != null) {
          System.out.println("Message     : " + e.getMessage());
          e = e.getNextException();
        }
        return;
      }
    stmt.close();
    System.out.println("Added Catalog Entry");
}

当我尝试执行此调用时:

First name: fname
Last name: lname
Phone number: 
Number of hours worked: 34
Employee Number: 01923
Error Adding Catalog Entry
Message     : ORA-00947: not enough values

在此尝试中,我将“phoneNumber”留空以表示 NULL。在之前的尝试中,我给了它一个电话号码并收到了相同的消息。

有谁知道为什么会这样吗?

如果缺少任何重要信息,请告诉我,我可以添加它。

谢谢, 埃里普

最佳答案

当您执行插入时,您应该始终列出列。

这有效吗?

INSERT INTO EMPLOYEES(fname, lname, phoneNumber, hours, employee_Num)
      VALUES ('" +fName + "','" + lName + "','" + phoneNumber + "'," + hours + ",'" + employeeNum + "')

关于java - JDBC——没有足够的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738040/

相关文章:

java - 生成 x 个整数分区

java - 如何在一定时间后调用方法?

java - Gradle -> 如何从 WEB-INF/lib 中省略一些 jar

PHP MySQL 使用 mysqli_fetch_all 分页数据

mysql - Zabbix 数据库已关闭

python - JDBC DatabaseMetaData 的 Python 等价物是什么?

java - 要列出的结果集

java - 从 Linux 64 位访问 javax.smartcardio

mysql - Linux 定制 Cron - 从 Mysql 运行 cron

java - 未释放 Tomcat JDBC 连接资源