我正在尝试执行以下代码
package jdbclesson;
import java.sql.*;
public class PreparedQuery {
public static void main(String[] args) throws Exception
{
String url = "jdbc:mysql://localhost:3306/alien?useSSL=false";
String uname = "root";
String pass = "ma123";
String query = "UPDATE student SET username= ? where userid= ? ";
PreparedStatement stmt = null;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, uname, pass);
stmt = con.prepareStatement(query);
stmt.setString(1, "tina");
stmt.setInt(2, 6);
int rs = stmt.executeUpdate(query);
System.out.println(rs);
stmt.close();
con.close();
}
}
但出现以下错误
线程“主”中的异常 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您有一个 您的SQL语法错误;检查与您的手册相对应的手册 MySQL服务器版本附近使用正确的语法吗?哪里 userid =?在第1行
我的数据库只有一名表生,有2列userid和username和10行我缺少的行
答案 0 :(得分:1)
尝试:
int rs = stmt.executeUpdate();
代替:
int rs = stmt.executeUpdate(query);
executeUpdate()运行所需语句的查询。 executeUpdate(query)运行传递给该方法的查询。之所以收到此错误,是因为您传递的SQL带有错误(包含?)。
答案 1 :(得分:0)
请尝试:
"UPDATE student SET username= ? ” + ” where userid= ?";
int rs=stmt.executeUpdate();