JAVA JDBC的MySQL预处理语句更新查询[复制]

问题描述 投票:1回答:2

这个问题已经在这里有一个答案:

我想执行以下代码

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

java mysql jdbc sql-update prepared-statement
2个回答
1
投票

尝试:

int rs = stmt.executeUpdate();

代替:

int rs = stmt.executeUpdate(query);

的executeUpdate()运行在一份声明中的查询这是你想要的。的executeUpdate(查询)运行传递给该方法的查询。你得到的错误,因为你通过与错误的SQL(包含?)。


0
投票

请试试:

"UPDATE student SET username= ? ” + ” where userid= ?"; 

int rs=stmt.executeUpdate();
© www.soinside.com 2019 - 2024. All rights reserved.