java - 什么是 "java.sql.SQLException: No value specified for parameter 1 "?

标签 java mysql

我不知道我下面的代码有什么问题。

 try {
        String sql = "INSERT INTO  `myporject`.`selectnation` (`nations` ,`package` ,`persons`) "
                + "VALUES ('?',  ?,  ?)";
        PreparedStatement ps = connect.prepareStatement(sql);
        if (ps.executeUpdate() != -1) {
            ps.setString(1,"Japan" );
            ps.setInt(2, this.pack);
            ps.setString(3, jTextField1.getText());

这是 StackTrace

java.sql.SQLException: No value specified for parameter 1

最佳答案

您试图在设置参数之前执行prepareStatement,因此您需要更改代码如下:

PreparedStatement ps = connect.prepareStatement(sql);

//set the parameters first
ps.setString(1,"Japan" );
ps.setInt(2, this.pack);
ps.setString(3, jTextField1.getText());

//now execute the prepared statement
if (ps.executeUpdate() != -1) {
  //add your code
}

我建议你引用here了解 jdbc 概念。

关于java - 什么是 "java.sql.SQLException: No value specified for parameter 1 "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789101/

相关文章:

java - 网络服务 : How do I detect the endpoint that sent the message

java - 你如何在 slf4j 中格式化异常?

java - Java 7 和 8 中的 32 位堆优化

mysql - 如何在 CakePHP3 中运行事务,同时检索最后的插入 ID 并同时适用于 PostgreSQL 和 MySQL?

mysql - SELECT SQL 语句中的多个过滤器

php - 语法错误,PHP 中的意外 T_CONSTANT_ENCAPSED_STRING

php - 如何在我在查询中有查询的情况下返回结果

java - ArrayList 中的弹跳球需要检测碰撞

java - 是否可以使用 Enter 作为 Tab 而不继承 JTextField 或批量添加关键监听器?

java - 有没有办法将 TCPDump 输出到文件,并用 Java 对其进行过滤,每 5 秒用新数据覆盖该文件?