0
我有一個MySQL表,EMPLOYEES
,它具有以下形式:JDBC - 沒有足夠的價值
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。在之前的嘗試中,我給了它一個電話號碼,並得到了相同的信息。
有誰知道爲什麼會發生這種情況?
如果缺少任何重要信息,請告訴我,我可以添加它。
感謝, erip
使用'PreparedStatement',你也可以考慮提供列'的順序插入僱員(FNAME,LNAME,電話,小時,EMPLOYEE_NUM)VALUES(?,?,?,?,?)' 。請參閱[使用準備好的語句](http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)以獲取更多詳細信息 – MadProgrammer
@MadProgrammer此工作。非常感謝! – erip