No operations allowed after connection closed

5 respostas
hayase

que erro é esse???

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.

como posso resolve-lo
só consigo cadastrar novas pessoas após algum tempo
mas meu formulário principal ainda tá deixando passar qq coisa…

5 Respostas

Marky.Vasconcelos

Você deve ter fechado a conexão
e depois tentou usar

leofernandesmo

Cole aqui o código de conexão com banco e execução do SQL…

hayase
ARQUIVO UsuarioBD.java [b]
package beans;
import java.sql.*;
import java.util.*;

public class UsuarioBD {
    String dsn = "jdbc:mysql://localhost/banco?charSet=ISO8859-1";
    String user = "postgres";
    String pwd = "123456";
    
    private Connection con=null;
    private Statement  stmt=null;
    private ResultSet  rset=null;
    
    private Statement 	stmt1=null;
    private ResultSet	rset1=null;
    
    public  UsuarioBD() { }
    
    public boolean getConnection(String dsn, String user, String pwd)
    {
        try
        {
            if (con == null)
            {
                try
                {
                    Class.forName("com.mysql.jdbc.Driver");
                }
                catch (Exception E)
                {
                    E.printStackTrace();
                }
				
                try
                {
                    this.con = DriverManager.getConnection(dsn,user,pwd);
                }
                catch (SQLException E)
                {
                    System.out.println("Exception: " + E.getMessage());
                }
                return true;
            }
            else
            {
                return false;
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        return false;
    }
     

           
    public boolean Usuario(Usuario usuario) {
        try {
            if (con!=null) {
                stmt1=con.createStatement();
                rset1=stmt1.executeQuery("SELECT nome_usuario FROM usuario where (nome_usuario = '"+ usuario.getNomeUsuario()+"')");
                if(rset1.next()) {
                    return true;
                } else {
                    return false;
                }
            } else return false;
        } catch (Exception e) {
            return false;
        }
    }
    
    
    public boolean UserValid(Usuario usuario) {
        try {
            if (con!=null) {
                stmt1=con.createStatement();
                rset1=stmt1.executeQuery("SELECT nome_usuario FROM usuario where (nome_usuario='"+usuario.getNomeUsuario()+"')" );
                if(rset1.next()) {
                    return true;
                } else {
                    return false;
                }
            } else return false;
        } catch (Exception e) {
            return false;
        }
    }
    
    
    public boolean insertUsuario(Usuario usuario) {
        try
        {
            if (con!=null) {
                stmt1 = con.createStatement();
                rset1 = stmt1.executeQuery("SELECT nome_usuario FROM usuario where nome_usuario = '"+usuario.getNomeUsuario()+"'");
                if(rset1.next())
                {
                    return false;
                }
                else
                {
                    stmt = con.createStatement();                    
                    stmt.execute("INSERT INTO usuario (nome_usuario, senha) values ('"+usuario.getNomeUsuario()+ "','"+usuario.getSenha()+ "')");
                }
                return true;
            }            
            return false;
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        return false;        
    }
    
      
        public void stopConnection()
        {
        try
        {
            con.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    	}   
}
[/b]
hayase

ARQUIVO cadastro_de_usuarios_.jsp

<jsp:useBean id="usuario" scope="session" class="beans.Usuario" />
<jsp:useBean id="usuarioBD" scope="session" class="beans.UsuarioBD" /> 

<html>
<%
	String user;
	String pwd;
	user = request.getParameter("nome_usuario");
	pwd = request.getParameter("senha");
	
	if ((user.equals(""))||(pwd.equals("")))
		{
		%>
				<script language='JavaScript'>
					location='cadastro_de_usuarios_erro_1.jsp';
				</script>
			<%
		}
		else
		{
			
			usuarioBD.getConnection("jdbc:mysql://localhost/banco?charSet=ISO8859-1","postgres","123456");
			usuario.setNomeUsuario(user);
			usuario.setSenha(pwd);
			if (usuarioBD.Usuario(usuario))
				{
					%>
						<script language='JavaScript'>
							location='cadastro_de_usuarios_erro_2.jsp';
						</script>
						<%
				}
				else
				{
					usuarioBD.insertUsuario(usuario);
					%>
						<script language='JavaScript'>
							location='cadastro_de_usuarios_ok.jsp';
						</script>	
							
					<%
				}
				usuarioBD.stopConnection();
		}
		
	%>

<head>
<title>Efetuando cadastro</title>
</head>

<body background="">

</html>
leofernandesmo

Cara dei uma olhada rápida e vi que só fecha a conexão.
lembre-se q vc deve fechar o resultset, o statement e depois a conexão.
Não creio que isso resolva o seu problema mas já é uma dica.
Outra coisa, dê uma olhada em MVC, para usar servlets.

Criado 8 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 5
Participantes 3