执行executeUpdate();等方法误传入了sql参数导致运行出错的细节问题

问题源头
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?,?,?,?)’ at line 1
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,在第1行“?,?,?,?)”附近使用正确的语法
在这里插入图片描述
错误发生后,仔细的分析了下源代码,错误果然出现了

在这里插入图片描述
小结
在遇到sql语句错误时,一般都是按照以下步骤检查
1.首先查看SQL语句是否书写正确,着重观察标点符号和括号,引号是否正确使用
2.分析自己写的SQL语句是否符合语法规范,逻辑规范。
3.直接粘贴SQL语句在SQL显示器中(像Navicat,SQLyag等等)中直接运行SQL语句,看是否能够正常运行
4.检查数据库中的表结构是否存在问题
5.检查executeUpdate();executeQuery();executes();方法是否传入了参数。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 JDBC 中,可以使用 PreparedStatement 对象来执行带有变量参数SQL 语句。具体步骤如下: 1. 定义 SQL 语句,并将其中需要动态传递的参数位置用 ? 表示。例如: ``` String sql = "SELECT * FROM users WHERE id = ?"; ``` 2. 创建 PreparedStatement 对象,并将 SQL 语句作为参数传入。例如: ``` PreparedStatement pstmt = conn.prepareStatement(sql); ``` 其中,conn 表示已经建立好的数据库连接对象。 3. 设置参数值。使用 PreparedStatement 对象的 setXxx() 方法来设置参数,其中 Xxx 表示参数的数据类型。例如: ``` pstmt.setInt(1, 1001); ``` 其中,1 表示 SQL 语句中第一个参数的位置,1001 表示需要设置的参数值。 4. 执行 SQL 语句。使用 PreparedStatement 对象的 executeQuery() 或 executeUpdate() 方法执行 SQL 语句。例如: ``` ResultSet rs = pstmt.executeQuery(); ``` 其中,executeQuery() 方法用于执行查询语句,返回查询结果集;executeUpdate() 方法用于执行更新语句,返回更新的行数。 5. 处理结果集。根据具体需求,使用 ResultSet 对象的 getXXX() 方法来获取查询结果。例如: ``` while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // 其他操作 } ``` 其中,getXXX() 方法中的 Xxx 表示返回值的数据类型,例如 getInt() 返回 int 类型的值,getString() 返回 String 类型的值。 注意,使用 PreparedStatement 对象可以有效避免 SQL 注入攻击,因为它会对传入参数值进行参数化处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值