Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
createStatement的java sql语法错误_Java_Sql_Jdbc - Fatal编程技术网

createStatement的java sql语法错误

createStatement的java sql语法错误,java,sql,jdbc,Java,Sql,Jdbc,我有一个sql表sysuser,如下所示: id(pk)电子邮件密码角色 我想在表中插入值。我在ArrayList中获取数据: 以下是我编写的代码: stmt.executeUpdate("INSERT INTO sysuser VALUES ('"+string.get(1)+"', '"+ string.get(2) +"','"+ string.get(3) +"','"+string.get(4)+"'"); 其中字符串是数组列表 代码不起作用,我不明白为什么。它与另一个查询完美结合。

我有一个sql表
sysuser
,如下所示:

id(pk)
电子邮件
密码
角色

我想在表中插入值。我在
ArrayList
中获取数据:

以下是我编写的代码:

stmt.executeUpdate("INSERT INTO sysuser VALUES ('"+string.get(1)+"', '"+ string.get(2) +"','"+ string.get(3) +"','"+string.get(4)+"'");
其中字符串是
数组列表

代码不起作用,我不明白为什么。它与另一个查询完美结合。我得到以下错误:

您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法

我读了一些准备好的陈述,但我不懂语法。我知道直接插入数据是不安全的,但是对于这个特定的查询,这并不重要。

您忘记了一个

如果您没有填写表中的所有列,您应该提供一个要插入的列列表,如下所示

INSERT INTO sysuser (col_name_1, col_name2, col_name5, col_name7)
VALUES (1, 2, 3, 4)

尝试首先打印此语句生成的sql

String sql = "INSERT INTO sysuser VALUES ('"+string.get(1)+"', '"+ string.get(2) +"','"+ string.get(3) +"','"+string.get(4)+"'";
System.out.println(sql);
stmt.executeUpdate(sql);
然后运行您最喜欢的SQL工具并检查它给出的错误。 并在此处发布这两个结果。:)


稍后查看此链接:

非常感谢!!!!我疯了!!!令人惊叹的!能否显示传递给stmt.executeUpdate()的示例值以及sysuser表中的字段类型?您当然应该为此任务使用PreparedStatement,而不是将值连接到SQL字符串中。
INSERT INTO sysuser (col_name_1, col_name2, col_name5, col_name7)
VALUES (1, 2, 3, 4)
String sql = "INSERT INTO sysuser VALUES ('"+string.get(1)+"', '"+ string.get(2) +"','"+ string.get(3) +"','"+string.get(4)+"'";
System.out.println(sql);
stmt.executeUpdate(sql);