【发布时间】:2026-01-12 07:05:01
【问题描述】:
我正在尝试执行以下代码
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();
}
}
但出现以下错误
线程“main”中的异常 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,以便在 '? 附近使用正确的语法在哪里 用户 ID=?在第 1 行
我的数据库只有 1 个表 student 有 2 列用户 ID 和用户名以及 10 行我缺少什么
【问题讨论】:
-
用户 id 是主键还是有设置为自动递增的列
-
去掉 ? 之间的空格和双引号 (")
userid= ? ";请再试一次。
标签: java mysql jdbc sql-update prepared-statement