0
try
         {
            String sql="INSERT INTO `task`(`task`,`time`) VALUES(?,?)";
            PreparedStatement stmt=this.connection.prepareStatement(sql);
            stmt.setString(1, this.task);
            stmt.setInt(2, this.time);
            //stmt.
            Boolean res= stmt.execute(sql);
         }
         catch(Exception e)
         {
             System.err.println(e);
         }

错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '?,?)' 附近使用正确的语法

4

1 回答 1

2

不要使用

stmt.execute(sql);

利用

stmt.execute();

执行你的PreparedStatement.

您使用的第一个尝试执行给定的字符串,由于其中的占位符值,这显然不是您想要执行的'?'(它是java.sql.Statement接口的一种方法)。

第二个是方法 fromjava.sql.PreparedStatementPreparedStatement使用您通过setXXX()方法输入的值执行。


另外,在您的情况下,您的字符串中不需要刻度,您可以只写

String sql="INSERT INTO task(task,time) VALUES(?,?)";
于 2013-03-15T07:32:11.087 回答