Java和数据库查询?

时间:2012-01-04 04:49:40

标签: java database derby

使用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. 

3 个答案:

答案 0 :(得分:4)

如果列数据类型为VARCHAR,则必须传递qoutes中的值,如'value',您应该按以下方式执行

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

答案 1 :(得分:0)

  1. 验证dataTimeRev,dataType和obj不为空且不为空。
  2. 我不确定Derby是否遵循SQL语法。但如果值的类型为varchar,则应将其括在单引号(')中。例如:
  3.   

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

答案 2 :(得分:0)

试试这个:

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