No operations allowed after statement closed issue

Posted by Washu on Stack Overflow See other posts from Stack Overflow or by Washu
Published on 2012-11-23T21:37:47Z Indexed on 2012/11/23 23:04 UTC
Read the original article Hit count: 188

Filed under:
|
|
|
|

I have the next methods in my singleton to execute the JDBC connections

public void openDB() throws ClassNotFoundException, IllegalAccessException,
        InstantiationException, SQLException {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url = "jdbc:mysql://localhost/mbpe_peru";//mydb
    conn = DriverManager.getConnection(url, "root", "admin");
    st = conn.createStatement();
}

public void sendQuery(String query) throws SQLException {
    st.executeUpdate(query);
}

public void closeDB() throws SQLException {
    st.close();
    conn.close();
}

And I'm having a problem in a void where i have to call this twice.

private void jButton1ActionPerformed(ActionEvent evt) {

Main.getInstance().openDB();
Main.getInstance().sendQuery("call insertEntry('"+EntryID()+"','"+SupplierID()+"');");
Main.getInstance().closeDB();

Main.getInstance().openDB();
for(int i=0;i<dataBox.length;i++){
Main.getInstance().sendQuery("call insertCount('"+EntryID()+"','"+SupplierID()+"','"+BoxID()+"');
Main.getInstance().closeDB();
}
}

I have already tried to keep the connection open and send the 2 querys and after that closed and it didnt work... The only way it worked was to not use the methods, declare the commands for the connection and use different variables for the connection and the statement. I thought that if i close the Connecion and the Statement I could use the variable once again since is a method but I'm not able to. Is there any way to solve this using my methods for the JDBC connection?

© Stack Overflow or respective owner

Related posts about java

Related posts about mysql