Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试将新数据添加到我的一个表时出错_Java_Mysql_Database_Add - Fatal编程技术网

Java 尝试将新数据添加到我的一个表时出错

Java 尝试将新数据添加到我的一个表时出错,java,mysql,database,add,Java,Mysql,Database,Add,在一个项目中,我必须将新数据添加到不同的表中(这方面我是新手)。我正在使用连接到mysql数据库的Netbeans。数据库工作正常,当我直接执行查询时,查询工作正常。但是,当我试图通过Java代码用新数据更新表时,它失败了 代码: ConnectionClass db = new ConnectionClass(); try { db.ConnectToDb(); } catch (SQLException ex) { Logger.getLogg

在一个项目中,我必须将新数据添加到不同的表中(这方面我是新手)。我正在使用连接到mysql数据库的Netbeans。数据库工作正常,当我直接执行查询时,查询工作正常。但是,当我试图通过Java代码用新数据更新表时,它失败了

代码:

ConnectionClass db = new ConnectionClass();
    try {
        db.ConnectToDb();
    } catch (SQLException ex) {
        Logger.getLogger(AddUser.class.getName()).log(Level.SEVERE, null, ex);
    }

      String sql = "insert into users values (3, 'Nicklas', 'niklas@alskart.se', 'nisun', 'heej', '1')";

       /* String laggTill = "insert into agent values ("+idb.getAutoIncrement("agent", "aid")+
            ", '"+tfNamn.getText()+"', '"+tfNr.getText()+"', '"+tfMail.getText()+"')";

      */

    try {
        db.myStmt.executeUpdate(sql);
    } catch (SQLException ex) {
        Logger.getLogger(AddUser.class.getName()).log(Level.SEVERE, null, ex);
    }

}        
生成的异常:

apr 10, 2015 1:17:47 EM Project.AddUser btn_saveNewUserActionPerformed
ALLVARLIG: null
    java.sql.SQLException: No operations allowed after statement closed.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
    at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:445)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1554)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1549)
    at Project.AddUser.btn_saveNewUserActionPerformed(AddUser.java:159)

将数据记录插入数据库时的基本步骤是:

Connection connection //connect to db
PreparedStatement statement;
String query = "INSERT INTO...";
statement = connection.prepareStatement(query);  //prepareStement (or createStatement()) based on query
statement.executeUpdate();
我认为您错过了prepareStatement()或createStatement()步骤

因此(我不知道您的ConnectionClass是什么样子,请发布它):

最后,您必须关闭连接和声明。


工作示例:

您好,请参见stacktrace java.sql.SQLException:语句关闭后不允许执行任何操作。 表示不存在语句对象。 您可以通过以下方式执行此操作:

Statement myStmt;

try {
        myStmt = db.createStatement();
        myStmt.executeUpdate(sql);
    } catch (SQLException ex) {
        Logger.getLogger(AddUser.class.getName()).log(Level.SEVERE, null, ex);
    }

我假设引用变量db属于Connection类型。

从您发布的错误中可以清楚地看出
ava.sql.SQLException:语句关闭后不允许进行任何操作。在
处,您在关闭后尝试访问Show
ConnectionClass
请。我在设置连接后尝试了查询,但返回的是相同的错误消息。
Statement myStmt;

try {
        myStmt = db.createStatement();
        myStmt.executeUpdate(sql);
    } catch (SQLException ex) {
        Logger.getLogger(AddUser.class.getName()).log(Level.SEVERE, null, ex);
    }