Java JDBC Derby语法错误
嗨,我的java代码中的语法有问题。我有一个Java JDBC Derby语法错误,java,sql,Java,Sql,嗨,我的java代码中的语法有问题。我有一个tableview,它从SQL数据库获取数据。我已经在数据库书,客户,订单中创建了3个表。单击某个按钮时,我希望获取所选书籍并将其添加到订单表中。 以下是主程序的代码(从db调用方法): 表book是固定的。只有另外两个表customer,order是动态的 问题是: 我在order表中创建如下值 String ct = "CREATE TABLE Order (" + "Order_Id integer generated always as ide
tableview
,它从SQL数据库获取数据。我已经在数据库书
,客户
,订单
中创建了3个表。单击某个按钮时,我希望获取所选书籍并将其添加到订单
表中。以下是主程序的代码(从db调用方法): 表
book
是固定的。只有另外两个表customer
,order
是动态的
问题是:
我在order
表中创建如下值
String ct = "CREATE TABLE Order (" + "Order_Id integer generated always as identity, " + "CUSTOMER_ID BIGINT" + "ISBN, CHAR(13) " + "PRIMARY KEY(Order_Id))";
等等
我像这样插入到order
表中。(这里是字符串i
中的语法问题,编译器说它不工作的地方就是这个位置。)
这是我得到的语法错误
语法错误:在第1行第13列遇到“ORDER”
那么,如何更正字符串I
中的语法呢?有人有什么想法吗
INSERT INTO ORDER(CUSTOMER_ID,ISBN), VALUES(?,?)
^
逗号是多余的。另外,在创建表中
... + "ISBN, CHAR(13) " + ...
^
此逗号也是无关的。如果要使用保留字/关键字作为表名,应:
select*from'Order'
select*from“Order”
你有另一个错误,由@Jim Garrison回答。你能创建一个名为Order的表吗?哦,名字“Order”也是不可能的。看起来这个词在SQLi中是保留的。我已经更改了它。现在它可以用了,谢谢
INSERT INTO ORDER(CUSTOMER_ID,ISBN), VALUES(?,?)
^
... + "ISBN, CHAR(13) " + ...
^