【发布时间】:2018-01-03 17:56:17
【问题描述】:
CREATE TABLE "INVOICE" (
"INVOICENO" VARCHAR(200) NOT NULL PRIMARY KEY,
"DATE" DATE,
"COMPANY" VARCHAR(500),
"PRICE" DOUBLE,
"TYPE" VARCHAR(200),
"INVOICETYPE" VARCHAR(200),
"GENERATEDDOCID" INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)
);
这是我的数据库表代码,当我想用INSERT INTO ( ) VALUES (?,?,?) 向表中输入值时,它给出了 SQLSyntax 错误。
我使用下面的代码插入值:
public void addData(addData addData) {
private String sqlInsertStr = "INSERT INTO
NBUSER.INVOICE(INVOICENO,DATE,COMPANY,PRICE,TYPE,INVOICETYPE) VALUES(?,?,?,?,?,?);";
try {
stmt = conn.prepareStatement(sqlInsertStr);
stmt.setString(1, addData.getInvoiceNo());
stmt.setString(2, addData.getDate());
stmt.setString(3, addData.getCompany());
stmt.setDouble(4, addData.getPrice());
stmt.setString(5, addData.getType());
stmt.setString(6, addData.getInvoiceType());
stmt = conn.prepareStatement(sqlInsertStr);
stmt.executeUpdate();
} catch (SQLException ex) {
ex.getMessage();
}
}
【问题讨论】:
-
我们对您使用的数据库类型一无所知,这无济于事。另外,错误发生在哪里?还有更多信息吗?你为什么要给
prepareStatement打两次电话? (第二个作业很可能是问题的根源。) -
不小心把prepared statement添加了两次,我把最下面的去掉了,但是问题依旧存在。我正在使用 Netbeans Derby SQL。感谢您的帮助
-
请发布完整的异常堆栈跟踪。