【问题标题】:insert single row with a preparedstatement插入带有preparedstatement的单行
【发布时间】:2015-09-01 03:24:53
【问题描述】:

我使用了这段代码,但它一直让我出现异常参数索引超出范围

sql="insert into note (matricule) values(?)";
         ps=conn.prepareStatement(sql);
         ps.setString(1,m);
         ps.execute();}

我的代码有什么问题?

【问题讨论】:

  • 在 sql 表达式中的 values(?) 之间添加空格。结果表达式将为sql="insert into note (matricule) values (?)"
  • 我添加了一个空格,但我一直有同样的错误
  • @Moez 重写你的 sql 表达式,使 SQL 关键字大写,并确保表名/字段名按照字母大小写正确写入,SQL for MySQL 区分大小写:dev.mysql.com/doc/refman/5.0/en/…
  • 不需要values 后面的空格和大写关键字。虽然这可能符合人们对 SQL 外观的看法,但这与问题几乎无关。我自己更喜欢小写,因为我懒得按 SHIFT 键:-)

标签: java mysql sql prepared-statement


【解决方案1】:

您向我们展示的内容本质上没有任何问题,但语句处于不同的缩进级别这一事实可能意味着sql 的设置不是在语句准备之前。

如果,请确保sql 在此期间没有更改(在准备之前立即打印出来)。

这是我认为代码会给你一个索引错误的唯一方法,没有一个相当致命的错误。

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 2011-05-12
    • 2012-12-02
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多