createStatement的java sql语法错误
我有一个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)+"'"); 其中字符串是数组列表 代码不起作用,我不明白为什么。它与另一个查询完美结合。
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);