这个问题已经在这里有一个答案:
我想执行以下代码
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列用户名和用户名和10行只有1级的学生我缺少什么M
尝试:
int rs = stmt.executeUpdate();
代替:
int rs = stmt.executeUpdate(query);
的executeUpdate()运行在一份声明中的查询这是你想要的。的executeUpdate(查询)运行传递给该方法的查询。你得到的错误,因为你通过与错误的SQL(包含?)。
请试试:
"UPDATE student SET username= ? ” + ” where userid= ?";
int rs=stmt.executeUpdate();