Java 和数据库查询?

发布于 2024-12-24 17:37:18 字数 434 浏览 2 评论 0原文

使用Derby作为我的数据库驱动程序并通过java执行SQL查询, 当尝试执行此特定查询时遇到错误

stmt.executeQuery("insert into " + "TEST " + "values (" + dataTimeRev + ", " 
                                  + dataType + "," + obj + ")" );

这里 dataTimeRev、dataType 和 obj 是带有数据的变量。

所说的错误是这样的

java.sql.SQLSyntaxErrorException: VALUES clause must contain at least one element. Empty elements are not allowed. 

Using Derby as my data base driver and tying to execute SQL query through java,
there was a error that was encounter, when tried to execute this particular query

stmt.executeQuery("insert into " + "TEST " + "values (" + dataTimeRev + ", " 
                                  + dataType + "," + obj + ")" );

Here dataTimeRev, dataType and obj are variables with data.

The error that was stated was like this

java.sql.SQLSyntaxErrorException: VALUES clause must contain at least one element. Empty elements are not allowed. 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

守护在此方 2024-12-31 17:37:18

如果列数据类型是 VARCHAR,则必须在 qoutes 中传递值,例如 'value',您应该执行以下操作

String query = "insert into TEST values('"+dataTimeRev+"', '"+dataType+"','"+obj+"')";
stmt.executeQuery(query);

if the column data type is VARCHAR you will have to pass the value in qoutes like 'value' for that you should do as below

String query = "insert into TEST values('"+dataTimeRev+"', '"+dataType+"','"+obj+"')";
stmt.executeQuery(query);
段念尘 2024-12-31 17:37:18
  1. 验证 dataTimeRev、dataType 和 obj 不为 null 且不为空。
  2. 我不确定 Derby 是否遵循 SQL 语法。但如果值是 varchar 类型,则应将其括在单引号 (') 中。例如:

stmt.executeQuery("插入 " + "TEST " + "values ('" + dataTimeRev + " ', ' "
+ 数据类型 + " ',' " + obj + " ')" );

  1. Verify that dataTimeRev, dataType and obj are not null and not blank.
  2. I am not sure if Derby follows SQL syntax. But if the values are of type varchar, then it should be enclosed in single quotes ('). For example:

stmt.executeQuery("insert into " + "TEST " + "values ('" + dataTimeRev + " ', ' "
+ dataType + " ',' " + obj + " ')" );

终难愈 2024-12-31 17:37:18

试试这个:

stmt.executeQuery("insert into TEST values ('" + dataTimeRev + "', "'+ dataType + "',"' + obj + "')" ); 

Try this:

stmt.executeQuery("insert into TEST values ('" + dataTimeRev + "', "'+ dataType + "',"' + obj + "')" ); 
眼睛会笑 2024-12-31 17:37:18

导致此错误的原因之一是尝试插入不是字符串的类型(日期、双精度型、整数等,并用单引号括起来 ''
例如,我的表是这样声明的:

 String createTableStatement = "CREATE TABLE PRODUCT"+ "(product_id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)," +
                "product_name CHAR(80), "+
                "price DOUBLE," +
                "supplier CHAR(50))";

所以我正在做:

statement.executeUpdate("INSERT INTO PRODUCT (PRODUCT_NAME, PRICE, DATE_SUPPLIED, QUANTITY, SUPPLIER) VALUES " +
        "('" + productName + "', " + "'" + price + "', " + "'" + supplier +"')");

而不是:

 statement.executeUpdate("INSERT INTO PRODUCT (PRODUCT_NAME, PRICE, DATE_SUPPLIED, QUANTITY, SUPPLIER) VALUES " +
        "('" + productName + "', " + price + ", " + "'" + supplier +"')");

One of the causes of this error is trying to insert a Type that isn't a String (Date, Double, Integer e.t.c, surrounded by the single quotation mark ''
For example my table was declared like this:

 String createTableStatement = "CREATE TABLE PRODUCT"+ "(product_id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)," +
                "product_name CHAR(80), "+
                "price DOUBLE," +
                "supplier CHAR(50))";

So I was doing:

statement.executeUpdate("INSERT INTO PRODUCT (PRODUCT_NAME, PRICE, DATE_SUPPLIED, QUANTITY, SUPPLIER) VALUES " +
        "('" + productName + "', " + "'" + price + "', " + "'" + supplier +"')");

instead of:

 statement.executeUpdate("INSERT INTO PRODUCT (PRODUCT_NAME, PRICE, DATE_SUPPLIED, QUANTITY, SUPPLIER) VALUES " +
        "('" + productName + "', " + price + ", " + "'" + supplier +"')");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文